Commit graph

81 commits

Author SHA1 Message Date
yasserfaraazkhan 2649c31962
Fix(e2e): Fix playwright version and reporting for CMT (#3081) 2024-07-17 04:48:03 +05:30
Devin Binnie 7b1b25b6e0
Move all E2E dependencies into its own folder, run from there (#3068)
* Move all E2E dependencies into its own folder, run from there

* Run flaky-tests from E2E folder

* This should work better

* Fix E2E test for Linux

* Fix for Windows, fix lint
2024-06-17 15:24:15 -04:00
yasserfaraazkhan 69eee2a146
Fix focus test cases (#3014) 2024-04-22 20:52:36 +05:30
Devin Binnie e1c957e774
Various QoL fixes for Desktop App (#2999)
* Some ESLint fixes

* Add login/logout signal to API, clear mentions on logout and flush cookies on login/logout

* Fix issue where local and HTTP-only servers would not validate correctly

* Reduce noise of renderer logging, adjust a few local renderer logs to be louder when needed

* Fallback to beginning of hostname for servers that don't change the site name

* Fix Save Image crash

* Update the name for insecure servers too

* Fix test

* Fix lint

* Reduce repetition
2024-04-08 09:12:35 -04:00
Antonis Stamatiou 81c3a07412
feat: Refactor E2E functional for readability and reusability (#2988) 2024-03-22 12:30:31 +02:00
yasserfaraazkhan 7c2b4ec502
Modify run conditions for nightly e2e job to create test cycle and post in channel. (#2971) 2024-03-19 22:18:29 +05:30
Devin Binnie 6d02c5a528
Some further ESLint cleanup, remove some unnecessary scripts and lines (#2984) 2024-03-18 14:46:12 -04:00
Devin Binnie 9b36c25e4e
[MM-52696] Upgrade and clean up Desktop App dev dependencies (#2970)
* Upgrade to ESLint v8

* Upgrade TypeScript, api-types, react-intl

* Remove unnecessary dependencies

* Update to React 17.0.2

* npm audit fixes, remove storybook

* Lock some packages

* Remove nan patch

* Remove some deprecated dependencies

* Fix lint/type/tests

* Merge'd

* Fix bad use of spawn

* Fix notarize

* Fix afterpack, switch to tsc es2020

* Fix api types

* Use @mattermost/eslint-plugin
2024-03-07 15:55:33 -05:00
yasserfaraazkhan 504e80e132
Run E2E on master branch (#2934) 2024-01-17 14:13:04 +05:30
yasserfaraazkhan 675ec6d661
E2E: CI Improvements (#2918) 2023-12-13 14:24:16 +05:30
Trivikram Kamat a63bdd7cf2
chore: migrate AWS SDK for JavaScript v2 APIs to v3 (#2904)
* chore: convert s3.promise callback to async-await

* chore: run codemod on e2e/utils/artifacts.js

* chore: format

* chore(deps): replace AWS SDK for JavaScript v2 with v3

* chore: bump lockfile

* chore: changes to bracket spacing in imports

Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>

---------

Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>
2023-11-16 16:39:55 -05:00
yasserfaraazkhan 932eff2ea9
feat(e2e): add a job to run e2e on linux os (#2796) 2023-10-25 02:01:36 +05:30
Devin Binnie 32223fa3e1
Fix app name test (#2824) 2023-09-06 16:01:06 -04:00
Devin Binnie 6fbb9234af
Update node-abi, remove Back button test (#2822) 2023-09-06 14:12:03 -04:00
Devin Binnie d4a4defaa3
[MM-53490] Reduce min window width to 600px (#2787) 2023-07-18 09:42:53 -04:00
mvitale1989 1da06bcf23
Fix E2E test report upload URL (#2776)
* Fix E2E test report upload URL
2023-06-28 20:20:03 +02:00
Devin Binnie 1239add076
[MM-50352] Improve URL validation and add/edit server experience (#2720)
* [MM-50352] Improve URL validation and add/edit server experience

* Fix build

* Fix translations

* First pass of fixes

* Some changes to avoid 2 clicks, tests

* PR feedback

* Update translations

* PR feedback

* Fix translations

* PR feedback

* E2E test fixes
2023-05-24 09:04:38 -04:00
Devin Binnie 316beba950
[MM-14093] Rename 'team' to 'server' and 'tab' to 'view' in most cases, some additional cleanup (#2711)
* Rename MattermostTeam -> UniqueServer, MattermostTab -> UniqueView

* Rename 'team' to 'server'

* Some further cleanup

* Rename weirdly named function

* Rename 'tab' to 'view' in most instances

* Fix i18n

* PR feedback
2023-05-08 09:17:01 -04:00
Devin Binnie f4f4511cc7
Remove WindowManager, separate functionality into smaller modules (#2682)
* Move sendToRenderer to respective singletons

* Move to using ViewManager call for getting view by webContentsId

* Move show and create logic to main window, handle deep linking seperately

* Move resizing logic and event handing to mainWindow

* Move server switching logic to main/app

* Move tab switching logic to main/app, rely on showById for most usage

* Migrate remaining functions, remove windowManager objects, set up imports for self-contained singletons

* Fix E2E tests

* Update src/main/app/servers.ts

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2023-04-19 11:04:26 -04:00
Devin Binnie 686b4ac9f1
[MM-50485] Migrate app to ServerManager, remove view names and replace with IDs (#2672)
* Migrate app to ServerManager, remove view names and replace with IDs

* Fixed a test

* Fixed a bug when adding the initial server

* Merge'd

* Bug fixes and PR feedback
2023-04-12 12:52:34 -04:00
Pantelis Vratsalis 2bb622c314
PoC performance tests in CI (#2474)
* PoC performance tests in CI

* Add a naive measurement

* Change in spec descriptions

* More minimal reporter and 2 tests: 1 failing, 1 succeeding

* Fix circleci config

* Fix circleci part 2

* Make performance tests a workflow

* add npm install in performance tests

* change executor

* Experimenting: Install crossenv

* Experimenting

* More experimenting

* Revert some changes

* Run update_image and cache node modules

* Sandbox e2e tests run

* fix code residual from rebase

* Add GH action for ci perf

* Use ubuntu instead of macos

* Use windows instead of ubuntu

* Fix env set command

* Use post-test script to check performance

* Use macos-latest

* Throw error when tests fail

* Use measudePerformance function instead

* Use measudePerformance function instead

* Try to run e2e on github actions

* Try headless script

* Install linux packages

* Add shell

* Use if: runner..

* ADd sudo

* Add more linux packages

* Go back to macos

* Try recursive find for main window

* Remove performance tests from circleCi

* Increase retries

* Fix

* Revert "Fix"

This reverts commit c19fc56600ada4eee3e26bf3988b27d2ce2616d1.

* Revert "Increase retries"

This reverts commit 564ac95c34def892595c17b98eec245cacb0d4a4.

* Revert "Remove performance tests from circleCi"

This reverts commit c49c73b6f811df12631036bc33dae30da2271173.

* Revert "Try recursive find for main window"

This reverts commit 19d9367f9317f6e9d7ef9aa6a5d69eccdff2df67.

* Revert "Go back to macos"

This reverts commit 72b796ad983e89940f84d53039affd867d0e7f34.

* Revert "Add more linux packages"

This reverts commit 4bd510f8ea5356c13fbc4722be874aeea32de43e.

* Revert "ADd sudo"

This reverts commit acb95e02609e7cc02b12863910d29c03694936c1.

* Revert "Use if: runner.."

This reverts commit 69beed6fe24e452b1d7f0b0e4578bbfa9ca36d2f.

* Revert "Add shell"

This reverts commit e1743664a8b01797da4112314af0b88318ad2fd7.

* Revert "Install linux packages"

This reverts commit 25195dd11c827dff0fd8cf4fbdf2dc709377d525.

* Revert "Try headless script"

This reverts commit 385be5609d5ee45363d26828f6a14c6be0ef661a.

* Revert "Try to run e2e on github actions"

This reverts commit be8f682fd8a82b265403471b5106fd5107f9fecb.

* Revert "Use measudePerformance function instead"

This reverts commit bfd46768ae845e2839e9f124735922da6301fa4e.

* Revert "Use measudePerformance function instead"

This reverts commit ab4bc22b8689ff35260b4ab55724a77dc5993426.

* Update workflow command

* Remove circleci config for perf tests

* Run on ubuntu

* Add packages for linux

* Fix order of commands

* Move env var at the beginning

* Upload test results to s3

* Update name

* Update name

* Add trigger for flag

* Add step to upload artifact to github workflow artifacts

* Update yml

* Add step to comment the results in the PR

* Fix env bug

* move constant to workflow env

* Wrap workflow env with single quotes

* Add start comment and remove label steps

* Update body of comment

* Remove unused file

* Move PR comment function into file

* Fix import

* Remove spaces from line start

* Remove label even if workflow failed

* Add logging

* Fix markdown table data

* Remove trailing semi string

---------

Co-authored-by: Tasos Boulis <tboulis@hotmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2023-01-30 17:16:10 +02:00
Devin Binnie cf6611cc87
[MM-50011] Disable popping the dialog box for uncaught exceptions (#2519) 2023-01-27 09:05:32 -05:00
Devin Binnie 59c98036ee
Add await to the dark mode toggle test for Linux (#2518) 2023-01-26 08:46:32 -05:00
Devin Binnie cf4cdf5c1c
Fixed full screen E2E test for smaller displays (#2517)
* Fixed full screen test for smaller displays

* Fix bork
2023-01-26 08:45:52 -05:00
Devin Binnie c8c88a274f
[MM-49724] More robust check for startup before starting E2E tests (#2504)
* [MM-49724] More robust check for startup before starting E2E tests

* Fix a few more tests
2023-01-18 12:11:11 +02:00
Devin Binnie 29f10f1467
Fixed some unit tests and add test step to run on Windows/Mac builds (#2466)
* Fixed some unit tests and add test step to run on Windows/Mac builds

* Update failing test

* Fix backlash

* Fix windows run

* Fix Windows again

Co-authored-by: Tasos Boulis <tboulis@hotmail.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-12-14 17:10:20 -04:00
Devin Binnie 865fd2522f
Fixed some E2E tests that broke on v5.2 (#2453)
* Fixing some E2E tests

* Fixed a couple flaky ones

* Fixed some issues on Windows
2022-12-06 14:40:56 +02:00
Pantelis Vratsalis 84ab14eabf
[MM-48685] Fix failing downloads dropdown items tests (#2431)
* [MM-48685] Fix failing downloads dropdown items tests

* Remove unused styles for Thumbnail
2022-11-30 17:43:55 +02:00
Devin Binnie 911c0880dd
FIx E2E test util method (#2329) 2022-10-28 11:55:11 -04:00
Tasos Boulis 0f51a628f0
[MM-47776] Reverse order of input fields in server welcome screen (#2309)
* Reverse order of inputs in Server modals (add/edit)

* Revert "Reverse order of inputs in Server modals (add/edit)"

This reverts commit f3d577dcd5c0e13d6d0e3c2cc4de588008f53e68.

* Update order of server fields in welcome screens

* Update server modal focus test

* Add margin between inputs
2022-10-24 10:59:09 -04:00
Tasos Boulis 131b5fa2ac
[MM-22239] Downloads dropdown (#2227)
* WIP: show/hide temp downloads dropdown

* WIP: Position downloads dropdown correctly under the button

* WIP: Use correct width for dropdown so that right radius and shadows are displayed

* WIP: Add items to download list after finished downloading

* WIP: Add download item base components

* Add "clear all" functionality

* Use type Record<> for downloads saved in config

* Add styling to files in the downloads dropdown

* Open file in folder when clicking it from downloads dropdown. Center svg in parent element

* Update scrollbar styling

* Update scrollbar styling

* Update state of downloaded items if deleted from folder

* Add progress bar in downloads

* Use "x-uncompressed-content-length" in file downloads.

* Keep downloads open when clicking outside their browserview

* Use correct color for downloads dropdown button

* Add better styling to downloads dropdown button

* Allow only 50 download files maximum. Oldest file is being removed if reached

* Autoclose downloads dropdown after 4s of download finish

* Add file thumbnails

* Dont show second dialog if first dismissed

* Add red badge when downloads running and dropdown closed

* Add menu item for Downloads

* Add support for more code file extensions

* Open downloads dropdown instead of folder from the menu

* Run lint:js and fix problems

* Add tests for utils

* Fix issue with dropdown not displaying

* Remove unecessary comment

* Move downloads to separate json file, outside Config

* Add downloads dropdown menu for the 3-dot button

* Dont show dev tools for downloads

* Add cancel download functionality

* Add dark mode styling

* Use View state for downloadsMenu open state

* Fix some style issues

* Add image preview for downloaded images

* Remove extra devTool in weback config

* Fix issue with paths on windows

* Align items left in downloads menu

* Use pretty-bytes for file sizes

* Show download remaining time

* Close downloads dropdown when clicking outside

* Show different units in received bytes when they are different from the total units (kb/mb)

* Dont hide downloads when mattermost view is clicked

* Keep downloads open if download button is clicked

* Use closest() to check for download clicks

* Fix unit tests.
Add tests for new Views and downloadManager
Add @types/jest as devDependency for intellisense

* Remove unecessary tsconfig for jest

* Fix types error

* Add all critical tests for downloadsManager

* WIP: add e2e tests for downloads

* WIP: add e2e tests for downloads

* Rename downloads spec file

* WIP: make vscode debugger work for e2e tests

* Remove unused mock

* Remove defaults for v4 config

* Use electron-mocha for e2e debugger

* Fix e2e tests spawning JsonFileManager twice

* Add async fs functions and add tests for download item UI

* Add async fs functions and add tests for download item UI

* Improve tests with "waitForSelector" to wait for visible elements

* Wait for page load before assertions

* Add tests for file uploads/downloads

* Dont show native notification for completed downloads if dropdown is open

* Increment filenames if file already exists

* Fix antializing in downloads dropdown

* Fix styling of downloads header

* Increase dimensions of green/red icons in downloads

* Fix styling of 3-dot button

* Fix unit tests

* Show 3-dot button only on hover or click

* PR review fixes

* Revert vscode debug fixes

* Mock fs.constants

* Mock fs instead of JsonFileManager in downlaods tests

* Mock fs instead of JsonFileManager in downlaods tests

* Add necessary mocks for downloads manager

* Mark file as deleted if user deleted it

* Fix min-height of downloads dropdown and 3-dot icon position

* Add more tests

* Make size of downloads dropdown dynamic based on content

* Combine log statements

* Close 3-dot menu if user clicks elsewhere

* Move application updates inside downloads dropdown

* Fix update issues

* Fix ipc event payload

* Add missing prop

* Remove unused translations

* Fix failing test

* Fix version unknown

* Remove commented out component
2022-10-07 11:40:27 +03:00
Devin Binnie 7c3b68fb68
[MM-46857] Remove misleading console error about tab status when servers don't exist (#2260) 2022-09-21 08:53:43 -04:00
Julian Mondragón c3493b09ff
MM-45981_Desktop: Add Server Screen: Improve Onboarding screens (#2243) 2022-09-16 10:35:37 -05:00
Devin Binnie 2837b764bd
E2E omnibus fixes (#2249)
* Add environment variable for E2E test server

* Fix auto updater test

* Kill macOS processes after test as well

* No dot

* Just do it for all of them

* Force focus of main window on tests

* Fix a focus issue, try win.show() instead

* Another windows hack

* Oops can't spell

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-09-12 10:43:19 -04:00
Devin Binnie 86d35669be
[MM-46535] Fix E2E tests for reporting purposes (#2236) 2022-08-25 09:11:23 -04:00
Saturnino Abril 7d321e849b
Remove cypress related dependency and reporting unsupported diagnostic, and ignore e2e/webpack from unit jest (#2229)
* remove cypress related dependency and reporting, and ignore e2e/webpack from unit jest

* revert eslint-plugin-cypress

* revert change on .eslint-webapp
2022-08-22 15:49:49 -04:00
Devin Binnie 7fbbb217f5
Fix for some flaky E2E tests (#2228) 2022-08-17 11:44:54 -04:00
Julian Mondragón faf2dae74b
MM-25003_Improve Onboarding screens for the desktop app - Intro Screen (#2220) 2022-08-16 12:33:03 -05:00
Devin Binnie 9faaa61e48
[MM-46305] Add reporting code for E2E tests (#2222)
* E2E reporting

* Test report

* Fix artifacts.js

* Revert "Test report"

This reverts commit f4d44b881a19c0e9d63066807f5cb6b9fe9017ee.

* PR feedback
2022-08-15 09:07:22 -04:00
Devin Binnie e73e77daf9
Fix some issues caused by i18n addition (#2209)
* Fix some issues caused by i18n addition

* Couple more small changes
2022-07-26 09:11:56 -04:00
Devin Binnie 821112c038
[MM-45448] Force electron processes to close after every test on Windows (#2207) 2022-07-25 09:41:19 -04:00
Devin Binnie 59e4e7e516
[MM-14058] Add support for i18n (#2190)
* Add language files

* Add react-intl, mmjstool, setup for adding translations

* Translated main module

* Translations for renderer

* A few minor fixes

* More fixes

* Add CI, add missing menu translations, other cleanup

* Added setting to manually select the language of the app

* Force English for E2e

* Unit tests

* Fix mmjstool

* Move set language to before update menu

* PR feedback
2022-07-14 11:04:18 -04:00
Tasos Boulis aa21179f8f
[MM-44931] Allow zoom in/out when Shift is pressed (#2178)
* Add hidden menuitems for zoomIn zoomOut with shift

* Add e2e tests for zoom in/out with shift

* Fix e2e tests

* Add missing async

* Fix lint errors

* Put tests inside describes

* Fix lint errors

* Update e2e/specs/menu_bar/view_menu.test.js

Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>

* Update e2e/specs/menu_bar/view_menu.test.js

Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>

Co-authored-by: Devin Binnie <52460000+devinbinnie@users.noreply.github.com>
2022-06-30 14:14:47 -04:00
Devin Binnie 7440a73ca2
Fixes to E2E tests for v5.1.1 (#2169) 2022-06-22 12:43:24 -04:00
Devin Binnie 1c44c8527a
E2E test fixups (#2045)
* Reinstall reporter and re-enable skipped tests

* Fixups for Linux

* Mac fixes

* Windows fixes

* Use keyboard shortcuts instead of menu for most menu actions

* Couple fixes

* One more fix for now

* Windows fixes

* Lint fixes

* Change up developer tools tests to be more consistent

* Fix key for mac

* Couple fixes for flaky tests/to avoid crashes on unload
2022-04-19 09:56:41 -04:00
Devin Binnie ce2ddb6a6a
[MM-31547] Stop users from being able to enter the same server name or URL twice (#2049)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-04-19 09:31:04 -04:00
Devin Binnie bce2811dbc
[MM-39796][MM-39872][MM-T1659][MM-T2827] E2E Tests for Popups (#2047)
* [MM-39796] E2E Test: Copy and Paste when connecting plugin

* [MM-39872] E2E Test Prevent browser back/forward from firing in OAuth windows
2022-04-14 09:16:11 -04:00
Devin Binnie fdbb468e7f
[MM-39747][MM-T1315][MM-T1316][MM-T1317] E2E Test: Ensure focus is returned to Mattermost view (#2048) 2022-04-12 13:52:59 -04:00
Devin Binnie 3f614a7c6f
[MM-39794] E2E Test: Drag and Drop (#2044) 2022-04-11 10:16:18 -04:00
Devin Binnie 9b466b67f6
[MM-39793][MM-T2633] E2E Test: Use back button to return to the desktop app login - and fixes (#2043)
* [MM-39793][MM-T2633] E2E Test: Use back button to return to the desktop app login - and fixes

* Lint and test fixes
2022-04-08 15:04:00 -04:00