diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml index b4f3aa4145..6b85f522b7 100644 --- a/.github/codeql/codeql-config.yml +++ b/.github/codeql/codeql-config.yml @@ -14,6 +14,6 @@ paths-ignore: - templates - tests - 'api4/*_local.go' - - webapp/channels/e2e - webapp/channels/tests - - '**/*.test.*' \ No newline at end of file + - '**/*.test.*' + - e2e-tests diff --git a/.github/workflows/channels-ci.yml b/.github/workflows/channels-ci.yml index 781cc6dd57..b861650714 100644 --- a/.github/workflows/channels-ci.yml +++ b/.github/workflows/channels-ci.yml @@ -32,14 +32,14 @@ jobs: # with: # path: | # '**/node_modules' - # 'e2e/playwright/node_modules' - # 'e2e/cypress/node_modules' - # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }} + # 'e2e-tests/playwright/node_modules' + # 'e2e-tests/cypress/node_modules' + # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }} - name: ci/get-node-modules # if: steps.npm-cache.outputs.cache-hit != 'true' run: | make node_modules - # make channels/e2e/playwright/node_modules + # make channels/e2e-tests/playwright/node_modules - name: ci/lint run: | npm run check @@ -63,14 +63,14 @@ jobs: # with: # path: | # '**/node_modules' - # 'e2e/playwright/node_modules' - # 'e2e/cypress/node_modules' - # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }} + # 'e2e-tests/playwright/node_modules' + # 'e2e-tests/cypress/node_modules' + # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }} - name: ci/get-node-modules # if: steps.npm-cache.outputs.cache-hit != 'true' run: | make node_modules - # make channels/e2e/playwright/node_modules + # make channels/e2e-tests/playwright/node_modules - name: ci/lint working-directory: webapp/channels run: | @@ -103,14 +103,14 @@ jobs: # with: # path: | # '**/node_modules' - # 'e2e/playwright/node_modules' - # 'e2e/cypress/node_modules' - # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }} + # 'e2e-tests/playwright/node_modules' + # 'e2e-tests/cypress/node_modules' + # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }} - name: ci/get-node-modules # if: steps.npm-cache.outputs.cache-hit != 'true' run: | make node_modules - # make channels/e2e/playwright/node_modules + # make channels/e2e-tests/playwright/node_modules - name: ci/lint run: | npm run check-types @@ -138,14 +138,14 @@ jobs: # with: # path: | # '**/node_modules' - # 'e2e/playwright/node_modules' - # 'e2e/cypress/node_modules' - # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }} + # 'e2e-tests/playwright/node_modules' + # 'e2e-tests/cypress/node_modules' + # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }} - name: ci/get-node-modules # if: steps.npm-cache.outputs.cache-hit != 'true' run: | make node_modules - # make channels/e2e/playwright/node_modules + # make channels/e2e-tests/playwright/node_modules - name: ci/test env: NODE_OPTIONS: --max_old_space_size=5120 @@ -154,13 +154,6 @@ jobs: npm run test-ci --workspace=channels npm run test-ci --workspace=platform/client npm run test-ci --workspace=playbooks - - name: ci/publish-test-results - uses: EnricoMi/publish-unit-test-result-action@a3caf02865c0604ad3dc1ecfcc5cdec9c41b7936 # v2.3.0 - if: always() - with: - junit_files: "webapp/channels/build/**/*.xml" - comment_mode: always - compare_to_earlier_commit: false build: runs-on: ubuntu-22.04 defaults: @@ -181,14 +174,14 @@ jobs: # with: # path: | # '**/node_modules' - # 'e2e/playwright/node_modules' - # 'e2e/cypress/node_modules' - # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }} + # 'e2e-tests/playwright/node_modules' + # 'e2e-tests/cypress/node_modules' + # key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }} - name: ci/get-node-modules # if: steps.npm-cache.outputs.cache-hit != 'true' run: | make node_modules - # make channels/e2e/playwright/node_modules + # make channels/e2e-tests/playwright/node_modules - name: ci/build run: | npm run build diff --git a/.github/workflows/e2e-ci.yml b/.github/workflows/e2e-tests-ci.yml similarity index 84% rename from .github/workflows/e2e-ci.yml rename to .github/workflows/e2e-tests-ci.yml index 923bb6cea4..075fea0262 100644 --- a/.github/workflows/e2e-ci.yml +++ b/.github/workflows/e2e-tests-ci.yml @@ -1,4 +1,4 @@ -name: mattermost-e2e +name: mattermost-e2e-tests on: pull_request: push: @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-22.04 defaults: run: - working-directory: e2e/cypress + working-directory: e2e-tests/cypress steps: - name: ci/checkout-repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 @@ -26,7 +26,7 @@ jobs: with: node-version-file: ".nvmrc" cache: npm - cache-dependency-path: 'e2e/cypress/package-lock.json' + cache-dependency-path: 'e2e-tests/cypress/package-lock.json' - name: ci/cypress/npm-install run: | npm ci @@ -37,7 +37,7 @@ jobs: runs-on: ubuntu-22.04 defaults: run: - working-directory: e2e/playwright + working-directory: e2e-tests/playwright steps: - name: ci/checkout-repo uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 @@ -47,7 +47,7 @@ jobs: with: node-version-file: ".nvmrc" cache: npm - cache-dependency-path: 'e2e/playwright/package-lock.json' + cache-dependency-path: 'e2e-tests/playwright/package-lock.json' - name: ci/get-webapp-node-modules working-directory: webapp # requires build of client and types diff --git a/.gitignore b/.gitignore index ee81c1303e..cf5b44c15e 100644 --- a/.gitignore +++ b/.gitignore @@ -23,25 +23,25 @@ config/logging.json /plugins # disable folders generated by Cypress -e2e/cypress/node_modules -e2e/cypress/tests/downloads -e2e/cypress/tests/screenshots -e2e/cypress/tests/videos -e2e/cypress/tests/integration/benchmark/__benchmarks__ -e2e/cypress/tests/integration/performance/logs -e2e/cypress/tests/fixtures/ldap_tmp -e2e/cypress/tests/fixtures/mmctl -e2e/cypress/results -e2e/cypress/.eslintcache +e2e-tests/cypress/node_modules +e2e-tests/cypress/tests/downloads +e2e-tests/cypress/tests/screenshots +e2e-tests/cypress/tests/videos +e2e-tests/cypress/tests/integration/benchmark/__benchmarks__ +e2e-tests/cypress/tests/integration/performance/logs +e2e-tests/cypress/tests/fixtures/ldap_tmp +e2e-tests/cypress/tests/fixtures/mmctl +e2e-tests/cypress/results +e2e-tests/cypress/.eslintcache # disable files/folders generated by Playwright -e2e/playwright/node_modules -e2e/playwright/playwright-report -e2e/playwright/storage_state -e2e/playwright/test-results -e2e/playwright/tests/**/*-darwin.png -e2e/playwright/tests/**/*-window.png -e2e/playwright/.eslintcache +e2e-tests/playwright/node_modules +e2e-tests/playwright/playwright-report +e2e-tests/playwright/storage_state +e2e-tests/playwright/test-results +e2e-tests/playwright/tests/**/*-darwin.png +e2e-tests/playwright/tests/**/*-window.png +e2e-tests/playwright/.eslintcache # Enterprise & products imports files imports/imports.go diff --git a/e2e/.gitignore b/e2e-tests/.gitignore similarity index 100% rename from e2e/.gitignore rename to e2e-tests/.gitignore diff --git a/e2e/cypress/.eslintignore b/e2e-tests/cypress/.eslintignore similarity index 100% rename from e2e/cypress/.eslintignore rename to e2e-tests/cypress/.eslintignore diff --git a/e2e/cypress/.eslintrc.json b/e2e-tests/cypress/.eslintrc.json similarity index 100% rename from e2e/cypress/.eslintrc.json rename to e2e-tests/cypress/.eslintrc.json diff --git a/e2e/cypress/Dockerfile.webhook b/e2e-tests/cypress/Dockerfile.webhook similarity index 100% rename from e2e/cypress/Dockerfile.webhook rename to e2e-tests/cypress/Dockerfile.webhook diff --git a/e2e/cypress/README-Subpath.md b/e2e-tests/cypress/README-Subpath.md similarity index 100% rename from e2e/cypress/README-Subpath.md rename to e2e-tests/cypress/README-Subpath.md diff --git a/e2e/cypress/cypress.config.ts b/e2e-tests/cypress/cypress.config.ts similarity index 100% rename from e2e/cypress/cypress.config.ts rename to e2e-tests/cypress/cypress.config.ts diff --git a/e2e/cypress/generate_test_cycle.js b/e2e-tests/cypress/generate_test_cycle.js similarity index 100% rename from e2e/cypress/generate_test_cycle.js rename to e2e-tests/cypress/generate_test_cycle.js diff --git a/e2e/cypress/package-lock.json b/e2e-tests/cypress/package-lock.json similarity index 100% rename from e2e/cypress/package-lock.json rename to e2e-tests/cypress/package-lock.json diff --git a/e2e/cypress/package.json b/e2e-tests/cypress/package.json similarity index 100% rename from e2e/cypress/package.json rename to e2e-tests/cypress/package.json diff --git a/e2e/cypress/patches/@testing-library+cypress+9.0.0.patch b/e2e-tests/cypress/patches/@testing-library+cypress+9.0.0.patch similarity index 100% rename from e2e/cypress/patches/@testing-library+cypress+9.0.0.patch rename to e2e-tests/cypress/patches/@testing-library+cypress+9.0.0.patch diff --git a/e2e/cypress/run_test_cycle.js b/e2e-tests/cypress/run_test_cycle.js similarity index 100% rename from e2e/cypress/run_test_cycle.js rename to e2e-tests/cypress/run_test_cycle.js diff --git a/e2e/cypress/run_tests.js b/e2e-tests/cypress/run_tests.js similarity index 100% rename from e2e/cypress/run_tests.js rename to e2e-tests/cypress/run_tests.js diff --git a/e2e/cypress/save_report.js b/e2e-tests/cypress/save_report.js similarity index 100% rename from e2e/cypress/save_report.js rename to e2e-tests/cypress/save_report.js diff --git a/e2e/cypress/tests/extensions/Ignore-X-Frame-headers/background.js b/e2e-tests/cypress/tests/extensions/Ignore-X-Frame-headers/background.js similarity index 100% rename from e2e/cypress/tests/extensions/Ignore-X-Frame-headers/background.js rename to e2e-tests/cypress/tests/extensions/Ignore-X-Frame-headers/background.js diff --git a/e2e/cypress/tests/extensions/Ignore-X-Frame-headers/manifest.json b/e2e-tests/cypress/tests/extensions/Ignore-X-Frame-headers/manifest.json similarity index 100% rename from e2e/cypress/tests/extensions/Ignore-X-Frame-headers/manifest.json rename to e2e-tests/cypress/tests/extensions/Ignore-X-Frame-headers/manifest.json diff --git a/e2e/cypress/tests/fixtures/MM-logo-horizontal.png b/e2e-tests/cypress/tests/fixtures/MM-logo-horizontal.png similarity index 100% rename from e2e/cypress/tests/fixtures/MM-logo-horizontal.png rename to e2e-tests/cypress/tests/fixtures/MM-logo-horizontal.png diff --git a/e2e/cypress/tests/fixtures/animated-gif-image-file.gif b/e2e-tests/cypress/tests/fixtures/animated-gif-image-file.gif similarity index 100% rename from e2e/cypress/tests/fixtures/animated-gif-image-file.gif rename to e2e-tests/cypress/tests/fixtures/animated-gif-image-file.gif diff --git a/e2e/cypress/tests/fixtures/bmp-image-file.bmp b/e2e-tests/cypress/tests/fixtures/bmp-image-file.bmp similarity index 100% rename from e2e/cypress/tests/fixtures/bmp-image-file.bmp rename to e2e-tests/cypress/tests/fixtures/bmp-image-file.bmp diff --git a/e2e/cypress/tests/fixtures/bot-default-avatar.png b/e2e-tests/cypress/tests/fixtures/bot-default-avatar.png similarity index 100% rename from e2e/cypress/tests/fixtures/bot-default-avatar.png rename to e2e-tests/cypress/tests/fixtures/bot-default-avatar.png diff --git a/e2e/cypress/tests/fixtures/client_billing.json b/e2e-tests/cypress/tests/fixtures/client_billing.json similarity index 100% rename from e2e/cypress/tests/fixtures/client_billing.json rename to e2e-tests/cypress/tests/fixtures/client_billing.json diff --git a/e2e/cypress/tests/fixtures/console-example-inputs.json b/e2e-tests/cypress/tests/fixtures/console-example-inputs.json similarity index 100% rename from e2e/cypress/tests/fixtures/console-example-inputs.json rename to e2e-tests/cypress/tests/fixtures/console-example-inputs.json diff --git a/e2e/cypress/tests/fixtures/date_time_format.js b/e2e-tests/cypress/tests/fixtures/date_time_format.js similarity index 100% rename from e2e/cypress/tests/fixtures/date_time_format.js rename to e2e-tests/cypress/tests/fixtures/date_time_format.js diff --git a/e2e/cypress/tests/fixtures/favicon-16x16.png b/e2e-tests/cypress/tests/fixtures/favicon-16x16.png similarity index 100% rename from e2e/cypress/tests/fixtures/favicon-16x16.png rename to e2e-tests/cypress/tests/fixtures/favicon-16x16.png diff --git a/e2e/cypress/tests/fixtures/favicon-default-16x16.png b/e2e-tests/cypress/tests/fixtures/favicon-default-16x16.png similarity index 100% rename from e2e/cypress/tests/fixtures/favicon-default-16x16.png rename to e2e-tests/cypress/tests/fixtures/favicon-default-16x16.png diff --git a/e2e/cypress/tests/fixtures/favicon-mentions-16x16.png b/e2e-tests/cypress/tests/fixtures/favicon-mentions-16x16.png similarity index 100% rename from e2e/cypress/tests/fixtures/favicon-mentions-16x16.png rename to e2e-tests/cypress/tests/fixtures/favicon-mentions-16x16.png diff --git a/e2e/cypress/tests/fixtures/favicon-unread-16x16.png b/e2e-tests/cypress/tests/fixtures/favicon-unread-16x16.png similarity index 100% rename from e2e/cypress/tests/fixtures/favicon-unread-16x16.png rename to e2e-tests/cypress/tests/fixtures/favicon-unread-16x16.png diff --git a/e2e/cypress/tests/fixtures/gif-image-file-resized.gif b/e2e-tests/cypress/tests/fixtures/gif-image-file-resized.gif similarity index 100% rename from e2e/cypress/tests/fixtures/gif-image-file-resized.gif rename to e2e-tests/cypress/tests/fixtures/gif-image-file-resized.gif diff --git a/e2e/cypress/tests/fixtures/gif-image-file.gif b/e2e-tests/cypress/tests/fixtures/gif-image-file.gif similarity index 100% rename from e2e/cypress/tests/fixtures/gif-image-file.gif rename to e2e-tests/cypress/tests/fixtures/gif-image-file.gif diff --git a/e2e/cypress/tests/fixtures/hooks/message_menus.json b/e2e-tests/cypress/tests/fixtures/hooks/message_menus.json similarity index 100% rename from e2e/cypress/tests/fixtures/hooks/message_menus.json rename to e2e-tests/cypress/tests/fixtures/hooks/message_menus.json diff --git a/e2e/cypress/tests/fixtures/hooks/message_menus_with_datasource.json b/e2e-tests/cypress/tests/fixtures/hooks/message_menus_with_datasource.json similarity index 100% rename from e2e/cypress/tests/fixtures/hooks/message_menus_with_datasource.json rename to e2e-tests/cypress/tests/fixtures/hooks/message_menus_with_datasource.json diff --git a/e2e/cypress/tests/fixtures/huge-image.jpg b/e2e-tests/cypress/tests/fixtures/huge-image.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/huge-image.jpg rename to e2e-tests/cypress/tests/fixtures/huge-image.jpg diff --git a/e2e/cypress/tests/fixtures/image-1000x40.jpg b/e2e-tests/cypress/tests/fixtures/image-1000x40.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/image-1000x40.jpg rename to e2e-tests/cypress/tests/fixtures/image-1000x40.jpg diff --git a/e2e/cypress/tests/fixtures/image-1600x40.jpg b/e2e-tests/cypress/tests/fixtures/image-1600x40.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/image-1600x40.jpg rename to e2e-tests/cypress/tests/fixtures/image-1600x40.jpg diff --git a/e2e/cypress/tests/fixtures/image-20x20.jpg b/e2e-tests/cypress/tests/fixtures/image-20x20.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/image-20x20.jpg rename to e2e-tests/cypress/tests/fixtures/image-20x20.jpg diff --git a/e2e/cypress/tests/fixtures/image-400x40.jpg b/e2e-tests/cypress/tests/fixtures/image-400x40.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/image-400x40.jpg rename to e2e-tests/cypress/tests/fixtures/image-400x40.jpg diff --git a/e2e/cypress/tests/fixtures/image-400x400.jpg b/e2e-tests/cypress/tests/fixtures/image-400x400.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/image-400x400.jpg rename to e2e-tests/cypress/tests/fixtures/image-400x400.jpg diff --git a/e2e/cypress/tests/fixtures/image-40x400.jpg b/e2e-tests/cypress/tests/fixtures/image-40x400.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/image-40x400.jpg rename to e2e-tests/cypress/tests/fixtures/image-40x400.jpg diff --git a/e2e/cypress/tests/fixtures/image-50x50.jpg b/e2e-tests/cypress/tests/fixtures/image-50x50.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/image-50x50.jpg rename to e2e-tests/cypress/tests/fixtures/image-50x50.jpg diff --git a/e2e/cypress/tests/fixtures/image-60x60.jpg b/e2e-tests/cypress/tests/fixtures/image-60x60.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/image-60x60.jpg rename to e2e-tests/cypress/tests/fixtures/image-60x60.jpg diff --git a/e2e/cypress/tests/fixtures/image-small-height.png b/e2e-tests/cypress/tests/fixtures/image-small-height.png similarity index 100% rename from e2e/cypress/tests/fixtures/image-small-height.png rename to e2e-tests/cypress/tests/fixtures/image-small-height.png diff --git a/e2e/cypress/tests/fixtures/image-small-width.png b/e2e-tests/cypress/tests/fixtures/image-small-width.png similarity index 100% rename from e2e/cypress/tests/fixtures/image-small-width.png rename to e2e-tests/cypress/tests/fixtures/image-small-width.png diff --git a/e2e/cypress/tests/fixtures/interactive_message_menus_options.json b/e2e-tests/cypress/tests/fixtures/interactive_message_menus_options.json similarity index 100% rename from e2e/cypress/tests/fixtures/interactive_message_menus_options.json rename to e2e-tests/cypress/tests/fixtures/interactive_message_menus_options.json diff --git a/e2e/cypress/tests/fixtures/jpg-image-file.jpg b/e2e-tests/cypress/tests/fixtures/jpg-image-file.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/jpg-image-file.jpg rename to e2e-tests/cypress/tests/fixtures/jpg-image-file.jpg diff --git a/e2e/cypress/tests/fixtures/ldap-add-user.ldif b/e2e-tests/cypress/tests/fixtures/ldap-add-user.ldif similarity index 100% rename from e2e/cypress/tests/fixtures/ldap-add-user.ldif rename to e2e-tests/cypress/tests/fixtures/ldap-add-user.ldif diff --git a/e2e/cypress/tests/fixtures/ldap-reset-data.ldif b/e2e-tests/cypress/tests/fixtures/ldap-reset-data.ldif similarity index 100% rename from e2e/cypress/tests/fixtures/ldap-reset-data.ldif rename to e2e-tests/cypress/tests/fixtures/ldap-reset-data.ldif diff --git a/e2e/cypress/tests/fixtures/ldap_users.json b/e2e-tests/cypress/tests/fixtures/ldap_users.json similarity index 100% rename from e2e/cypress/tests/fixtures/ldap_users.json rename to e2e-tests/cypress/tests/fixtures/ldap_users.json diff --git a/e2e/cypress/tests/fixtures/long_text_post.txt b/e2e-tests/cypress/tests/fixtures/long_text_post.txt similarity index 100% rename from e2e/cypress/tests/fixtures/long_text_post.txt rename to e2e-tests/cypress/tests/fixtures/long_text_post.txt diff --git a/e2e/cypress/tests/fixtures/m4a-audio-file.m4a b/e2e-tests/cypress/tests/fixtures/m4a-audio-file.m4a similarity index 100% rename from e2e/cypress/tests/fixtures/m4a-audio-file.m4a rename to e2e-tests/cypress/tests/fixtures/m4a-audio-file.m4a diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_basic.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_basic.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_basic.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_basic.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_basic.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_basic.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_basic.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_basic.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_block_quotes_1.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_block_quotes_1.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_block_quotes_1.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_block_quotes_1.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_block_quotes_1.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_block_quotes_1.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_block_quotes_1.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_block_quotes_1.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_block_quotes_2.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_block_quotes_2.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_block_quotes_2.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_block_quotes_2.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_carriage_return.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_carriage_return.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_carriage_return.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_carriage_return.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_carriage_return.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_carriage_return.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_carriage_return.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_carriage_return.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_carriage_return_two_lines.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_carriage_return_two_lines.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_carriage_return_two_lines.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_carriage_return_two_lines.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_carriage_return_two_lines.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_carriage_return_two_lines.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_carriage_return_two_lines.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_carriage_return_two_lines.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_code_block.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_code_block.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_code_block.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_code_block.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_code_block.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_code_block.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_code_block.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_code_block.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_code_syntax.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_code_syntax.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_code_syntax.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_code_syntax.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_escape_characters.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_escape_characters.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_escape_characters.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_escape_characters.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_escape_characters.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_escape_characters.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_escape_characters.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_escape_characters.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_headings.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_headings.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_headings.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_headings.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_headings.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_headings.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_headings.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_headings.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_inline_code.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_code.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_inline_code.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_code.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_inline_code.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_code.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_inline_code.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_code.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_inline_images_1.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_1.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_inline_images_1.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_1.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_inline_images_2.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_2.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_inline_images_2.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_2.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_inline_images_3.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_3.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_inline_images_3.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_3.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_inline_images_4.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_4.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_inline_images_4.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_4.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_inline_images_5.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_5.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_inline_images_5.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_5.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_inline_images_6.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_6.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_inline_images_6.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_inline_images_6.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_latex.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_latex.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_latex.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_latex.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_latex.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_latex.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_latex.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_latex.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_lines.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_lines.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_lines.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_lines.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_lines.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_lines.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_lines.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_lines.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_list.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_list.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_list.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_list.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_not_autolink.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_not_autolink.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_not_autolink.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_not_autolink.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_not_autolink.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_not_autolink.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_not_autolink.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_not_autolink.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_not_in_code_block.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_not_in_code_block.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_not_in_code_block.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_not_in_code_block.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_not_in_code_block.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_not_in_code_block.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_not_in_code_block.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_not_in_code_block.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_postgres.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_postgres.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_postgres.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_postgres.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_postgres.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_postgres.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_postgres.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_postgres.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_python.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_python.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_python.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_python.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_python.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_python.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_python.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_python.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_shell.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_shell.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_shell.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_shell.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_shell.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_shell.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_shell.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_shell.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_tables.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_tables.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_tables.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_tables.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_test_basic.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_test_basic.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_test_basic.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_test_basic.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_text_style.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_text_style.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_text_style.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_text_style.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_text_style.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_text_style.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_text_style.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_text_style.md diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_typescript.html b/e2e-tests/cypress/tests/fixtures/markdown/markdown_typescript.html similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_typescript.html rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_typescript.html diff --git a/e2e/cypress/tests/fixtures/markdown/markdown_typescript.md b/e2e-tests/cypress/tests/fixtures/markdown/markdown_typescript.md similarity index 100% rename from e2e/cypress/tests/fixtures/markdown/markdown_typescript.md rename to e2e-tests/cypress/tests/fixtures/markdown/markdown_typescript.md diff --git a/e2e/cypress/tests/fixtures/mattermost-icon.png b/e2e-tests/cypress/tests/fixtures/mattermost-icon.png similarity index 100% rename from e2e/cypress/tests/fixtures/mattermost-icon.png rename to e2e-tests/cypress/tests/fixtures/mattermost-icon.png diff --git a/e2e/cypress/tests/fixtures/mattermost-icon_128x128.png b/e2e-tests/cypress/tests/fixtures/mattermost-icon_128x128.png similarity index 100% rename from e2e/cypress/tests/fixtures/mattermost-icon_128x128.png rename to e2e-tests/cypress/tests/fixtures/mattermost-icon_128x128.png diff --git a/e2e/cypress/tests/fixtures/messages.js b/e2e-tests/cypress/tests/fixtures/messages.js similarity index 100% rename from e2e/cypress/tests/fixtures/messages.js rename to e2e-tests/cypress/tests/fixtures/messages.js diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Audio/AAC.aac b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/AAC.aac similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Audio/AAC.aac rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/AAC.aac diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Audio/FLAC.flac b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/FLAC.flac similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Audio/FLAC.flac rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/FLAC.flac diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Audio/M4A.m4a b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/M4A.m4a similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Audio/M4A.m4a rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/M4A.m4a diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Audio/M4R.m4r b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/M4R.m4r similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Audio/M4R.m4r rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/M4R.m4r diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Audio/MP3.mp3 b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/MP3.mp3 similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Audio/MP3.mp3 rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/MP3.mp3 diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Audio/OGG.ogg b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/OGG.ogg similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Audio/OGG.ogg rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/OGG.ogg diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Audio/WAV.wav b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/WAV.wav similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Audio/WAV.wav rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/WAV.wav diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Audio/WMA.wma b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/WMA.wma similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Audio/WMA.wma rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Audio/WMA.wma diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Code/JSON b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Code/JSON similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Code/JSON rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Code/JSON diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Code/Patch.diff b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Code/Patch.diff similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Code/Patch.diff rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Code/Patch.diff diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Code/Python b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Code/Python similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Code/Python rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Code/Python diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Documents/Excel.xlsx b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/Excel.xlsx similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Documents/Excel.xlsx rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/Excel.xlsx diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Documents/PDF.pdf b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/PDF.pdf similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Documents/PDF.pdf rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/PDF.pdf diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Documents/PPT.pptx b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/PPT.pptx similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Documents/PPT.pptx rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/PPT.pptx diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Documents/Text.txt b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/Text.txt similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Documents/Text.txt rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/Text.txt diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Documents/Word.docx b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/Word.docx similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Documents/Word.docx rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Documents/Word.docx diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Images/BMP.bmp b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/BMP.bmp similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Images/BMP.bmp rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/BMP.bmp diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Images/GIF.gif b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/GIF.gif similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Images/GIF.gif rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/GIF.gif diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Images/JPG.jpg b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/JPG.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Images/JPG.jpg rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/JPG.jpg diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Images/PNG.png b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/PNG.png similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Images/PNG.png rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/PNG.png diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Images/PSD.psd b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/PSD.psd similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Images/PSD.psd rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/PSD.psd diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Images/TIFF.tif b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/TIFF.tif similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Images/TIFF.tif rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Images/TIFF.tif diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Video/AVI.avi b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/AVI.avi similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Video/AVI.avi rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/AVI.avi diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Video/MKV.mkv b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/MKV.mkv similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Video/MKV.mkv rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/MKV.mkv diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Video/MOV.mov b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/MOV.mov similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Video/MOV.mov rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/MOV.mov diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Video/MP4.mp4 b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/MP4.mp4 similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Video/MP4.mp4 rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/MP4.mp4 diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Video/MPG.mpg b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/MPG.mpg similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Video/MPG.mpg rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/MPG.mpg diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Video/WEBM.webm b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/WEBM.webm similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Video/WEBM.webm rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/WEBM.webm diff --git a/e2e/cypress/tests/fixtures/mm_file_testing/Video/WMV.wmv b/e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/WMV.wmv similarity index 100% rename from e2e/cypress/tests/fixtures/mm_file_testing/Video/WMV.wmv rename to e2e-tests/cypress/tests/fixtures/mm_file_testing/Video/WMV.wmv diff --git a/e2e/cypress/tests/fixtures/mp3-audio-file.mp3 b/e2e-tests/cypress/tests/fixtures/mp3-audio-file.mp3 similarity index 100% rename from e2e/cypress/tests/fixtures/mp3-audio-file.mp3 rename to e2e-tests/cypress/tests/fixtures/mp3-audio-file.mp3 diff --git a/e2e/cypress/tests/fixtures/mp4-video-file.mp4 b/e2e-tests/cypress/tests/fixtures/mp4-video-file.mp4 similarity index 100% rename from e2e/cypress/tests/fixtures/mp4-video-file.mp4 rename to e2e-tests/cypress/tests/fixtures/mp4-video-file.mp4 diff --git a/e2e/cypress/tests/fixtures/mpeg-video-file.mpg b/e2e-tests/cypress/tests/fixtures/mpeg-video-file.mpg similarity index 100% rename from e2e/cypress/tests/fixtures/mpeg-video-file.mpg rename to e2e-tests/cypress/tests/fixtures/mpeg-video-file.mpg diff --git a/e2e/cypress/tests/fixtures/playbook-export.json b/e2e-tests/cypress/tests/fixtures/playbook-export.json similarity index 100% rename from e2e/cypress/tests/fixtures/playbook-export.json rename to e2e-tests/cypress/tests/fixtures/playbook-export.json diff --git a/e2e/cypress/tests/fixtures/png-image-file.png b/e2e-tests/cypress/tests/fixtures/png-image-file.png similarity index 100% rename from e2e/cypress/tests/fixtures/png-image-file.png rename to e2e-tests/cypress/tests/fixtures/png-image-file.png diff --git a/e2e/cypress/tests/fixtures/powerpoint-file.ppt b/e2e-tests/cypress/tests/fixtures/powerpoint-file.ppt similarity index 100% rename from e2e/cypress/tests/fixtures/powerpoint-file.ppt rename to e2e-tests/cypress/tests/fixtures/powerpoint-file.ppt diff --git a/e2e/cypress/tests/fixtures/powerpointx-file.pptx b/e2e-tests/cypress/tests/fixtures/powerpointx-file.pptx similarity index 100% rename from e2e/cypress/tests/fixtures/powerpointx-file.pptx rename to e2e-tests/cypress/tests/fixtures/powerpointx-file.pptx diff --git a/e2e/cypress/tests/fixtures/saml_ldap_users.json b/e2e-tests/cypress/tests/fixtures/saml_ldap_users.json similarity index 100% rename from e2e/cypress/tests/fixtures/saml_ldap_users.json rename to e2e-tests/cypress/tests/fixtures/saml_ldap_users.json diff --git a/e2e/cypress/tests/fixtures/saml_users.json b/e2e-tests/cypress/tests/fixtures/saml_users.json similarity index 100% rename from e2e/cypress/tests/fixtures/saml_users.json rename to e2e-tests/cypress/tests/fixtures/saml_users.json diff --git a/e2e/cypress/tests/fixtures/small-image.png b/e2e-tests/cypress/tests/fixtures/small-image.png similarity index 100% rename from e2e/cypress/tests/fixtures/small-image.png rename to e2e-tests/cypress/tests/fixtures/small-image.png diff --git a/e2e/cypress/tests/fixtures/svg.svg b/e2e-tests/cypress/tests/fixtures/svg.svg similarity index 100% rename from e2e/cypress/tests/fixtures/svg.svg rename to e2e-tests/cypress/tests/fixtures/svg.svg diff --git a/e2e/cypress/tests/fixtures/system-roles-console-access.json b/e2e-tests/cypress/tests/fixtures/system-roles-console-access.json similarity index 100% rename from e2e/cypress/tests/fixtures/system-roles-console-access.json rename to e2e-tests/cypress/tests/fixtures/system-roles-console-access.json diff --git a/e2e/cypress/tests/fixtures/theme.json b/e2e-tests/cypress/tests/fixtures/theme.json similarity index 100% rename from e2e/cypress/tests/fixtures/theme.json rename to e2e-tests/cypress/tests/fixtures/theme.json diff --git a/e2e/cypress/tests/fixtures/tiff-image-file.tif b/e2e-tests/cypress/tests/fixtures/tiff-image-file.tif similarity index 100% rename from e2e/cypress/tests/fixtures/tiff-image-file.tif rename to e2e-tests/cypress/tests/fixtures/tiff-image-file.tif diff --git a/e2e/cypress/tests/fixtures/timeouts.js b/e2e-tests/cypress/tests/fixtures/timeouts.js similarity index 100% rename from e2e/cypress/tests/fixtures/timeouts.js rename to e2e-tests/cypress/tests/fixtures/timeouts.js diff --git a/e2e/cypress/tests/fixtures/txt-changed-as-png.png b/e2e-tests/cypress/tests/fixtures/txt-changed-as-png.png similarity index 100% rename from e2e/cypress/tests/fixtures/txt-changed-as-png.png rename to e2e-tests/cypress/tests/fixtures/txt-changed-as-png.png diff --git a/e2e/cypress/tests/fixtures/webhook_icon.jpg b/e2e-tests/cypress/tests/fixtures/webhook_icon.jpg similarity index 100% rename from e2e/cypress/tests/fixtures/webhook_icon.jpg rename to e2e-tests/cypress/tests/fixtures/webhook_icon.jpg diff --git a/e2e/cypress/tests/fixtures/webhook_override_icon.png b/e2e-tests/cypress/tests/fixtures/webhook_override_icon.png similarity index 100% rename from e2e/cypress/tests/fixtures/webhook_override_icon.png rename to e2e-tests/cypress/tests/fixtures/webhook_override_icon.png diff --git a/e2e/cypress/tests/fixtures/word-file.doc b/e2e-tests/cypress/tests/fixtures/word-file.doc similarity index 100% rename from e2e/cypress/tests/fixtures/word-file.doc rename to e2e-tests/cypress/tests/fixtures/word-file.doc diff --git a/e2e/cypress/tests/fixtures/wordx-file.docx b/e2e-tests/cypress/tests/fixtures/wordx-file.docx similarity index 100% rename from e2e/cypress/tests/fixtures/wordx-file.docx rename to e2e-tests/cypress/tests/fixtures/wordx-file.docx diff --git a/e2e/cypress/tests/integration/boards/card_badges_spec.ts b/e2e-tests/cypress/tests/integration/boards/card_badges_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/boards/card_badges_spec.ts rename to e2e-tests/cypress/tests/integration/boards/card_badges_spec.ts diff --git a/e2e/cypress/tests/integration/boards/card_urlproperty_spec.ts b/e2e-tests/cypress/tests/integration/boards/card_urlproperty_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/boards/card_urlproperty_spec.ts rename to e2e-tests/cypress/tests/integration/boards/card_urlproperty_spec.ts diff --git a/e2e/cypress/tests/integration/boards/create_board_spec.ts b/e2e-tests/cypress/tests/integration/boards/create_board_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/boards/create_board_spec.ts rename to e2e-tests/cypress/tests/integration/boards/create_board_spec.ts diff --git a/e2e/cypress/tests/integration/boards/group_by_property_spec.ts b/e2e-tests/cypress/tests/integration/boards/group_by_property_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/boards/group_by_property_spec.ts rename to e2e-tests/cypress/tests/integration/boards/group_by_property_spec.ts diff --git a/e2e/cypress/tests/integration/boards/manage_groups_spec.ts b/e2e-tests/cypress/tests/integration/boards/manage_groups_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/boards/manage_groups_spec.ts rename to e2e-tests/cypress/tests/integration/boards/manage_groups_spec.ts diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_account_settings_spec.js b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_account_settings_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_account_settings_spec.js rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_account_settings_spec.js diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_buttons_spec.js b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_buttons_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_buttons_spec.js rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_buttons_spec.js diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_dropdowns_spec.js b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_dropdowns_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_dropdowns_spec.js rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_dropdowns_spec.js diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_image_spec.js b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_image_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_image_spec.js rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_image_spec.js diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_keyboard_usability_spec.js b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_keyboard_usability_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_keyboard_usability_spec.js rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_keyboard_usability_spec.js diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_nav_diff_regions_spec.js b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_nav_diff_regions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_nav_diff_regions_spec.js rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_nav_diff_regions_spec.js diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_popovers_spec.js b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_popovers_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_popovers_spec.js rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_popovers_spec.js diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_post_spec.js b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_post_spec.js rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_post_spec.js diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_sidebar_dm_spec.js b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_sidebar_dm_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_sidebar_dm_spec.js rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_sidebar_dm_spec.js diff --git a/e2e/cypress/tests/integration/channels/accessibility/accessibility_sidebar_spec.ts b/e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_sidebar_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/accessibility/accessibility_sidebar_spec.ts rename to e2e-tests/cypress/tests/integration/channels/accessibility/accessibility_sidebar_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/account_settings_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/account_settings_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/account_settings_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/account_settings_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/main_menu_stays_open_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/main_menu_stays_open_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/main_menu_stays_open_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/main_menu_stays_open_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/profile/account_settings_position_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/profile/account_settings_position_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/profile/account_settings_position_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/profile/account_settings_position_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/profile/email_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/profile/email_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/profile/email_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/profile/email_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/profile/fullname_edit_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/profile/fullname_edit_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/profile/fullname_edit_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/profile/fullname_edit_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/profile/fullname_truncate_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/profile/fullname_truncate_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/profile/fullname_truncate_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/profile/fullname_truncate_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/profile/help_text_link_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/profile/help_text_link_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/profile/help_text_link_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/profile/help_text_link_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/profile/nickname_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/profile/nickname_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/profile/nickname_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/profile/nickname_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/profile/profile_picture_change_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/profile/profile_picture_change_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/profile/profile_picture_change_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/profile/profile_picture_change_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/profile/profile_picture_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/profile/profile_picture_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/profile/profile_picture_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/profile/profile_picture_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/profile/username_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/profile/username_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/profile/username_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/profile/username_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/security/access_history_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/security/access_history_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/security/access_history_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/security/access_history_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/security/active_sessions_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/security/active_sessions_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/security/active_sessions_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/security/active_sessions_spec.ts diff --git a/e2e/cypress/tests/integration/channels/account_settings/security/password_spec.ts b/e2e-tests/cypress/tests/integration/channels/account_settings/security/password_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/account_settings/security/password_spec.ts rename to e2e-tests/cypress/tests/integration/channels/account_settings/security/password_spec.ts diff --git a/e2e/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_id_attrib_spec.js b/e2e-tests/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_id_attrib_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_id_attrib_spec.js rename to e2e-tests/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_id_attrib_spec.js diff --git a/e2e/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_remove_spec.js b/e2e-tests/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_remove_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_remove_spec.js rename to e2e-tests/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_remove_spec.js diff --git a/e2e/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_spec.js b/e2e-tests/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_spec.js rename to e2e-tests/cypress/tests/integration/channels/ad_ldap/saml_ldap_sync_spec.js diff --git a/e2e/cypress/tests/integration/channels/archived_channel/archive_channel_add_reaction_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_add_reaction_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/archive_channel_add_reaction_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_add_reaction_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/archive_channel_header_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_header_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/archive_channel_header_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_header_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/archive_channel_member_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_member_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/archive_channel_member_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_member_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/archive_channel_operations_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_operations_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/archive_channel_operations_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_operations_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/archive_channel_post_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_post_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/archive_channel_post_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_post_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/archive_channel_reaction_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_reaction_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/archive_channel_reaction_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_reaction_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/archive_channel_search_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_search_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/archive_channel_search_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/archive_channel_search_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/archived_channel_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/archived_channel_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/archived_channel_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/archived_channel_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/archived_leave_channel_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/archived_leave_channel_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/archived_leave_channel_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/archived_leave_channel_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/helpers.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/helpers.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/helpers.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/helpers.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/join_archived_channel_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/join_archived_channel_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/join_archived_channel_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/join_archived_channel_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/leave_archived_channel_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/leave_archived_channel_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/leave_archived_channel_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/leave_archived_channel_spec.ts diff --git a/e2e/cypress/tests/integration/channels/archived_channel/post_menu_spec.ts b/e2e-tests/cypress/tests/integration/channels/archived_channel/post_menu_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/archived_channel/post_menu_spec.ts rename to e2e-tests/cypress/tests/integration/channels/archived_channel/post_menu_spec.ts diff --git a/e2e/cypress/tests/integration/channels/auth_sso/authentication_1_spec.ts b/e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_1_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/auth_sso/authentication_1_spec.ts rename to e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_1_spec.ts diff --git a/e2e/cypress/tests/integration/channels/auth_sso/authentication_2_spec.ts b/e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_2_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/auth_sso/authentication_2_spec.ts rename to e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_2_spec.ts diff --git a/e2e/cypress/tests/integration/channels/auth_sso/authentication_3_spec.ts b/e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_3_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/auth_sso/authentication_3_spec.ts rename to e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_3_spec.ts diff --git a/e2e/cypress/tests/integration/channels/auth_sso/authentication_4_spec.ts b/e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_4_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/auth_sso/authentication_4_spec.ts rename to e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_4_spec.ts diff --git a/e2e/cypress/tests/integration/channels/auth_sso/authentication_not_cloud_spec.ts b/e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_not_cloud_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/auth_sso/authentication_not_cloud_spec.ts rename to e2e-tests/cypress/tests/integration/channels/auth_sso/authentication_not_cloud_spec.ts diff --git a/e2e/cypress/tests/integration/channels/auth_sso/hide_create_account_spec.ts b/e2e-tests/cypress/tests/integration/channels/auth_sso/hide_create_account_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/auth_sso/hide_create_account_spec.ts rename to e2e-tests/cypress/tests/integration/channels/auth_sso/hide_create_account_spec.ts diff --git a/e2e/cypress/tests/integration/channels/autocomplete/common_test.ts b/e2e-tests/cypress/tests/integration/channels/autocomplete/common_test.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/autocomplete/common_test.ts rename to e2e-tests/cypress/tests/integration/channels/autocomplete/common_test.ts diff --git a/e2e/cypress/tests/integration/channels/autocomplete/database/users_in_channel_switcher_spec.js b/e2e-tests/cypress/tests/integration/channels/autocomplete/database/users_in_channel_switcher_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/autocomplete/database/users_in_channel_switcher_spec.js rename to e2e-tests/cypress/tests/integration/channels/autocomplete/database/users_in_channel_switcher_spec.js diff --git a/e2e/cypress/tests/integration/channels/autocomplete/database/users_in_message_input_box_spec.js b/e2e-tests/cypress/tests/integration/channels/autocomplete/database/users_in_message_input_box_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/autocomplete/database/users_in_message_input_box_spec.js rename to e2e-tests/cypress/tests/integration/channels/autocomplete/database/users_in_message_input_box_spec.js diff --git a/e2e/cypress/tests/integration/channels/autocomplete/database/users_spec.js b/e2e-tests/cypress/tests/integration/channels/autocomplete/database/users_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/autocomplete/database/users_spec.js rename to e2e-tests/cypress/tests/integration/channels/autocomplete/database/users_spec.js diff --git a/e2e/cypress/tests/integration/channels/autocomplete/helpers.ts b/e2e-tests/cypress/tests/integration/channels/autocomplete/helpers.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/autocomplete/helpers.ts rename to e2e-tests/cypress/tests/integration/channels/autocomplete/helpers.ts diff --git a/e2e/cypress/tests/integration/channels/benchmark/message_spec.ts b/e2e-tests/cypress/tests/integration/channels/benchmark/message_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/benchmark/message_spec.ts rename to e2e-tests/cypress/tests/integration/channels/benchmark/message_spec.ts diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/bot_api_1_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/bot_api_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/bot_api_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/bot_api_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/bot_api_2_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/bot_api_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/bot_api_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/bot_api_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/bot_api_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/bot_api_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/bot_api_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/bot_api_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/bot_channel_intro_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/bot_channel_intro_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/bot_channel_intro_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/bot_channel_intro_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/create_bot_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/create_bot_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/create_bot_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/create_bot_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/crud_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/crud_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/crud_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/crud_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/crud_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/crud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/crud_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/crud_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/display_name_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/display_name_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/display_name_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/display_name_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/edit_bot_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/edit_bot_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/edit_bot_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/edit_bot_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/edit_bot_username_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/edit_bot_username_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/edit_bot_username_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/edit_bot_username_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/helpers.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/helpers.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/helpers.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/in_lists_1_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/in_lists_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/in_lists_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/in_lists_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/in_lists_2_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/in_lists_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/in_lists_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/in_lists_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/in_teams_and_channels_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/in_teams_and_channels_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/in_teams_and_channels_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/in_teams_and_channels_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/managing_bot_accounts_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/managing_bot_accounts_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/managing_bot_accounts_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/managing_bot_accounts_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/managing_bot_accounts_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/managing_bot_accounts_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/managing_bot_accounts_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/managing_bot_accounts_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/post_message_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/post_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/post_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/post_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/promote_demote_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/promote_demote_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/promote_demote_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/promote_demote_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/sidebar_display_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/sidebar_display_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/sidebar_display_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/sidebar_display_spec.js diff --git a/e2e/cypress/tests/integration/channels/bot_accounts/tags_spec.js b/e2e-tests/cypress/tests/integration/channels/bot_accounts/tags_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/bot_accounts/tags_spec.js rename to e2e-tests/cypress/tests/integration/channels/bot_accounts/tags_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/archived_channels_1_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/archived_channels_1_spec.js similarity index 94% rename from e2e/cypress/tests/integration/channels/channel/archived_channels_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/archived_channels_1_spec.js index f6f6a3e186..1880dafb8a 100644 --- a/e2e/cypress/tests/integration/channels/channel/archived_channels_1_spec.js +++ b/e2e-tests/cypress/tests/integration/channels/channel/archived_channels_1_spec.js @@ -97,7 +97,7 @@ describe('Leave an archived channel', () => { // # More channels modal opens cy.get('#moreChannelsModal').should('be.visible').within(() => { // # Click on dropdown - cy.findByText('Channel Type: Public').should('be.visible').click(); + cy.findByText('Show: Public Channels').should('be.visible').click(); // # Click archived channels cy.findByText('Archived Channels').click(); @@ -143,9 +143,9 @@ describe('Leave an archived channel', () => { cy.get('#showMoreChannels').click(); // # More channels modal opens - cy.get('#moreChannelsModal').should('be.visible').within(() => { + cy.get('.more-modal').should('be.visible').within(() => { // # Public channel list opens by default - cy.findByText('Channel Type: Public').should('be.visible').click(); + cy.findByText('Show: Public Channels').should('be.visible').click(); // # Click on archived channels cy.findByText('Archived Channels').click(); @@ -196,9 +196,9 @@ describe('Leave an archived channel', () => { cy.get('#showMoreChannels').click(); // # More channels modal opens - cy.get('#moreChannelsModal').should('be.visible').within(() => { + cy.get('.more-modal').should('be.visible').within(() => { // # Public channels are shown by default - cy.findByText('Channel Type: Public').should('be.visible').click(); + cy.findByText('Show: Public Channels').should('be.visible').click(); // # Go to archived channels cy.findByText('Archived Channels').click(); @@ -250,9 +250,9 @@ describe('Leave an archived channel', () => { cy.get('#showMoreChannels').click(); // # More channels modal opens - cy.get('#moreChannelsModal').should('be.visible').within(() => { + cy.get('.more-modal').should('be.visible').within(() => { // # Show public channels is visible by default - cy.findByText('Channel Type: Public').should('be.visible').click(); + cy.findByText('Show: Public Channels').should('be.visible').click(); // # Go to archived channels cy.findByText('Archived Channels').click(); @@ -286,7 +286,7 @@ describe('Leave an archived channel', () => { // # More channels modal opens and lands on public channels cy.get('#moreChannelsModal').should('be.visible').within(() => { - cy.findByText('Channel Type: Public').should('be.visible').click(); + cy.findByText('Show: Public Channels').should('be.visible').click(); // # Go to archived channels cy.findByText('Archived Channels').click(); diff --git a/e2e/cypress/tests/integration/channels/channel/archived_channels_2_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/archived_channels_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/archived_channels_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/archived_channels_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/channel_info_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/channel_info_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/channel_info_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/channel_info_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/channel_members_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/channel_members_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/channel_members_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/channel_members_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/channel_mention_autocomplete_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/channel_mention_autocomplete_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/channel_mention_autocomplete_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/channel_mention_autocomplete_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/channel_name_tooltips_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/channel_name_tooltips_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/channel_name_tooltips_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/channel_name_tooltips_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/channel_routing_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/channel_routing_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/channel_routing_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/channel_routing_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/channel_settings_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/channel_settings_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/channel_settings_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/channel_settings_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/channel_switcher_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/channel_switcher_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/channel_switcher_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/channel_switcher_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/close_direct_group_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/close_direct_group_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/close_direct_group_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/close_direct_group_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/convert_channel_to_private_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/convert_channel_to_private_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/convert_channel_to_private_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/convert_channel_to_private_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/leave_and_archive_channel_destructive_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel/leave_and_archive_channel_destructive_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/leave_and_archive_channel_destructive_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel/leave_and_archive_channel_destructive_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel/leave_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/leave_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/leave_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/leave_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/more_channels_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/more_channels_spec.js similarity index 95% rename from e2e/cypress/tests/integration/channels/channel/more_channels_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/more_channels_spec.js index 7848ae787c..d83797db07 100644 --- a/e2e/cypress/tests/integration/channels/channel/more_channels_spec.js +++ b/e2e-tests/cypress/tests/integration/channels/channel/more_channels_spec.js @@ -65,7 +65,7 @@ describe('Channels', () => { cy.get('#moreChannelsModal').should('be.visible').within(() => { // * Dropdown should be visible, defaulting to "Public Channels" - cy.get('#channelsMoreDropdown').should('be.visible').and('contain', 'Channel Type: Public').wait(TIMEOUTS.HALF_SEC); + cy.get('#channelsMoreDropdown').should('be.visible').and('contain', 'Show: Public Channels').wait(TIMEOUTS.HALF_SEC); cy.get('#searchChannelsTextbox').should('be.visible').type(testChannel.display_name).wait(TIMEOUTS.HALF_SEC); cy.get('#moreChannelsList').should('be.visible').children().should('have.length', 1).within(() => { @@ -80,8 +80,8 @@ describe('Channels', () => { }); }); - // # Verify that the modal is not closed - cy.get('#moreChannelsModal').should('exist'); + // # Verify that the modal is closed and it's redirected to the selected channel + cy.get('#moreChannelsModal').should('not.exist'); cy.url().should('include', `/${testTeam.name}/channels/${testChannel.name}`); // # Login as channel admin and go directly to the channel @@ -113,7 +113,7 @@ describe('Channels', () => { cy.findByText('Archived Channels').should('be.visible').click(); // * Channel test should be visible as an archived channel in the list - cy.wrap(el).should('contain', 'Channel Type: Archived'); + cy.wrap(el).should('contain', 'Show: Archived Channels'); }); cy.get('#searchChannelsTextbox').should('be.visible').type(testChannel.display_name).wait(TIMEOUTS.HALF_SEC); @@ -196,7 +196,7 @@ describe('Channels', () => { // * Dropdown should be visible, defaulting to "Public Channels" cy.get('#channelsMoreDropdown').should('be.visible').within((el) => { - cy.wrap(el).should('contain', 'Channel Type: Public'); + cy.wrap(el).should('contain', 'Show: Public Channels'); }); // * Users should be able to type and search @@ -207,12 +207,12 @@ describe('Channels', () => { cy.get('#moreChannelsModal').should('be.visible').within(() => { // * Users should be able to switch to "Archived Channels" list - cy.get('#channelsMoreDropdown').should('be.visible').and('contain', 'Channel Type: Public').click().within((el) => { + cy.get('#channelsMoreDropdown').should('be.visible').and('contain', 'Show: Public Channels').click().within((el) => { // # Click on archived channels item cy.findByText('Archived Channels').should('be.visible').click(); // * Modal should show the archived channels list - cy.wrap(el).should('contain', 'Channel Type: Archived'); + cy.wrap(el).should('contain', 'Show: Archived Channels'); }).wait(TIMEOUTS.HALF_SEC); cy.get('#searchChannelsTextbox').clear(); cy.get('#moreChannelsList').should('be.visible').children().should('have.length', 2); @@ -250,7 +250,7 @@ function verifyMoreChannelsModal(isEnabled) { // * Verify that the more channels modal is open and with or without option to view archived channels cy.get('#moreChannelsModal').should('be.visible').within(() => { if (isEnabled) { - cy.get('#channelsMoreDropdown').should('be.visible').and('have.text', 'Channel Type: Public'); + cy.get('#channelsMoreDropdown').should('be.visible').and('have.text', 'Show: Public Channels'); } else { cy.get('#channelsMoreDropdown').should('not.exist'); } diff --git a/e2e/cypress/tests/integration/channels/channel/more_public_channels_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/more_public_channels_spec.js similarity index 85% rename from e2e/cypress/tests/integration/channels/channel/more_public_channels_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/more_public_channels_spec.js index 0d38de9467..5808654971 100644 --- a/e2e/cypress/tests/integration/channels/channel/more_public_channels_spec.js +++ b/e2e-tests/cypress/tests/integration/channels/channel/more_public_channels_spec.js @@ -11,7 +11,8 @@ // Group: @channels @channel function verifyNoChannelToJoinMessage(isVisible) { - cy.findByText('No public channels').should(isVisible ? 'be.visible' : 'not.exist'); + cy.findByText('No more channels to join').should(isVisible ? 'be.visible' : 'not.exist'); + cy.findByText('Click \'Create New Channel\' to make a new one').should(isVisible ? 'be.visible' : 'not.exist'); } describe('more public channels', () => { @@ -52,10 +53,7 @@ describe('more public channels', () => { cy.uiBrowseOrCreateChannel('Browse Channels').click(); // * Assert that the moreChannelsModel is visible - cy.findByRole('dialog', {name: 'Browse Channels'}).should('be.visible').within(() => { - // # Click hide joined checkbox - cy.findByText('Hide Joined').should('be.visible').click(); - + cy.findByRole('dialog', {name: 'More Channels'}).should('be.visible').within(() => { // * Assert that the moreChannelsList is visible and the number of channels is 31 cy.get('#moreChannelsList').should('be.visible').children().should('have.length', 31); @@ -88,9 +86,9 @@ describe('more public channels', () => { cy.uiBrowseOrCreateChannel('Browse Channels').click(); // * Assert the moreChannelsModel is visible - cy.findByRole('dialog', {name: 'Browse Channels'}).should('be.visible').within(() => { - // # Click hide joined checkbox - cy.findByText('Hide Joined').should('be.visible').click(); + cy.findByRole('dialog', {name: 'More Channels'}).should('be.visible').within(() => { + // * Assert the moreChannelsList does have one child + cy.get('#moreChannelsList').should('be.visible').children().should('have.length', 1); // * Assert that the "No more channels to join" message is visible verifyNoChannelToJoinMessage(true); diff --git a/e2e/cypress/tests/integration/channels/channel/new_channel_with_board_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/new_channel_with_board_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/new_channel_with_board_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/new_channel_with_board_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/open_rhs_coming_from_system_console_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel/open_rhs_coming_from_system_console_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/open_rhs_coming_from_system_console_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel/open_rhs_coming_from_system_console_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel/user_to_admin_updates_manage_channel_members_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/user_to_admin_updates_manage_channel_members_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/user_to_admin_updates_manage_channel_members_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/user_to_admin_updates_manage_channel_members_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel/user_to_channel_admin_member_updates_manage_channel_members_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/channel/user_to_channel_admin_member_updates_manage_channel_members_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/channel/user_to_channel_admin_member_updates_manage_channel_members_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/channel/user_to_channel_admin_member_updates_manage_channel_members_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/channel_settings/add_users_to_channel_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_settings/add_users_to_channel_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_settings/add_users_to_channel_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_settings/add_users_to_channel_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_settings/channel_header_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_settings/channel_header_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_settings/channel_header_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_settings/channel_header_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_settings/channel_name_validations_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_settings/channel_name_validations_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_settings/channel_name_validations_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_settings/channel_name_validations_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_settings/more_unreads_position_with_scroll_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_settings/more_unreads_position_with_scroll_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_settings/more_unreads_position_with_scroll_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_settings/more_unreads_position_with_scroll_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/category.d.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/category.d.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/category.d.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/category.d.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/category_collapsing_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/category_collapsing_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/category_collapsing_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/category_collapsing_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/category_muting_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/category_muting_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/category_muting_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/category_muting_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/category_sorting_1_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/category_sorting_1_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/category_sorting_1_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/category_sorting_1_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/category_sorting_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/category_sorting_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/category_sorting_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/category_sorting_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/channel_sidebar_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/channel_sidebar_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/channel_sidebar_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/channel_sidebar_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/custom_categories_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/custom_categories_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/custom_categories_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/custom_categories_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/dm_category_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/dm_category_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/dm_category_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/dm_category_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/dm_gm_behaviour_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/dm_gm_behaviour_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/dm_gm_behaviour_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/dm_gm_behaviour_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/dm_gm_filtering_sorting_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/dm_gm_filtering_sorting_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/dm_gm_filtering_sorting_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/dm_gm_filtering_sorting_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/dm_sidebar_not_remove_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/dm_sidebar_not_remove_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/dm_sidebar_not_remove_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/dm_sidebar_not_remove_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/drag_and_drop_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/drag_and_drop_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/drag_and_drop_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/drag_and_drop_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/group_unreads_separately_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/group_unreads_separately_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/group_unreads_separately_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/group_unreads_separately_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/helpers.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/helpers.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/helpers.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/helpers.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/history_channel_switcher_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/history_channel_switcher_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/history_channel_switcher_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/history_channel_switcher_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/hotkeys_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/hotkeys_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/hotkeys_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/hotkeys_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/new_category_badge_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/new_category_badge_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/new_category_badge_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/new_category_badge_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/new_channel_dropdown_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/new_channel_dropdown_spec.ts similarity index 94% rename from e2e/cypress/tests/integration/channels/channel_sidebar/new_channel_dropdown_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/new_channel_dropdown_spec.ts index b94d16acfa..17114e21aa 100644 --- a/e2e/cypress/tests/integration/channels/channel_sidebar/new_channel_dropdown_spec.ts +++ b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/new_channel_dropdown_spec.ts @@ -68,13 +68,13 @@ describe('Channel sidebar', () => { cy.get('.AddChannelDropdown .MenuItem:contains(Browse Channels) button').should('be.visible').click(); // * Verify that the more channels modal is visible - cy.get('#moreChannelsModal').should('be.visible'); + cy.get('.more-modal').should('be.visible'); // Click the Off-Topic channel - cy.findByText('Off-Topic').should('be.visible').click(); + cy.get('.more-modal button:contains(Off-Topic)').should('be.visible').click(); // Verify that new channel is in the sidebar and is active - cy.get('#moreChannelsModal').should('exist'); + cy.get('.more-modal').should('not.exist'); cy.url().should('include', `/${teamName}/channels/off-topic`); cy.get('#channelHeaderTitle').should('contain', 'Off-Topic'); cy.get('.SidebarChannel.active:contains(Off-Topic)').should('be.visible'); diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/sidebar_category_menu_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/sidebar_category_menu_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/sidebar_category_menu_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/sidebar_category_menu_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/sidebar_channel_menu_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/sidebar_channel_menu_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/sidebar_channel_menu_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/sidebar_channel_menu_spec.ts diff --git a/e2e/cypress/tests/integration/channels/channel_sidebar/unread_filter_spec.ts b/e2e-tests/cypress/tests/integration/channels/channel_sidebar/unread_filter_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/channel_sidebar/unread_filter_spec.ts rename to e2e-tests/cypress/tests/integration/channels/channel_sidebar/unread_filter_spec.ts diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/channel_notifications_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/channel_notifications_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/channel_notifications_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/channel_notifications_spec.js diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/crt_settings_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/crt_settings_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/crt_settings_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/crt_settings_spec.js diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/crt_tour_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/crt_tour_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/crt_tour_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/crt_tour_spec.js diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/files_1_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/files_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/files_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/files_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/files_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/files_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/files_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/files_spec.js diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/following_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/following_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/following_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/following_spec.js diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/global_threads_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/global_threads_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/global_threads_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/global_threads_spec.js diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/last_viewed_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/last_viewed_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/last_viewed_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/last_viewed_spec.js diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/replies_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/replies_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/replies_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/replies_spec.js diff --git a/e2e/cypress/tests/integration/channels/collapsed_reply_threads/unread_spec.js b/e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/collapsed_reply_threads/unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/collapsed_reply_threads/unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/commands/leave_channel_spec.ts b/e2e-tests/cypress/tests/integration/channels/commands/leave_channel_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/commands/leave_channel_spec.ts rename to e2e-tests/cypress/tests/integration/channels/commands/leave_channel_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_1_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_1_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_1_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_1_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_2_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_2_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_2_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_2_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_3_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_3_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_3_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_3_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_4_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_4_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_4_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_4_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_5_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_5_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_5_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_5_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_6_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_6_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_6_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_6_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_1_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_1_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_1_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_1_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_2_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_2_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_2_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_2_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_3_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_3_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_3_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_3_spec.ts diff --git a/e2e/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_4_spec.ts b/e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_4_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_4_spec.ts rename to e2e-tests/cypress/tests/integration/channels/custom_status/custom_status_expiry/custom_status_expiry_4_spec.ts diff --git a/e2e/cypress/tests/integration/channels/emoji/custom_emoji_1_1_spec.ts b/e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_1_1_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/emoji/custom_emoji_1_1_spec.ts rename to e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_1_1_spec.ts diff --git a/e2e/cypress/tests/integration/channels/emoji/custom_emoji_1_spec.ts b/e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_1_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/emoji/custom_emoji_1_spec.ts rename to e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_1_spec.ts diff --git a/e2e/cypress/tests/integration/channels/emoji/custom_emoji_2_1_spec.ts b/e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_2_1_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/emoji/custom_emoji_2_1_spec.ts rename to e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_2_1_spec.ts diff --git a/e2e/cypress/tests/integration/channels/emoji/custom_emoji_2_spec.ts b/e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_2_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/emoji/custom_emoji_2_spec.ts rename to e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_2_spec.ts diff --git a/e2e/cypress/tests/integration/channels/emoji/custom_emoji_3_spec.ts b/e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_3_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/emoji/custom_emoji_3_spec.ts rename to e2e-tests/cypress/tests/integration/channels/emoji/custom_emoji_3_spec.ts diff --git a/e2e/cypress/tests/integration/channels/emoji/helpers.js b/e2e-tests/cypress/tests/integration/channels/emoji/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/emoji/helpers.js rename to e2e-tests/cypress/tests/integration/channels/emoji/helpers.js diff --git a/e2e/cypress/tests/integration/channels/emoji/recently_used_emoji_1_spec.ts b/e2e-tests/cypress/tests/integration/channels/emoji/recently_used_emoji_1_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/emoji/recently_used_emoji_1_spec.ts rename to e2e-tests/cypress/tests/integration/channels/emoji/recently_used_emoji_1_spec.ts diff --git a/e2e/cypress/tests/integration/channels/emoji/recently_used_emoji_2_spec.ts b/e2e-tests/cypress/tests/integration/channels/emoji/recently_used_emoji_2_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/emoji/recently_used_emoji_2_spec.ts rename to e2e-tests/cypress/tests/integration/channels/emoji/recently_used_emoji_2_spec.ts diff --git a/e2e/cypress/tests/integration/channels/emoji/sorted_emojis_spec.ts b/e2e-tests/cypress/tests/integration/channels/emoji/sorted_emojis_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/emoji/sorted_emojis_spec.ts rename to e2e-tests/cypress/tests/integration/channels/emoji/sorted_emojis_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/accessibility/accessibility_input_fields_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_input_fields_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/accessibility/accessibility_input_fields_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_input_fields_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_1_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_spec.js similarity index 91% rename from e2e/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_spec.js index adf5478b55..a068d15f9f 100644 --- a/e2e/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_spec.js +++ b/e2e-tests/cypress/tests/integration/channels/enterprise/accessibility/accessibility_modals_dialogs_spec.js @@ -104,26 +104,30 @@ describe('Verify Accessibility Support in Modals & Dialogs', () => { cy.uiBrowseOrCreateChannel('Browse Channels').click(); // * Verify the accessibility support in More Channels Dialog - cy.findByRole('dialog', {name: 'Browse Channels'}).within(() => { - cy.findByRole('heading', {name: 'Browse Channels'}); + cy.findByRole('dialog', {name: 'More Channels'}).within(() => { + cy.findByRole('heading', {name: 'More Channels'}); // * Verify the accessibility support in search input cy.findByPlaceholderText('Search channels'); - cy.get('#moreChannelsList').should('be.visible').then((el) => { + cy.waitUntil(() => cy.get('#moreChannelsList').then((el) => { return el[0].children.length === 2; - }); + })); - // # Hide already joined channels - cy.findByText('Hide Joined').click(); - - // # Focus on the Create Channel button and TAB three time - cy.get('#createNewChannelButton').focus().tab().tab().tab(); + // # Focus on the Create Channel button and TAB twice + cy.get('#createNewChannel').focus().tab().tab(); // * Verify channel name is highlighted and reader reads the channel name and channel description - cy.get('#moreChannelsList').within(() => { + cy.get('#moreChannelsList').children().eq(0).within(() => { const selectedChannel = getChannelAriaLabel(channel); - cy.findByLabelText(selectedChannel).should('be.visible').should('be.focused'); + cy.findByLabelText(selectedChannel).should('be.focused'); + + // * Press Tab and verify if focus changes to Join button + cy.focused().tab(); + cy.findByText('Join').parent().should('be.focused'); + + // * Verify previous button should no longer be focused + cy.findByLabelText(selectedChannel).should('not.be.focused'); }); // * Press Tab again and verify if focus changes to next row diff --git a/e2e/cypress/tests/integration/channels/enterprise/auth_sso/authentication_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/auth_sso/authentication_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/auth_sso/authentication_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/auth_sso/authentication_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/auth_sso/mfa_authentication_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/auth_sso/mfa_authentication_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/auth_sso/mfa_authentication_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/auth_sso/mfa_authentication_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/bot_accounts/managing_bot_accounts_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/bot_accounts/managing_bot_accounts_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/bot_accounts/managing_bot_accounts_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/bot_accounts/managing_bot_accounts_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/channel/channel_groups_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/channel/channel_groups_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/channel/channel_groups_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/channel/channel_groups_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/cloud/billing/after_subscription_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/after_subscription_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/cloud/billing/after_subscription_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/after_subscription_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/cloud/billing/billing_history_free_trial_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/billing_history_free_trial_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/cloud/billing/billing_history_free_trial_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/billing_history_free_trial_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/cloud/billing/cloud_pricing_modal_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/cloud_pricing_modal_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/cloud/billing/cloud_pricing_modal_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/cloud_pricing_modal_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/cloud/billing/company_information_free_trial_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/company_information_free_trial_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/cloud/billing/company_information_free_trial_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/company_information_free_trial_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/cloud/billing/downgrade_feedback_modal_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/downgrade_feedback_modal_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/cloud/billing/downgrade_feedback_modal_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/downgrade_feedback_modal_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/cloud/billing/notify_admin_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/notify_admin_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/cloud/billing/notify_admin_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/notify_admin_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/cloud/billing/payment_free_trial_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/payment_free_trial_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/cloud/billing/payment_free_trial_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/payment_free_trial_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/cloud/billing/subscriptions_free_trial_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/subscriptions_free_trial_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/cloud/billing/subscriptions_free_trial_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/subscriptions_free_trial_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/cloud/billing/yearly_subscription_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/yearly_subscription_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/cloud/billing/yearly_subscription_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/cloud/billing/yearly_subscription_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/channels_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/channels_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/channels_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/channels_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/channels_with_special_characters_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/channels_with_special_characters_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/channels_with_special_characters_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/channels_with_special_characters_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/helpers/index.js b/e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/helpers/index.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/helpers/index.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/helpers/index.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/renaming_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/renaming_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/renaming_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/renaming_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/renaming_team_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/renaming_team_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/renaming_team_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/renaming_team_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/system_console_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/system_console_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/system_console_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/system_console_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_in_channel_switcher_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_in_channel_switcher_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_in_channel_switcher_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_in_channel_switcher_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_in_message_input_box_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_in_message_input_box_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_in_message_input_box_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_in_message_input_box_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/elasticsearch_autocomplete/users_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/extend_session/email_login_activity_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/email_login_activity_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/extend_session/email_login_activity_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/email_login_activity_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/helpers.js b/e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/helpers.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/helpers.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_email_login_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_email_login_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_email_login_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_email_login_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_ldap_login_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_ldap_login_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_ldap_login_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_ldap_login_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_saml_login_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_saml_login_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_saml_login_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/not_extended_when_disabled/with_saml_login_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/extend_session/session_length_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/session_length_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/extend_session/session_length_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/extend_session/session_length_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_permissions_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_permissions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_permissions_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_permissions_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_posts_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_posts_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_posts_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_posts_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_system_messages_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_system_messages_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_system_messages_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/group_mentions/group_mentions_system_messages_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/group_mentions/helpers.js b/e2e-tests/cypress/tests/integration/channels/enterprise/group_mentions/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/group_mentions/helpers.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/group_mentions/helpers.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_add_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_add_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_add_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_add_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_experience_ui_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_experience_ui_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_experience_ui_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_experience_ui_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_feature_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_feature_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_feature_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_feature_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_ui_not_cloud_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_ui_not_cloud_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_ui_not_cloud_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_ui_not_cloud_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_ui_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_ui_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_ui_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_identification_ui_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_invitation_ui_more_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_invitation_ui_more_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_invitation_ui_more_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_invitation_ui_more_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_invitation_ui_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_invitation_ui_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_invitation_ui_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_invitation_ui_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_popover_ui_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_popover_ui_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_popover_ui_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_popover_ui_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_removal_ui_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_removal_ui_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/guest_removal_ui_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/guest_removal_ui_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/helpers.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/helpers.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/helpers.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/helpers.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/member_invitation_ui_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/member_invitation_ui_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/member_invitation_ui_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/member_invitation_ui_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_guest_access_ui_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_guest_access_ui_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_guest_access_ui_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_guest_access_ui_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_manage_guest_not_cloud_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_manage_guest_not_cloud_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_manage_guest_not_cloud_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_manage_guest_not_cloud_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_manage_guest_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_manage_guest_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_manage_guest_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/guest_accounts/system_console_manage_guest_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/integrations/incoming_webhook_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/integrations/incoming_webhook_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/integrations/incoming_webhook_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/integrations/incoming_webhook_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap/ldap_group_sync_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap/ldap_group_sync_spec.js similarity index 99% rename from e2e/cypress/tests/integration/channels/enterprise/ldap/ldap_group_sync_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap/ldap_group_sync_spec.js index 75264a2aea..c7660753e0 100644 --- a/e2e/cypress/tests/integration/channels/enterprise/ldap/ldap_group_sync_spec.js +++ b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap/ldap_group_sync_spec.js @@ -234,7 +234,7 @@ context('ldap', () => { // * Search private channel name and make sure it isn't there in public channel directory cy.get('#searchChannelsTextbox').type(testChannel.display_name); - cy.get('#moreChannelsList').should('include.text', 'No results for'); + cy.get('#moreChannelsList').should('include.text', 'No more channels to join'); }); it('MM-T2629 - Private to public - More....', () => { @@ -473,7 +473,7 @@ context('ldap', () => { // * Search private channel name and make sure it isn't there in public channel directory cy.get('#searchChannelsTextbox').type(publicChannel.display_name); - cy.get('#moreChannelsList').should('include.text', 'No results for'); + cy.get('#moreChannelsList').should('include.text', 'No more channels to join'); }); }); diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap/ldap_guest_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap/ldap_guest_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/ldap/ldap_guest_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap/ldap_guest_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap/ldap_login_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap/ldap_login_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/ldap/ldap_login_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap/ldap_login_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap/ldap_setting_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap/ldap_setting_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/ldap/ldap_setting_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap/ldap_setting_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap_group/channel_modes_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/channel_modes_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/ldap_group/channel_modes_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/channel_modes_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap_group/group_mentions_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/group_mentions_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/ldap_group/group_mentions_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/group_mentions_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap_group/groups_assign_roles_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/groups_assign_roles_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/ldap_group/groups_assign_roles_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/groups_assign_roles_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap_group/invite_bot_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/invite_bot_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/ldap_group/invite_bot_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/invite_bot_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap_group/search_channels_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/search_channels_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/ldap_group/search_channels_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/search_channels_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/ldap_group/team_and_channel_assign_roles_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/team_and_channel_assign_roles_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/ldap_group/team_and_channel_assign_roles_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/ldap_group/team_and_channel_assign_roles_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/oauth/oauth_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/oauth/oauth_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/oauth/oauth_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/oauth/oauth_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/permissions/team_permissions_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/permissions/team_permissions_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/permissions/team_permissions_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/permissions/team_permissions_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/profile_popover/profile_popover_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/profile_popover/profile_popover_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/profile_popover/profile_popover_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/profile_popover/profile_popover_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/profile_popover/profile_popover_spec_user_a_b_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/profile_popover/profile_popover_spec_user_a_b_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/profile_popover/profile_popover_spec_user_a_b_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/profile_popover/profile_popover_spec_user_a_b_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/saml/okta_login_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/saml/okta_login_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/saml/okta_login_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/saml/okta_login_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/saml/saml_automated_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/saml/saml_automated_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/saml/saml_automated_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/saml/saml_automated_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/saml/saml_guest_member_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/saml/saml_guest_member_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/saml/saml_guest_member_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/saml/saml_guest_member_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/saml/saml_metadata_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/saml/saml_metadata_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/saml/saml_metadata_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/saml/saml_metadata_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/self-hosted/self_hosted_pricing_modal_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/self-hosted/self_hosted_pricing_modal_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/self-hosted/self_hosted_pricing_modal_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/self-hosted/self_hosted_pricing_modal_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/self-hosted/self_hosted_purchase_spec.ts b/e2e-tests/cypress/tests/integration/channels/enterprise/self-hosted/self_hosted_purchase_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/self-hosted/self_hosted_purchase_spec.ts rename to e2e-tests/cypress/tests/integration/channels/enterprise/self-hosted/self_hosted_purchase_spec.ts diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/about/edition_and_license_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/about/edition_and_license_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/about/edition_and_license_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/about/edition_and_license_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/about/starter_edition_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/about/starter_edition_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/about/starter_edition_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/about/starter_edition_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/archived_channels_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/archived_channels_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/archived_channels_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/archived_channels_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/authentication_method_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/authentication_method_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/authentication_method_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/authentication_method_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/channel_members_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_members_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/channel_members_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_members_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/channel_mentions_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/channel_mentions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/channel_mentions_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/channel_mentions_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/constants.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/constants.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/constants.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/constants.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/create_posts_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/create_posts_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/create_posts_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/create_posts_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/helpers.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/helpers.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/helpers.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/higher_scoped_scheme_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/higher_scoped_scheme_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/higher_scoped_scheme_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/higher_scoped_scheme_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/manage_members_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/manage_members_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/manage_members_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/manage_members_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/post_reactions_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/post_reactions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/post_reactions_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/post_reactions_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/system_config_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/system_config_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/system_config_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/channel_moderation/system_config_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/cluster_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/cluster_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/cluster_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/cluster_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/compliance_export_multiple_post_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/compliance_export_multiple_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/compliance_export_multiple_post_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/compliance_export_multiple_post_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/compliance_export_ui_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/compliance_export_ui_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/compliance_export_ui_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/compliance_export_ui_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_2_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_3_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_3_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_3_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_3_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_4_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_4_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_4_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_4_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/data_retention_policies_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/download_bot_compliance_export_file_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/download_bot_compliance_export_file_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/download_bot_compliance_export_file_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/download_bot_compliance_export_file_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/download_compliance_export_file_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/download_compliance_export_file_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/download_compliance_export_file_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/download_compliance_export_file_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/helpers.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/helpers.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/helpers.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/s3_bucket_storage_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/s3_bucket_storage_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/compliance/s3_bucket_storage_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/compliance/s3_bucket_storage_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/edition_and_license_link_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/edition_and_license_link_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/edition_and_license_link_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/edition_and_license_link_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/environment_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/environment_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/environment_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/environment_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/group_configuration_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/group_configuration_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/group_configuration_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/group_configuration_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/helpers.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/helpers.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/helpers.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/limited_console_access_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/limited_console_access_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/limited_console_access_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/limited_console_access_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/limited_console_access_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/limited_console_access_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/limited_console_access_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/limited_console_access_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/main_menu_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/main_menu_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/main_menu_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/main_menu_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/openid/openid_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/openid/openid_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/openid/openid_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/openid/openid_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/reporting/site_statistics_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/reporting/site_statistics_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/reporting/site_statistics_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/reporting/site_statistics_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/search_box_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/search_box_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/search_box_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/search_box_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/settings_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/settings_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/settings_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/settings_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/sidebar_link_navigation_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/sidebar_link_navigation_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/sidebar_link_navigation_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/sidebar_link_navigation_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/sidebar_link_navigation_e20_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/sidebar_link_navigation_e20_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/sidebar_link_navigation_e20_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/sidebar_link_navigation_e20_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/support_packet_generation_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/support_packet_generation_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/support_packet_generation_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/support_packet_generation_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/system_scheme_permission_part2_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/system_scheme_permission_part2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/system_scheme_permission_part2_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/system_scheme_permission_part2_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/system_scheme_permission_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/system_scheme_permission_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/system_scheme_permission_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/system_scheme_permission_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/team_guest_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/team_guest_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/team_guest_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/team_guest_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/team_members_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/team_members_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/team_members_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/team_members_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/team_scheme_permission_part2_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/team_scheme_permission_part2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/team_scheme_permission_part2_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/team_scheme_permission_part2_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/team_scheme_permission_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/team_scheme_permission_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/team_scheme_permission_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/team_scheme_permission_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/system_console/ui_and_api/notifications_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/system_console/ui_and_api/notifications_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/system_console/ui_and_api/notifications_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/system_console/ui_and_api/notifications_spec.js diff --git a/e2e/cypress/tests/integration/channels/enterprise/teams/search_teams_spec.js b/e2e-tests/cypress/tests/integration/channels/enterprise/teams/search_teams_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/enterprise/teams/search_teams_spec.js rename to e2e-tests/cypress/tests/integration/channels/enterprise/teams/search_teams_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/cancel_file_upload_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/cancel_file_upload_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/cancel_file_upload_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/cancel_file_upload_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/channel_files_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/channel_files_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/channel_files_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/channel_files_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/cloud_upload_files_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/cloud_upload_files_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/cloud_upload_files_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/cloud_upload_files_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/disabled_file_upload_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/disabled_file_upload_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/disabled_file_upload_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/disabled_file_upload_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/edit_message_with_attachment_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/edit_message_with_attachment_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/edit_message_with_attachment_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/edit_message_with_attachment_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/file_preview_audio_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/file_preview_audio_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/file_preview_audio_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/file_preview_audio_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/file_preview_generic_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/file_preview_generic_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/file_preview_generic_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/file_preview_generic_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/file_preview_image_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/file_preview_image_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/file_preview_image_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/file_preview_image_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/file_preview_video_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/file_preview_video_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/file_preview_video_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/file_preview_video_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/helpers.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/helpers.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/helpers.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/image_link_preview_1_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/image_link_preview_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/image_link_preview_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/image_link_preview_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/image_link_preview_new_window_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/image_link_preview_new_window_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/image_link_preview_new_window_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/image_link_preview_new_window_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/image_link_preview_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/image_link_preview_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/image_link_preview_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/image_link_preview_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/paste_image_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/paste_image_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/paste_image_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/paste_image_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/upload_files_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/upload_files_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/upload_files_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/upload_files_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/upload_files_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/upload_files_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/upload_files_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/upload_files_spec.js diff --git a/e2e/cypress/tests/integration/channels/files_and_attachments/youtube_video_spec.js b/e2e-tests/cypress/tests/integration/channels/files_and_attachments/youtube_video_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/files_and_attachments/youtube_video_spec.js rename to e2e-tests/cypress/tests/integration/channels/files_and_attachments/youtube_video_spec.js diff --git a/e2e/cypress/tests/integration/channels/insights/last_viewed_spec.js b/e2e-tests/cypress/tests/integration/channels/insights/last_viewed_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/insights/last_viewed_spec.js rename to e2e-tests/cypress/tests/integration/channels/insights/last_viewed_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_1_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_2_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_3_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_3_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_3_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/common_commands_3_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/groupmsg_command_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/groupmsg_command_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/groupmsg_command_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/groupmsg_command_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/helper.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/helper.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/helper.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/helper.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/invalid_commands_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/invalid_commands_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/invalid_commands_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/invalid_commands_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/invite_command_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/invite_command_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/invite_command_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/invite_command_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/invite_people_command_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/invite_people_command_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/invite_people_command_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/invite_people_command_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/user_status_commands_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/user_status_commands_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/user_status_commands_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/user_status_commands_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/builtin_commands/user_status_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/user_status_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/builtin_commands/user_status_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/builtin_commands/user_status_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/custom_slash_commands/custom_slash_commands_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/custom_slash_commands/custom_slash_commands_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/custom_slash_commands/custom_slash_commands_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/custom_slash_commands/custom_slash_commands_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/custom_slash_commands/helpers.js b/e2e-tests/cypress/tests/integration/channels/integrations/custom_slash_commands/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/custom_slash_commands/helpers.js rename to e2e-tests/cypress/tests/integration/channels/integrations/custom_slash_commands/helpers.js diff --git a/e2e/cypress/tests/integration/channels/integrations/custom_slash_commands/slash_commands_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/custom_slash_commands/slash_commands_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/custom_slash_commands/slash_commands_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/custom_slash_commands/slash_commands_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/attachment_does_not_collapse_spec.ts b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/attachment_does_not_collapse_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/attachment_does_not_collapse_spec.ts rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/attachment_does_not_collapse_spec.ts diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/basic_formatting_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/basic_formatting_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/basic_formatting_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/basic_formatting_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/cancel_out_of_edit_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/cancel_out_of_edit_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/cancel_out_of_edit_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/cancel_out_of_edit_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/copy_icon_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/copy_icon_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/copy_icon_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/copy_icon_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/delete_incoming_webhook_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/delete_incoming_webhook_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/delete_incoming_webhook_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/delete_incoming_webhook_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/description_length_check_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/description_length_check_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/description_length_check_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/description_length_check_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/disallow_username_profile_override_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/disallow_username_profile_override_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/disallow_username_profile_override_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/disallow_username_profile_override_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/edit_incoming_webhook_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/edit_incoming_webhook_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/edit_incoming_webhook_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/edit_incoming_webhook_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/helpers.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/helpers.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/helpers.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/inapp_username_profile_override_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/inapp_username_profile_override_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/inapp_username_profile_override_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/inapp_username_profile_override_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/incoming_webhook_creates_dm_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/incoming_webhook_creates_dm_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/incoming_webhook_creates_dm_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/incoming_webhook_creates_dm_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/incoming_webhook_is_image_only_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/incoming_webhook_is_image_only_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/incoming_webhook_is_image_only_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/incoming_webhook_is_image_only_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/integrations_display_on_team_where_created_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/integrations_display_on_team_where_created_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/integrations_display_on_team_where_created_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/integrations_display_on_team_where_created_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/invalid_attachment_URL_webhook_spec.ts b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/invalid_attachment_URL_webhook_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/invalid_attachment_URL_webhook_spec.ts rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/invalid_attachment_URL_webhook_spec.ts diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/long_url_embedded_image_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/long_url_embedded_image_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/long_url_embedded_image_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/long_url_embedded_image_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/setting_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/setting_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/setting_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/setting_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/setup_incoming_webhook_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/setup_incoming_webhook_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/setup_incoming_webhook_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/setup_incoming_webhook_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/slack_formatting_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/slack_formatting_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/slack_formatting_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/slack_formatting_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/incoming_webhook/webhook_posts_when_creator_not_in_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/webhook_posts_when_creator_not_in_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/incoming_webhook/webhook_posts_when_creator_not_in_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/incoming_webhook/webhook_posts_when_creator_not_in_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/integrations_page_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/integrations_page_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/integrations_page_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/integrations_page_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/integrations_search_gives_feedback_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/integrations_search_gives_feedback_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/integrations_search_gives_feedback_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/integrations_search_gives_feedback_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/integrations_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/integrations_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/integrations_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/integrations_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/message_to_channel_via_slash_command_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/message_to_channel_via_slash_command_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/message_to_channel_via_slash_command_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/message_to_channel_via_slash_command_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/delete_outgoing_webhook_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/delete_outgoing_webhook_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/delete_outgoing_webhook_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/delete_outgoing_webhook_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/disable_outgoing_webhook_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/disable_outgoing_webhook_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/disable_outgoing_webhook_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/disable_outgoing_webhook_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/disable_override_username_profile_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/disable_override_username_profile_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/disable_override_username_profile_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/disable_override_username_profile_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/prompt_set_status_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/prompt_set_status_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/prompt_set_status_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/prompt_set_status_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/regenerate_token_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/regenerate_token_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/regenerate_token_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/regenerate_token_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/search_on_outgoing_webhooks_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/search_on_outgoing_webhooks_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/search_on_outgoing_webhooks_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/search_on_outgoing_webhooks_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/token_copy_icon_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/token_copy_icon_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/outgoing_webhook/token_copy_icon_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/outgoing_webhook/token_copy_icon_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/plugin_slash_command_stays_visible_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/plugin_slash_command_stays_visible_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/plugin_slash_command_stays_visible_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/plugin_slash_command_stays_visible_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/poll_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/poll_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/poll_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/poll_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/regen_token_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/regen_token_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/regen_token_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/regen_token_spec.js diff --git a/e2e/cypress/tests/integration/channels/integrations/slash_commands_spec.js b/e2e-tests/cypress/tests/integration/channels/integrations/slash_commands_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/integrations/slash_commands_spec.js rename to e2e-tests/cypress/tests/integration/channels/integrations/slash_commands_spec.js diff --git a/e2e/cypress/tests/integration/channels/interactive_dialog/boolean_spec.js b/e2e-tests/cypress/tests/integration/channels/interactive_dialog/boolean_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/interactive_dialog/boolean_spec.js rename to e2e-tests/cypress/tests/integration/channels/interactive_dialog/boolean_spec.js diff --git a/e2e/cypress/tests/integration/channels/interactive_dialog/demo_boolean_spec.ts b/e2e-tests/cypress/tests/integration/channels/interactive_dialog/demo_boolean_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/interactive_dialog/demo_boolean_spec.ts rename to e2e-tests/cypress/tests/integration/channels/interactive_dialog/demo_boolean_spec.ts diff --git a/e2e/cypress/tests/integration/channels/interactive_dialog/full_dialog_spec.js b/e2e-tests/cypress/tests/integration/channels/interactive_dialog/full_dialog_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/interactive_dialog/full_dialog_spec.js rename to e2e-tests/cypress/tests/integration/channels/interactive_dialog/full_dialog_spec.js diff --git a/e2e/cypress/tests/integration/channels/interactive_dialog/scrollable_spec.js b/e2e-tests/cypress/tests/integration/channels/interactive_dialog/scrollable_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/interactive_dialog/scrollable_spec.js rename to e2e-tests/cypress/tests/integration/channels/interactive_dialog/scrollable_spec.js diff --git a/e2e/cypress/tests/integration/channels/interactive_dialog/simple_dialog_spec.js b/e2e-tests/cypress/tests/integration/channels/interactive_dialog/simple_dialog_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/interactive_dialog/simple_dialog_spec.js rename to e2e-tests/cypress/tests/integration/channels/interactive_dialog/simple_dialog_spec.js diff --git a/e2e/cypress/tests/integration/channels/interactive_menu/basic_options_spec.js b/e2e-tests/cypress/tests/integration/channels/interactive_menu/basic_options_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/interactive_menu/basic_options_spec.js rename to e2e-tests/cypress/tests/integration/channels/interactive_menu/basic_options_spec.js diff --git a/e2e/cypress/tests/integration/channels/interactive_menu/select_with_keys_spec.js b/e2e-tests/cypress/tests/integration/channels/interactive_menu/select_with_keys_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/interactive_menu/select_with_keys_spec.js rename to e2e-tests/cypress/tests/integration/channels/interactive_menu/select_with_keys_spec.js diff --git a/e2e/cypress/tests/integration/channels/interactive_menu/slack_parsing_message_button_spec.js b/e2e-tests/cypress/tests/integration/channels/interactive_menu/slack_parsing_message_button_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/interactive_menu/slack_parsing_message_button_spec.js rename to e2e-tests/cypress/tests/integration/channels/interactive_menu/slack_parsing_message_button_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/alt_option_plus_up_down_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/alt_option_plus_up_down_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/alt_option_plus_up_down_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/alt_option_plus_up_down_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/backspace_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/backspace_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/backspace_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/backspace_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_alt_I_toggles_channel_info_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_alt_I_toggles_channel_info_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_alt_I_toggles_channel_info_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_alt_I_toggles_channel_info_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_at_username_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_at_username_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_at_username_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_at_username_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_channel_switch_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_channel_switch_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_channel_switch_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_channel_switch_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_focuses_message_box_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_focuses_message_box_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_focuses_message_box_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_focuses_message_box_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_open_channel_from_global_threads_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_open_channel_from_global_threads_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_open_channel_from_global_threads_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_open_channel_from_global_threads_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_open_gm_with_mouse_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_open_gm_with_mouse_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_open_gm_with_mouse_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_open_gm_with_mouse_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_unreads_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_unreads_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_unreads_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_unreads_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_user_from_other_team_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_user_from_other_team_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_user_from_other_team_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_k_user_from_other_team_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_l_set_message_focus_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_l_set_message_focus_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_l_set_message_focus_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_l_set_message_focus_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_a_account_settings_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_a_account_settings_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_a_account_settings_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_a_account_settings_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_l_does_not_change_focus_to_msgbox_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_l_does_not_change_focus_to_msgbox_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_l_does_not_change_focus_to_msgbox_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_l_does_not_change_focus_to_msgbox_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_m_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_m_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_m_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_m_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/helpers.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/helpers.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/helpers.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/not_open_emoji_picker_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/not_open_emoji_picker_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/not_open_emoji_picker_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/not_open_emoji_picker_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/react_to_center_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/react_to_center_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/react_to_center_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/react_to_center_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/react_to_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/react_to_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/react_to_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_shift_slash/react_to_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_up_down_in_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_up_down_in_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_up_down_in_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_up_down_in_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_up_down_no_action_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_up_down_no_action_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_up_down_no_action_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/ctrl_cmd_up_down_no_action_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/dot_menu_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/dot_menu_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/dot_menu_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/dot_menu_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/esc_close_modal_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/esc_close_modal_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/esc_close_modal_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/esc_close_modal_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_1_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_2_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_3_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_3_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_3_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/keyboard_shortcuts_3_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/shift_up_focuses_on_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/shift_up_focuses_on_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/shift_up_focuses_on_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/shift_up_focuses_on_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/system_message_not_open_for_edit_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/system_message_not_open_for_edit_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/system_message_not_open_for_edit_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/system_message_not_open_for_edit_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/up_arrow_edit_message_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/up_arrow_edit_message_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/up_arrow_edit_message_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/up_arrow_edit_message_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/keyboard_shortcuts/up_arrow_edit_message_spec.js b/e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/up_arrow_edit_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/keyboard_shortcuts/up_arrow_edit_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/keyboard_shortcuts/up_arrow_edit_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/large_data_sets/unreads_channels_spec.ts b/e2e-tests/cypress/tests/integration/channels/large_data_sets/unreads_channels_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/large_data_sets/unreads_channels_spec.ts rename to e2e-tests/cypress/tests/integration/channels/large_data_sets/unreads_channels_spec.ts diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/archive_channel_mark_as_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/archive_channel_mark_as_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/archive_channel_mark_as_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/archive_channel_mark_as_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/bot_post_mark_as_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/bot_post_mark_as_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/bot_post_mark_as_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/bot_post_mark_as_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/channel_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/channel_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/channel_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/channel_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/helpers.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/helpers.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/helpers.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/leave_channel_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/leave_channel_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/leave_channel_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/leave_channel_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/mark_as_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_as_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/mark_as_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_as_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/mark_as_unread_using_shortcuts_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_as_unread_using_shortcuts_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/mark_as_unread_using_shortcuts_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_as_unread_using_shortcuts_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/mark_dm_post_as_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_dm_post_as_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/mark_dm_post_as_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_dm_post_as_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/mark_gm_as_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_gm_as_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/mark_gm_as_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_gm_as_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/mark_mentions_as_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_mentions_as_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/mark_mentions_as_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/mark_mentions_as_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/toast_appears_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/toast_appears_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/toast_appears_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/toast_appears_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/mark_as_unread/unread_toast_count_spec.js b/e2e-tests/cypress/tests/integration/channels/mark_as_unread/unread_toast_count_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/mark_as_unread/unread_toast_count_spec.js rename to e2e-tests/cypress/tests/integration/channels/mark_as_unread/unread_toast_count_spec.js diff --git a/e2e/cypress/tests/integration/channels/markdown/markdown_image_spec.js b/e2e-tests/cypress/tests/integration/channels/markdown/markdown_image_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/markdown/markdown_image_spec.js rename to e2e-tests/cypress/tests/integration/channels/markdown/markdown_image_spec.js diff --git a/e2e/cypress/tests/integration/channels/markdown/markdown_text_spec.js b/e2e-tests/cypress/tests/integration/channels/markdown/markdown_text_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/markdown/markdown_text_spec.js rename to e2e-tests/cypress/tests/integration/channels/markdown/markdown_text_spec.js diff --git a/e2e/cypress/tests/integration/channels/menus/main_menu_spec.js b/e2e-tests/cypress/tests/integration/channels/menus/main_menu_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/menus/main_menu_spec.js rename to e2e-tests/cypress/tests/integration/channels/menus/main_menu_spec.js diff --git a/e2e/cypress/tests/integration/channels/menus/status_dropdown_spec.js b/e2e-tests/cypress/tests/integration/channels/menus/status_dropdown_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/menus/status_dropdown_spec.js rename to e2e-tests/cypress/tests/integration/channels/menus/status_dropdown_spec.js diff --git a/e2e/cypress/tests/integration/channels/message_forwarding/forward_message_from_dm_spec.js b/e2e-tests/cypress/tests/integration/channels/message_forwarding/forward_message_from_dm_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/message_forwarding/forward_message_from_dm_spec.js rename to e2e-tests/cypress/tests/integration/channels/message_forwarding/forward_message_from_dm_spec.js diff --git a/e2e/cypress/tests/integration/channels/message_forwarding/forward_message_from_gm_spec.js b/e2e-tests/cypress/tests/integration/channels/message_forwarding/forward_message_from_gm_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/message_forwarding/forward_message_from_gm_spec.js rename to e2e-tests/cypress/tests/integration/channels/message_forwarding/forward_message_from_gm_spec.js diff --git a/e2e/cypress/tests/integration/channels/message_forwarding/forward_message_from_private_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/message_forwarding/forward_message_from_private_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/message_forwarding/forward_message_from_private_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/message_forwarding/forward_message_from_private_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/message_forwarding/forward_message_from_public_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/message_forwarding/forward_message_from_public_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/message_forwarding/forward_message_from_public_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/message_forwarding/forward_message_from_public_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/at_mentions_user_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/at_mentions_user_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/at_mentions_user_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/at_mentions_user_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/autocomplete_shown_each_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/autocomplete_shown_each_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/autocomplete_shown_each_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/autocomplete_shown_each_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/autocomplete_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/autocomplete_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/autocomplete_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/autocomplete_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/autocomplete_with_space_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/autocomplete_with_space_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/autocomplete_with_space_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/autocomplete_with_space_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/center_channel_rhs_overlap_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/center_channel_rhs_overlap_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/center_channel_rhs_overlap_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/center_channel_rhs_overlap_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/channel_and_posts_links_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/channel_and_posts_links_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/channel_and_posts_links_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/channel_and_posts_links_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/channel_menu_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/channel_menu_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/channel_menu_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/channel_menu_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/channel_read_after_permalink_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/channel_read_after_permalink_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/channel_read_after_permalink_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/channel_read_after_permalink_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/channel_users_interactions_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/channel_users_interactions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/channel_users_interactions_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/channel_users_interactions_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/collapse_link_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/collapse_link_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/collapse_link_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/collapse_link_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/collapsed_message_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/collapsed_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/collapsed_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/collapsed_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/copy_post_text_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/copy_post_text_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/copy_post_text_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/copy_post_text_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/ctrl_cmd_k_find_gm_by_matching_name_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/ctrl_cmd_k_find_gm_by_matching_name_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/ctrl_cmd_k_find_gm_by_matching_name_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/ctrl_cmd_k_find_gm_by_matching_name_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/ctrl_cmd_k_open_dm_with_mouse_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/ctrl_cmd_k_open_dm_with_mouse_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/ctrl_cmd_k_open_dm_with_mouse_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/ctrl_cmd_k_open_dm_with_mouse_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/date_separator_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/date_separator_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/date_separator_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/date_separator_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/direct_message_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/direct_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/direct_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/direct_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/dm_list_of_users_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/dm_list_of_users_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/dm_list_of_users_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/dm_list_of_users_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/draft_with_only_2_byte_characters_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/draft_with_only_2_byte_characters_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/draft_with_only_2_byte_characters_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/draft_with_only_2_byte_characters_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/edit_message_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/edit_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/edit_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/edit_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_followed_by_punctuation_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_followed_by_punctuation_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_followed_by_punctuation_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_followed_by_punctuation_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_gender_spec.ts b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_gender_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_gender_spec.ts rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_gender_spec.ts diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_insert_position_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_insert_position_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_insert_position_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_insert_position_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_keyboard_entry_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_keyboard_entry_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_keyboard_entry_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_keyboard_entry_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_no_overlap_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_no_overlap_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_no_overlap_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_no_overlap_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_picker_keyboard_usability_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_picker_keyboard_usability_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_picker_keyboard_usability_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_picker_keyboard_usability_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_recently_used_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_recently_used_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_recently_used_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_recently_used_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_size_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_size_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_size_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_size_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_skin_tone_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_skin_tone_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_skin_tone_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_skin_tone_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/emoji_to_markdown_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/emoji_to_markdown_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/emoji_to_markdown_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/emoji_to_markdown_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/file_upload_in_center_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/file_upload_in_center_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/file_upload_in_center_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/file_upload_in_center_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/focus_move_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/focus_move_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/focus_move_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/focus_move_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/group_message_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/group_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/group_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/group_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/header_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/header_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/header_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/header_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/header_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/header_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/header_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/header_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/helpers.js b/e2e-tests/cypress/tests/integration/channels/messaging/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/helpers.js rename to e2e-tests/cypress/tests/integration/channels/messaging/helpers.js diff --git a/e2e/cypress/tests/integration/channels/messaging/image_attachment_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/image_attachment_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/image_attachment_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/image_attachment_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/inline_images_open_preview_window_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/inline_images_open_preview_window_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/inline_images_open_preview_window_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/inline_images_open_preview_window_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/inline_markdown_image_link_open_link_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/inline_markdown_image_link_open_link_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/inline_markdown_image_link_open_link_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/inline_markdown_image_link_open_link_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/input_box_expands_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/input_box_expands_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/input_box_expands_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/input_box_expands_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/input_box_expands_with_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/input_box_expands_with_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/input_box_expands_with_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/input_box_expands_with_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/invalid_emojis_as_text_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/invalid_emojis_as_text_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/invalid_emojis_as_text_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/invalid_emojis_as_text_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/local_date_time_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/local_date_time_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/local_date_time_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/local_date_time_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/long_draft_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/long_draft_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/long_draft_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/long_draft_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/long_post_attachments_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/long_post_attachments_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/long_post_attachments_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/long_post_attachments_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/markdown_preview_inline_image_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/markdown_preview_inline_image_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/markdown_preview_inline_image_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/markdown_preview_inline_image_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/markdown_quotation_paragraphs_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/markdown_quotation_paragraphs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/markdown_quotation_paragraphs_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/markdown_quotation_paragraphs_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/markdown_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/markdown_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/markdown_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/markdown_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/mention_autocomplete_overlap_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/mention_autocomplete_overlap_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/mention_autocomplete_overlap_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/mention_autocomplete_overlap_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_auto_response_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_auto_response_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_auto_response_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_auto_response_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_bullets_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_bullets_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_bullets_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_bullets_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_by_aeroplane_icon_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_by_aeroplane_icon_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_by_aeroplane_icon_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_by_aeroplane_icon_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_channel_draw_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_channel_draw_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_channel_draw_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_channel_draw_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_channel_reference_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_channel_reference_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_channel_reference_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_channel_reference_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_deleted_on_reply_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_deleted_on_reply_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_deleted_on_reply_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_deleted_on_reply_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_deletion_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_deletion_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_deletion_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_deletion_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_draft_persistance_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_draft_persistance_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_draft_persistance_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_draft_persistance_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_draft_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_draft_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_draft_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_draft_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_draft_then_switch_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_draft_then_switch_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_draft_then_switch_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_draft_then_switch_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_draft_with_attachment_then_switch_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_draft_with_attachment_then_switch_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_draft_with_attachment_then_switch_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_draft_with_attachment_then_switch_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_edit_post_clear_text_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_edit_post_clear_text_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_edit_post_clear_text_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_edit_post_clear_text_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_edit_post_history_spec.ts b/e2e-tests/cypress/tests/integration/channels/messaging/message_edit_post_history_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_edit_post_history_spec.ts rename to e2e-tests/cypress/tests/integration/channels/messaging/message_edit_post_history_spec.ts diff --git a/e2e/cypress/tests/integration/channels/messaging/message_edit_post_with_attachment_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_edit_post_with_attachment_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_edit_post_with_attachment_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_edit_post_with_attachment_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_emoji_jumbo_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_emoji_jumbo_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_emoji_jumbo_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_emoji_jumbo_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_ephemeral_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_ephemeral_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_ephemeral_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_ephemeral_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_in_another_language_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_in_another_language_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_in_another_language_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_in_another_language_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_parse_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_parse_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_parse_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_parse_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_permalink_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_permalink_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_permalink_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_permalink_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_pinning_unpinning_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_pinning_unpinning_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_pinning_unpinning_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_pinning_unpinning_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_reaction_gm_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_reaction_gm_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_reaction_gm_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_reaction_gm_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_reaction_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_reaction_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_reaction_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_reaction_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_reply_bot_post_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_reply_bot_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_reply_bot_post_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_reply_bot_post_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_reply_gm_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_reply_gm_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_reply_gm_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_reply_gm_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_reply_input_box_expand_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_reply_input_box_expand_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_reply_input_box_expand_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_reply_input_box_expand_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_reply_part2_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_reply_part2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_reply_part2_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_reply_part2_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_reply_scrollable_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_reply_scrollable_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_reply_scrollable_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_reply_scrollable_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_reply_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_reply_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_reply_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_reply_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_reply_too_long_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_reply_too_long_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_reply_too_long_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_reply_too_long_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_shortlinking_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_shortlinking_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_shortlinking_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_shortlinking_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/message_with_gif_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/message_with_gif_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/message_with_gif_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/message_with_gif_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/mobile_message_deletion_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/mobile_message_deletion_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/mobile_message_deletion_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/mobile_message_deletion_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/mobile_profile_popover_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/mobile_profile_popover_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/mobile_profile_popover_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/mobile_profile_popover_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/no_matches_for_autocomplete_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/no_matches_for_autocomplete_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/no_matches_for_autocomplete_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/no_matches_for_autocomplete_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/permalink_click_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/permalink_click_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/permalink_click_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/permalink_click_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/permalink_loading_indicator_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/permalink_loading_indicator_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/permalink_loading_indicator_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/permalink_loading_indicator_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/permalink_message_edit_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/permalink_message_edit_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/permalink_message_edit_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/permalink_message_edit_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/pinned_parent_post_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/pinned_parent_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/pinned_parent_post_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/pinned_parent_post_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/pinned_posts_1_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/pinned_posts_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/pinned_posts_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/pinned_posts_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/pinned_posts_2_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/pinned_posts_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/pinned_posts_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/pinned_posts_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/post_header_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/post_header_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/post_header_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/post_header_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/post_html_table_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/post_html_table_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/post_html_table_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/post_html_table_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/post_options_menu_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/post_options_menu_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/post_options_menu_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/post_options_menu_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/post_pre_header_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/post_pre_header_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/post_pre_header_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/post_pre_header_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/post_textbox_height_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/post_textbox_height_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/post_textbox_height_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/post_textbox_height_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/private_channel_open_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/private_channel_open_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/private_channel_open_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/private_channel_open_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/quick_send_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/quick_send_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/quick_send_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/quick_send_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/quote_notation_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/quote_notation_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/quote_notation_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/quote_notation_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/reactions_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/reactions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/reactions_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/reactions_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/receive_message_on_socket_reconnect_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/receive_message_on_socket_reconnect_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/receive_message_on_socket_reconnect_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/receive_message_on_socket_reconnect_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/remove_gif_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/remove_gif_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/remove_gif_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/remove_gif_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/remove_last_post_in_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/remove_last_post_in_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/remove_last_post_in_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/remove_last_post_in_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/save_post_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/save_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/save_post_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/save_post_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/scroll_channel_messages_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/scroll_channel_messages_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/scroll_channel_messages_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/scroll_channel_messages_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/send_message_via_profile_popover_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/send_message_via_profile_popover_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/send_message_via_profile_popover_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/send_message_via_profile_popover_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/single_image_thumbnail_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/single_image_thumbnail_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/single_image_thumbnail_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/single_image_thumbnail_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/strikethrough_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/strikethrough_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/strikethrough_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/strikethrough_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/system_message_limited_options_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/system_message_limited_options_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/system_message_limited_options_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/system_message_limited_options_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/system_message_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/system_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/system_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/system_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/thread_appears_and_scrollable_in_the_rhs_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/thread_appears_and_scrollable_in_the_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/thread_appears_and_scrollable_in_the_rhs_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/thread_appears_and_scrollable_in_the_rhs_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/tooltip_visual_verification_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/tooltip_visual_verification_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/tooltip_visual_verification_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/tooltip_visual_verification_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/tooltips_on_top_nav_channel_icons_posts_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/tooltips_on_top_nav_channel_icons_posts_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/tooltips_on_top_nav_channel_icons_posts_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/tooltips_on_top_nav_channel_icons_posts_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/typing_on_middle_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/typing_on_middle_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/typing_on_middle_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/typing_on_middle_spec.js diff --git a/e2e/cypress/tests/integration/channels/messaging/typing_should_show_up_when_editing_spec.js b/e2e-tests/cypress/tests/integration/channels/messaging/typing_should_show_up_when_editing_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/messaging/typing_should_show_up_when_editing_spec.js rename to e2e-tests/cypress/tests/integration/channels/messaging/typing_should_show_up_when_editing_spec.js diff --git a/e2e/cypress/tests/integration/channels/modals/quick_switcher_spec.js b/e2e-tests/cypress/tests/integration/channels/modals/quick_switcher_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/modals/quick_switcher_spec.js rename to e2e-tests/cypress/tests/integration/channels/modals/quick_switcher_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/channel_user_count_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/channel_user_count_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/channel_user_count_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/channel_user_count_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/check_user_status_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/check_user_status_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/check_user_status_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/check_user_status_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/close_current_dm_redirects_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/close_current_dm_redirects_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/close_current_dm_redirects_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/close_current_dm_redirects_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/close_gm_via_menu_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/close_gm_via_menu_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/close_gm_via_menu_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/close_gm_via_menu_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/dm_more_searching_from_page_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/dm_more_searching_from_page_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/dm_more_searching_from_page_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/dm_more_searching_from_page_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/dm_more_show_user_count_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/dm_more_show_user_count_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/dm_more_show_user_count_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/dm_more_show_user_count_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/existing_channel_name_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/existing_channel_name_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/existing_channel_name_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/existing_channel_name_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/favorite_and_close_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/favorite_and_close_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/favorite_and_close_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/favorite_and_close_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/gm_add_user_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/gm_add_user_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/gm_add_user_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/gm_add_user_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/gm_header_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/gm_header_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/gm_header_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/gm_header_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/join_open_team_from_dm_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/join_open_team_from_dm_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/join_open_team_from_dm_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/join_open_team_from_dm_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/max_gm_members_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/max_gm_members_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/max_gm_members_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/max_gm_members_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/multi_team_join_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/multi_team_join_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/multi_team_join_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/multi_team_join_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/multi_team_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/multi_team_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/multi_team_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/multi_team_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/send_dm_user_no_team_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/send_dm_user_no_team_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/send_dm_user_no_team_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/send_dm_user_no_team_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/system_message_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/system_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/system_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/system_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/multi_team_and_dm/town_square_not_marked_as_unread_spec.js b/e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/town_square_not_marked_as_unread_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/multi_team_and_dm/town_square_not_marked_as_unread_spec.js rename to e2e-tests/cypress/tests/integration/channels/multi_team_and_dm/town_square_not_marked_as_unread_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/at_icon_still_shows_mentions_list_with_deactivated_triggers_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/at_icon_still_shows_mentions_list_with_deactivated_triggers_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/at_icon_still_shows_mentions_list_with_deactivated_triggers_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/at_icon_still_shows_mentions_list_with_deactivated_triggers_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/at_mentions_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/at_mentions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/at_mentions_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/at_mentions_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/browser_tab_notification_1_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/browser_tab_notification_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/browser_tab_notification_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/browser_tab_notification_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/browser_tab_notification_2_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/browser_tab_notification_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/browser_tab_notification_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/browser_tab_notification_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/channel_links_show_as_links_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/channel_links_show_as_links_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/channel_links_show_as_links_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/channel_links_show_as_links_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/deselect_username_mention_trigger_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/deselect_username_mention_trigger_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/deselect_username_mention_trigger_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/deselect_username_mention_trigger_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/desktop_notifications_1_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/desktop_notifications_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/desktop_notifications_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/desktop_notifications_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/desktop_notifications_2_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/desktop_notifications_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/desktop_notifications_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/desktop_notifications_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/desktop_notifications_3_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/desktop_notifications_3_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/desktop_notifications_3_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/desktop_notifications_3_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/direct_messages_do_not_add_indicator_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/direct_messages_do_not_add_indicator_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/direct_messages_do_not_add_indicator_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/direct_messages_do_not_add_indicator_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/helper.js b/e2e-tests/cypress/tests/integration/channels/notifications/helper.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/helper.js rename to e2e-tests/cypress/tests/integration/channels/notifications/helper.js diff --git a/e2e/cypress/tests/integration/channels/notifications/ignore_channel_mentions_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/ignore_channel_mentions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/ignore_channel_mentions_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/ignore_channel_mentions_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/mention_email_notification_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/mention_email_notification_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/mention_email_notification_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/mention_email_notification_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/message_bar_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/message_bar_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/message_bar_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/message_bar_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/message_posted_while_scrolled_up_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/message_posted_while_scrolled_up_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/message_posted_while_scrolled_up_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/message_posted_while_scrolled_up_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/notification_preferences_do_not_save_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/notification_preferences_do_not_save_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/notification_preferences_do_not_save_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/notification_preferences_do_not_save_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/own_user_posts_reply_while_scrolled_up_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/own_user_posts_reply_while_scrolled_up_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/own_user_posts_reply_while_scrolled_up_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/own_user_posts_reply_while_scrolled_up_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/reply_notifications_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/reply_notifications_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/reply_notifications_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/reply_notifications_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/unread_on_public_channel_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/unread_on_public_channel_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/unread_on_public_channel_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/unread_on_public_channel_spec.js diff --git a/e2e/cypress/tests/integration/channels/notifications/users_with_same_firstname_channel_mentions_spec.js b/e2e-tests/cypress/tests/integration/channels/notifications/users_with_same_firstname_channel_mentions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/notifications/users_with_same_firstname_channel_mentions_spec.js rename to e2e-tests/cypress/tests/integration/channels/notifications/users_with_same_firstname_channel_mentions_spec.js diff --git a/e2e/cypress/tests/integration/channels/onboarding/existing_email_adress_spec.js b/e2e-tests/cypress/tests/integration/channels/onboarding/existing_email_adress_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/onboarding/existing_email_adress_spec.js rename to e2e-tests/cypress/tests/integration/channels/onboarding/existing_email_adress_spec.js diff --git a/e2e/cypress/tests/integration/channels/onboarding/invalidate_pending_email_invitations_spec.js b/e2e-tests/cypress/tests/integration/channels/onboarding/invalidate_pending_email_invitations_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/onboarding/invalidate_pending_email_invitations_spec.js rename to e2e-tests/cypress/tests/integration/channels/onboarding/invalidate_pending_email_invitations_spec.js diff --git a/e2e/cypress/tests/integration/channels/onboarding/login_page_link_account_creation_spec.js b/e2e-tests/cypress/tests/integration/channels/onboarding/login_page_link_account_creation_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/onboarding/login_page_link_account_creation_spec.js rename to e2e-tests/cypress/tests/integration/channels/onboarding/login_page_link_account_creation_spec.js diff --git a/e2e/cypress/tests/integration/channels/onboarding/use_team_invite_link_to_sign_up_spec.js b/e2e-tests/cypress/tests/integration/channels/onboarding/use_team_invite_link_to_sign_up_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/onboarding/use_team_invite_link_to_sign_up_spec.js rename to e2e-tests/cypress/tests/integration/channels/onboarding/use_team_invite_link_to_sign_up_spec.js diff --git a/e2e/cypress/tests/integration/channels/performance/channel_switch_spec.js b/e2e-tests/cypress/tests/integration/channels/performance/channel_switch_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/performance/channel_switch_spec.js rename to e2e-tests/cypress/tests/integration/channels/performance/channel_switch_spec.js diff --git a/e2e/cypress/tests/integration/channels/performance/team_switch_spec.js b/e2e-tests/cypress/tests/integration/channels/performance/team_switch_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/performance/team_switch_spec.js rename to e2e-tests/cypress/tests/integration/channels/performance/team_switch_spec.js diff --git a/e2e/cypress/tests/integration/channels/performance/utils.js b/e2e-tests/cypress/tests/integration/channels/performance/utils.js similarity index 100% rename from e2e/cypress/tests/integration/channels/performance/utils.js rename to e2e-tests/cypress/tests/integration/channels/performance/utils.js diff --git a/e2e/cypress/tests/integration/channels/plugins/demo_plugin/webhook_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/demo_plugin/webhook_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/demo_plugin/webhook_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/demo_plugin/webhook_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/helpers.js b/e2e-tests/cypress/tests/integration/channels/plugins/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/helpers.js rename to e2e-tests/cypress/tests/integration/channels/plugins/helpers.js diff --git a/e2e/cypress/tests/integration/channels/plugins/link_tooltip_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/link_tooltip_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/link_tooltip_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/link_tooltip_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/marketplace/disabled_remote_marketplace_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/marketplace/disabled_remote_marketplace_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/marketplace/disabled_remote_marketplace_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/marketplace/disabled_remote_marketplace_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/marketplace/helpers.js b/e2e-tests/cypress/tests/integration/channels/plugins/marketplace/helpers.js similarity index 76% rename from e2e/cypress/tests/integration/channels/plugins/marketplace/helpers.js rename to e2e-tests/cypress/tests/integration/channels/plugins/marketplace/helpers.js index 1820015814..b1ce96d0a5 100644 --- a/e2e/cypress/tests/integration/channels/plugins/marketplace/helpers.js +++ b/e2e-tests/cypress/tests/integration/channels/plugins/marketplace/helpers.js @@ -5,10 +5,10 @@ export function verifyPluginMarketplaceVisibility(shouldBeVisible) { cy.uiOpenProductMenu().within(() => { if (shouldBeVisible) { // * Verify Marketplace button should exist - cy.findByText('Marketplace').should('exist'); + cy.findByText('App Marketplace').should('exist'); } else { // * Verify Marketplace button should not exist - cy.findByText('Marketplace').should('not.exist'); + cy.findByText('App Marketplace').should('not.exist'); } }); } diff --git a/e2e/cypress/tests/integration/channels/plugins/marketplace/invalid_marketplace_url_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/marketplace/invalid_marketplace_url_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/marketplace/invalid_marketplace_url_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/marketplace/invalid_marketplace_url_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/marketplace/not_render_in_main_menu_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/marketplace/not_render_in_main_menu_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/marketplace/not_render_in_main_menu_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/marketplace/not_render_in_main_menu_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/marketplace/render_in_main_menu_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/marketplace/render_in_main_menu_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/marketplace/render_in_main_menu_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/marketplace/render_in_main_menu_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/marketplace/ui_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/marketplace/ui_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/marketplace/ui_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/marketplace/ui_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/plugin_buttons_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/plugin_buttons_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/plugin_buttons_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/plugin_buttons_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/plugin_install_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/plugin_install_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/plugin_install_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/plugin_install_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/plugin_startup_fail_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/plugin_startup_fail_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/plugin_startup_fail_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/plugin_startup_fail_spec.js diff --git a/e2e/cypress/tests/integration/channels/plugins/upgrade_spec.js b/e2e-tests/cypress/tests/integration/channels/plugins/upgrade_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/plugins/upgrade_spec.js rename to e2e-tests/cypress/tests/integration/channels/plugins/upgrade_spec.js diff --git a/e2e/cypress/tests/integration/channels/profile_settings/profile_settings_spec.js b/e2e-tests/cypress/tests/integration/channels/profile_settings/profile_settings_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/profile_settings/profile_settings_spec.js rename to e2e-tests/cypress/tests/integration/channels/profile_settings/profile_settings_spec.js diff --git a/e2e/cypress/tests/integration/channels/scroll/channel_scroll_spec.js b/e2e-tests/cypress/tests/integration/channels/scroll/channel_scroll_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/scroll/channel_scroll_spec.js rename to e2e-tests/cypress/tests/integration/channels/scroll/channel_scroll_spec.js diff --git a/e2e/cypress/tests/integration/channels/scroll/default_images_collapsed_spec.js b/e2e-tests/cypress/tests/integration/channels/scroll/default_images_collapsed_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/scroll/default_images_collapsed_spec.js rename to e2e-tests/cypress/tests/integration/channels/scroll/default_images_collapsed_spec.js diff --git a/e2e/cypress/tests/integration/channels/scroll/deleting_image_scroll_spec.js b/e2e-tests/cypress/tests/integration/channels/scroll/deleting_image_scroll_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/scroll/deleting_image_scroll_spec.js rename to e2e-tests/cypress/tests/integration/channels/scroll/deleting_image_scroll_spec.js diff --git a/e2e/cypress/tests/integration/channels/scroll/deleting_scroll_spec.js b/e2e-tests/cypress/tests/integration/channels/scroll/deleting_scroll_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/scroll/deleting_scroll_spec.js rename to e2e-tests/cypress/tests/integration/channels/scroll/deleting_scroll_spec.js diff --git a/e2e/cypress/tests/integration/channels/scroll/editing_scroll_spec.js b/e2e-tests/cypress/tests/integration/channels/scroll/editing_scroll_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/scroll/editing_scroll_spec.js rename to e2e-tests/cypress/tests/integration/channels/scroll/editing_scroll_spec.js diff --git a/e2e/cypress/tests/integration/channels/scroll/fixed_width_spec.js b/e2e-tests/cypress/tests/integration/channels/scroll/fixed_width_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/scroll/fixed_width_spec.js rename to e2e-tests/cypress/tests/integration/channels/scroll/fixed_width_spec.js diff --git a/e2e/cypress/tests/integration/channels/scroll/helpers.js b/e2e-tests/cypress/tests/integration/channels/scroll/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/scroll/helpers.js rename to e2e-tests/cypress/tests/integration/channels/scroll/helpers.js diff --git a/e2e/cypress/tests/integration/channels/scroll/image_aspect_ratio_spec.js b/e2e-tests/cypress/tests/integration/channels/scroll/image_aspect_ratio_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/scroll/image_aspect_ratio_spec.js rename to e2e-tests/cypress/tests/integration/channels/scroll/image_aspect_ratio_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/clear_input_spec.js b/e2e-tests/cypress/tests/integration/channels/search/clear_input_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/clear_input_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/clear_input_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/cleared_search_term_spec.js b/e2e-tests/cypress/tests/integration/channels/search/cleared_search_term_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/cleared_search_term_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/cleared_search_term_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/mobile_search_spec.js b/e2e-tests/cypress/tests/integration/channels/search/mobile_search_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/mobile_search_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/mobile_search_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/post_search_display_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/search/post_search_display_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/post_search_display_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/post_search_display_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/post_search_display_spec.js b/e2e-tests/cypress/tests/integration/channels/search/post_search_display_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/post_search_display_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/post_search_display_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/results_post_comment_spec.js b/e2e-tests/cypress/tests/integration/channels/search/results_post_comment_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/results_post_comment_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/results_post_comment_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/results_post_spec.js b/e2e-tests/cypress/tests/integration/channels/search/results_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/results_post_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/results_post_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/search_bar_popup_focus_spec.js b/e2e-tests/cypress/tests/integration/channels/search/search_bar_popup_focus_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/search_bar_popup_focus_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/search_bar_popup_focus_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/search_group_message_spec.js b/e2e-tests/cypress/tests/integration/channels/search/search_group_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/search_group_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/search_group_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/search_user_file_spec.js b/e2e-tests/cypress/tests/integration/channels/search/search_user_file_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/search_user_file_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/search_user_file_spec.js diff --git a/e2e/cypress/tests/integration/channels/search/search_user_post_spec.js b/e2e-tests/cypress/tests/integration/channels/search/search_user_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search/search_user_post_spec.js rename to e2e-tests/cypress/tests/integration/channels/search/search_user_post_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_autocomplete/channels_spec.js b/e2e-tests/cypress/tests/integration/channels/search_autocomplete/channels_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_autocomplete/channels_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_autocomplete/channels_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_autocomplete/renaming_spec.js b/e2e-tests/cypress/tests/integration/channels/search_autocomplete/renaming_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_autocomplete/renaming_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_autocomplete/renaming_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_autocomplete/scroll_spec.js b/e2e-tests/cypress/tests/integration/channels/search_autocomplete/scroll_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_autocomplete/scroll_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_autocomplete/scroll_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/after_spec.js b/e2e-tests/cypress/tests/integration/channels/search_filter/after_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/after_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/after_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/before_spec.js b/e2e-tests/cypress/tests/integration/channels/search_filter/before_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/before_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/before_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/edit_spec.js b/e2e-tests/cypress/tests/integration/channels/search_filter/edit_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/edit_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/edit_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/future_date_spec.js b/e2e-tests/cypress/tests/integration/channels/search_filter/future_date_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/future_date_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/future_date_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/helpers.js b/e2e-tests/cypress/tests/integration/channels/search_filter/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/helpers.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/helpers.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/input_spec.js b/e2e-tests/cypress/tests/integration/channels/search_filter/input_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/input_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/input_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/invalid_spec.js b/e2e-tests/cypress/tests/integration/channels/search_filter/invalid_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/invalid_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/invalid_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/mixed_spec.js b/e2e-tests/cypress/tests/integration/channels/search_filter/mixed_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/mixed_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/mixed_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/negative_spec.js b/e2e-tests/cypress/tests/integration/channels/search_filter/negative_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/negative_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/negative_spec.js diff --git a/e2e/cypress/tests/integration/channels/search_filter/on_spec.js b/e2e-tests/cypress/tests/integration/channels/search_filter/on_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/search_filter/on_spec.js rename to e2e-tests/cypress/tests/integration/channels/search_filter/on_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/channel_display_mode_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/channel_display_mode_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/channel_display_mode_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/channel_display_mode_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/clock_display_mode_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/clock_display_mode_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/clock_display_mode_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/clock_display_mode_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/message_display_mode_colorize_username_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/message_display_mode_colorize_username_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/message_display_mode_colorize_username_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/message_display_mode_colorize_username_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/message_display_mode_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/message_display_mode_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/message_display_mode_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/message_display_mode_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/theme/code_theme_colors_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/theme/code_theme_colors_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/theme/code_theme_colors_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/theme/code_theme_colors_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/theme/custom_theme_color_picker_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/theme/custom_theme_color_picker_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/theme/custom_theme_color_picker_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/theme/custom_theme_color_picker_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/theme/custom_theme_sidebar_styles_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/theme/custom_theme_sidebar_styles_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/theme/custom_theme_sidebar_styles_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/theme/custom_theme_sidebar_styles_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/theme/save_theme_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/theme/save_theme_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/theme/save_theme_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/theme/save_theme_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/theme/settings_view_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/theme/settings_view_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/theme/settings_view_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/theme/settings_view_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/display/timezone_display_mode_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/display/timezone_display_mode_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/display/timezone_display_mode_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/display/timezone_display_mode_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/sidebar/channel_switcher_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/sidebar/channel_switcher_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/sidebar/channel_switcher_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/sidebar/channel_switcher_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/sidebar/channel_switcher_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/sidebar/channel_switcher_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/sidebar/channel_switcher_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/sidebar/channel_switcher_spec.js diff --git a/e2e/cypress/tests/integration/channels/settings/sidebar/fullname_spec.js b/e2e-tests/cypress/tests/integration/channels/settings/sidebar/fullname_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/settings/sidebar/fullname_spec.js rename to e2e-tests/cypress/tests/integration/channels/settings/sidebar/fullname_spec.js diff --git a/e2e/cypress/tests/integration/channels/signin_authentication/authentication_spec.js b/e2e-tests/cypress/tests/integration/channels/signin_authentication/authentication_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/signin_authentication/authentication_spec.js rename to e2e-tests/cypress/tests/integration/channels/signin_authentication/authentication_spec.js diff --git a/e2e/cypress/tests/integration/channels/signin_authentication/desktop_session_expire_spec.js b/e2e-tests/cypress/tests/integration/channels/signin_authentication/desktop_session_expire_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/signin_authentication/desktop_session_expire_spec.js rename to e2e-tests/cypress/tests/integration/channels/signin_authentication/desktop_session_expire_spec.js diff --git a/e2e/cypress/tests/integration/channels/signin_authentication/forgot_password_spec.js b/e2e-tests/cypress/tests/integration/channels/signin_authentication/forgot_password_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/signin_authentication/forgot_password_spec.js rename to e2e-tests/cypress/tests/integration/channels/signin_authentication/forgot_password_spec.js diff --git a/e2e/cypress/tests/integration/channels/signin_authentication/helpers.js b/e2e-tests/cypress/tests/integration/channels/signin_authentication/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/signin_authentication/helpers.js rename to e2e-tests/cypress/tests/integration/channels/signin_authentication/helpers.js diff --git a/e2e/cypress/tests/integration/channels/signin_authentication/login_close_server_spec.js b/e2e-tests/cypress/tests/integration/channels/signin_authentication/login_close_server_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/signin_authentication/login_close_server_spec.js rename to e2e-tests/cypress/tests/integration/channels/signin_authentication/login_close_server_spec.js diff --git a/e2e/cypress/tests/integration/channels/signin_authentication/login_logout_smoke_spec.js b/e2e-tests/cypress/tests/integration/channels/signin_authentication/login_logout_smoke_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/signin_authentication/login_logout_smoke_spec.js rename to e2e-tests/cypress/tests/integration/channels/signin_authentication/login_logout_smoke_spec.js diff --git a/e2e/cypress/tests/integration/channels/signin_authentication/login_open_server_spec.js b/e2e-tests/cypress/tests/integration/channels/signin_authentication/login_open_server_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/signin_authentication/login_open_server_spec.js rename to e2e-tests/cypress/tests/integration/channels/signin_authentication/login_open_server_spec.js diff --git a/e2e/cypress/tests/integration/channels/signin_authentication/mfa_authentication_spec.js b/e2e-tests/cypress/tests/integration/channels/signin_authentication/mfa_authentication_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/signin_authentication/mfa_authentication_spec.js rename to e2e-tests/cypress/tests/integration/channels/signin_authentication/mfa_authentication_spec.js diff --git a/e2e/cypress/tests/integration/channels/signin_authentication/signup_spec.js b/e2e-tests/cypress/tests/integration/channels/signin_authentication/signup_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/signin_authentication/signup_spec.js rename to e2e-tests/cypress/tests/integration/channels/signin_authentication/signup_spec.js diff --git a/e2e/cypress/tests/integration/channels/slash_commands/autocomplete_spec.js b/e2e-tests/cypress/tests/integration/channels/slash_commands/autocomplete_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/slash_commands/autocomplete_spec.js rename to e2e-tests/cypress/tests/integration/channels/slash_commands/autocomplete_spec.js diff --git a/e2e/cypress/tests/integration/channels/status/status_dnd_1_spec.js b/e2e-tests/cypress/tests/integration/channels/status/status_dnd_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/status/status_dnd_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/status/status_dnd_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/subpath/subpath_channel_routing_spec.js b/e2e-tests/cypress/tests/integration/channels/subpath/subpath_channel_routing_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/subpath/subpath_channel_routing_spec.js rename to e2e-tests/cypress/tests/integration/channels/subpath/subpath_channel_routing_spec.js diff --git a/e2e/cypress/tests/integration/channels/subpath/subpath_dm_search_spec.js b/e2e-tests/cypress/tests/integration/channels/subpath/subpath_dm_search_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/subpath/subpath_dm_search_spec.js rename to e2e-tests/cypress/tests/integration/channels/subpath/subpath_dm_search_spec.js diff --git a/e2e/cypress/tests/integration/channels/subpath/subpath_login_spec.js b/e2e-tests/cypress/tests/integration/channels/subpath/subpath_login_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/subpath/subpath_login_spec.js rename to e2e-tests/cypress/tests/integration/channels/subpath/subpath_login_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/authentication/password_settings_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/authentication/password_settings_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/authentication/password_settings_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/authentication/password_settings_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/compliance/custom_terms_of_service_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/compliance/custom_terms_of_service_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/compliance/custom_terms_of_service_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/compliance/custom_terms_of_service_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/demoted_user_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/demoted_user_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/demoted_user_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/demoted_user_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/environment_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/environment_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/environment_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/environment_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/feature_discovery_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/feature_discovery_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/feature_discovery_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/feature_discovery_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/feature_discovery_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/feature_discovery_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/feature_discovery_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/feature_discovery_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/feature_discovery_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/feature_discovery_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/feature_discovery_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/feature_discovery_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/inactive_users_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/inactive_users_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/inactive_users_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/inactive_users_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/lock_teammate_name_display_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/lock_teammate_name_display_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/lock_teammate_name_display_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/lock_teammate_name_display_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/main_menu_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/main_menu_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/main_menu_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/main_menu_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/mobile_settings_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/mobile_settings_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/mobile_settings_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/mobile_settings_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/plugin_marketplace_url_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/plugin_marketplace_url_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/plugin_marketplace_url_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/plugin_marketplace_url_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/reporting/server_logs_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/reporting/server_logs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/reporting/server_logs_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/reporting/server_logs_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/reporting/site_statistics_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/reporting/site_statistics_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/reporting/site_statistics_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/reporting/site_statistics_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/reporting/site_statistics_te_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/reporting/site_statistics_te_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/reporting/site_statistics_te_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/reporting/site_statistics_te_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/reporting/team_statistics_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/reporting/team_statistics_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/reporting/team_statistics_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/reporting/team_statistics_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/revoke_all_sessions_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/revoke_all_sessions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/revoke_all_sessions_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/revoke_all_sessions_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/search_box_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/search_box_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/search_box_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/search_box_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/session_length_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/session_length_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/session_length_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/session_length_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/sidebar_link_navigation_team_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/sidebar_link_navigation_team_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/sidebar_link_navigation_team_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/sidebar_link_navigation_team_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/site_configuration/announcement_banner_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/announcement_banner_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/site_configuration/announcement_banner_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/announcement_banner_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/site_configuration/customization_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/customization_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/site_configuration/customization_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/customization_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/site_configuration/helper.js b/e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/helper.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/site_configuration/helper.js rename to e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/helper.js diff --git a/e2e/cypress/tests/integration/channels/system_console/site_configuration/link_customization_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/link_customization_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/site_configuration/link_customization_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/link_customization_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/site_configuration/link_customization_e20_1_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/link_customization_e20_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/site_configuration/link_customization_e20_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/link_customization_e20_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/site_configuration/link_customization_e20_2_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/link_customization_e20_2_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/site_configuration/link_customization_e20_2_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/site_configuration/link_customization_e20_2_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/site_url_config_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/site_url_config_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/site_url_config_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/site_url_config_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/support_packet_generation_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/support_packet_generation_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/support_packet_generation_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/support_packet_generation_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/true_up_review_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/true_up_review_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/true_up_review_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/true_up_review_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/ui_and_api/custom_site_name_description_spec.ts b/e2e-tests/cypress/tests/integration/channels/system_console/ui_and_api/custom_site_name_description_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/ui_and_api/custom_site_name_description_spec.ts rename to e2e-tests/cypress/tests/integration/channels/system_console/ui_and_api/custom_site_name_description_spec.ts diff --git a/e2e/cypress/tests/integration/channels/system_console/ui_and_api/customization_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/ui_and_api/customization_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/ui_and_api/customization_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/ui_and_api/customization_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/ui_and_api/customization_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/ui_and_api/customization_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/ui_and_api/customization_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/ui_and_api/customization_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/unsaved_changes_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/unsaved_changes_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/unsaved_changes_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/unsaved_changes_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/user_management/users_deactivation_1_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_deactivation_1_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/user_management/users_deactivation_1_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_deactivation_1_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/user_management/users_deactivation_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_deactivation_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/user_management/users_deactivation_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_deactivation_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/user_management/users_deactivation_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_deactivation_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/user_management/users_deactivation_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_deactivation_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/user_management/users_reactivation_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_reactivation_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/user_management/users_reactivation_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_reactivation_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/user_management/users_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/user_management/users_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/user_management/users_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/user_management_not_cloud_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/user_management_not_cloud_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/user_management_not_cloud_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/user_management_not_cloud_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/user_management_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/user_management_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/user_management_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/user_management_spec.js diff --git a/e2e/cypress/tests/integration/channels/system_console/workspace_deletion_spec.js b/e2e-tests/cypress/tests/integration/channels/system_console/workspace_deletion_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/system_console/workspace_deletion_spec.js rename to e2e-tests/cypress/tests/integration/channels/system_console/workspace_deletion_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/archive_team_spec.ts b/e2e-tests/cypress/tests/integration/channels/team_settings/archive_team_spec.ts similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/archive_team_spec.ts rename to e2e-tests/cypress/tests/integration/channels/team_settings/archive_team_spec.ts diff --git a/e2e/cypress/tests/integration/channels/team_settings/closed_team_invite_by_email_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/closed_team_invite_by_email_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/closed_team_invite_by_email_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/closed_team_invite_by_email_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/closed_team_invite_with_non_mattermost_domain_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/closed_team_invite_with_non_mattermost_domain_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/closed_team_invite_with_non_mattermost_domain_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/closed_team_invite_with_non_mattermost_domain_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/closed_team_invite_with_specific_domain_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/closed_team_invite_with_specific_domain_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/closed_team_invite_with_specific_domain_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/closed_team_invite_with_specific_domain_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/create_a_team_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/create_a_team_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/create_a_team_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/create_a_team_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/helpers.js b/e2e-tests/cypress/tests/integration/channels/team_settings/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/helpers.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/helpers.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/invite_members_backdrop_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/invite_members_backdrop_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/invite_members_backdrop_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/invite_members_backdrop_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/invite_members_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/invite_members_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/invite_members_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/invite_members_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/invite_user_to_closed_team_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/invite_user_to_closed_team_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/invite_user_to_closed_team_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/invite_user_to_closed_team_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/join_closed_team_with_not_allowed_email_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/join_closed_team_with_not_allowed_email_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/join_closed_team_with_not_allowed_email_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/join_closed_team_with_not_allowed_email_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/manage_members_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/manage_members_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/manage_members_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/manage_members_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/remove_team_icon_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/remove_team_icon_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/remove_team_icon_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/remove_team_icon_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/teammates_pagination_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/teammates_pagination_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/teammates_pagination_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/teammates_pagination_spec.js diff --git a/e2e/cypress/tests/integration/channels/team_settings/teams_spec.js b/e2e-tests/cypress/tests/integration/channels/team_settings/teams_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/team_settings/teams_spec.js rename to e2e-tests/cypress/tests/integration/channels/team_settings/teams_spec.js diff --git a/e2e/cypress/tests/integration/channels/toast/helpers.js b/e2e-tests/cypress/tests/integration/channels/toast/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/toast/helpers.js rename to e2e-tests/cypress/tests/integration/channels/toast/helpers.js diff --git a/e2e/cypress/tests/integration/channels/toast/new_messages_toast_spec.js b/e2e-tests/cypress/tests/integration/channels/toast/new_messages_toast_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/toast/new_messages_toast_spec.js rename to e2e-tests/cypress/tests/integration/channels/toast/new_messages_toast_spec.js diff --git a/e2e/cypress/tests/integration/channels/toast/permalink_jump_to_spec.js b/e2e-tests/cypress/tests/integration/channels/toast/permalink_jump_to_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/toast/permalink_jump_to_spec.js rename to e2e-tests/cypress/tests/integration/channels/toast/permalink_jump_to_spec.js diff --git a/e2e/cypress/tests/integration/channels/toast/permalink_post_spec.js b/e2e-tests/cypress/tests/integration/channels/toast/permalink_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/toast/permalink_post_spec.js rename to e2e-tests/cypress/tests/integration/channels/toast/permalink_post_spec.js diff --git a/e2e/cypress/tests/integration/channels/toast/permalink_post_with_new_message_spec.js b/e2e-tests/cypress/tests/integration/channels/toast/permalink_post_with_new_message_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/toast/permalink_post_with_new_message_spec.js rename to e2e-tests/cypress/tests/integration/channels/toast/permalink_post_with_new_message_spec.js diff --git a/e2e/cypress/tests/integration/channels/toast/toast_spec.js b/e2e-tests/cypress/tests/integration/channels/toast/toast_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/toast/toast_spec.js rename to e2e-tests/cypress/tests/integration/channels/toast/toast_spec.js diff --git a/e2e/cypress/tests/integration/channels/toast/unread_with_bottom_start_toast_spec.js b/e2e-tests/cypress/tests/integration/channels/toast/unread_with_bottom_start_toast_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/toast/unread_with_bottom_start_toast_spec.js rename to e2e-tests/cypress/tests/integration/channels/toast/unread_with_bottom_start_toast_spec.js diff --git a/e2e/cypress/tests/integration/channels/websocket/channel_created/new_sidebar_spec.js b/e2e-tests/cypress/tests/integration/channels/websocket/channel_created/new_sidebar_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/websocket/channel_created/new_sidebar_spec.js rename to e2e-tests/cypress/tests/integration/channels/websocket/channel_created/new_sidebar_spec.js diff --git a/e2e/cypress/tests/integration/channels/websocket/channel_created/old_sidebar_spec.js b/e2e-tests/cypress/tests/integration/channels/websocket/channel_created/old_sidebar_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/websocket/channel_created/old_sidebar_spec.js rename to e2e-tests/cypress/tests/integration/channels/websocket/channel_created/old_sidebar_spec.js diff --git a/e2e/cypress/tests/integration/channels/websocket/handle_new_post_spec.js b/e2e-tests/cypress/tests/integration/channels/websocket/handle_new_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/websocket/handle_new_post_spec.js rename to e2e-tests/cypress/tests/integration/channels/websocket/handle_new_post_spec.js diff --git a/e2e/cypress/tests/integration/channels/websocket/handle_removed_user/helpers.js b/e2e-tests/cypress/tests/integration/channels/websocket/handle_removed_user/helpers.js similarity index 100% rename from e2e/cypress/tests/integration/channels/websocket/handle_removed_user/helpers.js rename to e2e-tests/cypress/tests/integration/channels/websocket/handle_removed_user/helpers.js diff --git a/e2e/cypress/tests/integration/channels/websocket/handle_removed_user/new_sidebar_spec.js b/e2e-tests/cypress/tests/integration/channels/websocket/handle_removed_user/new_sidebar_spec.js similarity index 100% rename from e2e/cypress/tests/integration/channels/websocket/handle_removed_user/new_sidebar_spec.js rename to e2e-tests/cypress/tests/integration/channels/websocket/handle_removed_user/new_sidebar_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/adminconsole/analytics_spec.js b/e2e-tests/cypress/tests/integration/playbooks/adminconsole/analytics_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/adminconsole/analytics_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/adminconsole/analytics_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/api/runs_spec.js b/e2e-tests/cypress/tests/integration/playbooks/api/runs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/api/runs_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/api/runs_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/app_bar_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/app_bar_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/app_bar_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/app_bar_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/broadcast_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/broadcast_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/broadcast_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/broadcast_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/channel_header_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/channel_header_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/channel_header_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/channel_header_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/general_actions_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/general_actions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/general_actions_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/general_actions_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/playbook_run_actions.js b/e2e-tests/cypress/tests/integration/playbooks/channels/playbook_run_actions.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/playbook_run_actions.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/playbook_run_actions.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/post_type_components_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/post_type_components_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/post_type_components_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/post_type_components_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/retrospective_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/retrospective_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/retrospective_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/retrospective_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs/about_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs/about_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs/about_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs/about_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs/checklist_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs/checklist_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs/checklist_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs/checklist_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs/header_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs/header_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs/header_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs/header_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs/home_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs/home_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs/home_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs/home_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs/list_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs/list_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs/list_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs/list_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs/start_run_rhs_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs/start_run_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs/start_run_rhs_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs/start_run_rhs_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs/status_update_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs/status_update_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs/status_update_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs/status_update_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs/template_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs/template_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs/template_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs/template_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs/title_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs/title_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs/title_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs/title_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/rhs_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/rhs_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/rhs_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/run_dialog_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/run_dialog_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/run_dialog_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/run_dialog_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/run_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/run_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/run_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/run_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/slash_command/commands_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/commands_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/slash_command/commands_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/commands_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/slash_command/info_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/info_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/slash_command/info_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/info_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/slash_command/owner_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/owner_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/slash_command/owner_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/owner_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/slash_command/test_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/test_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/slash_command/test_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/test_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/slash_command/todo_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/todo_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/slash_command/todo_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/slash_command/todo_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/channels/update_request_post_spec.js b/e2e-tests/cypress/tests/integration/playbooks/channels/update_request_post_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/channels/update_request_post_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/channels/update_request_post_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/digest_spec.js b/e2e-tests/cypress/tests/integration/playbooks/digest_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/digest_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/digest_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/lhs_spec.js b/e2e-tests/cypress/tests/integration/playbooks/lhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/lhs_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/lhs_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/navigation_spec.js b/e2e-tests/cypress/tests/integration/playbooks/navigation_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/navigation_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/navigation_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/access_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/access_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/access_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/access_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/creation_button_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/creation_button_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/creation_button_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/creation_button_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/edit/task_actions_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/edit/task_actions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/edit/task_actions_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/edit/task_actions_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/edit_metrics_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/edit_metrics_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/edit_metrics_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/edit_metrics_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/edit_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/edit_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/edit_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/edit_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/feedback_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/feedback_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/feedback_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/feedback_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/list_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/list_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/list_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/list_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/overview_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/overview_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/overview_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/overview_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/pagination_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/pagination_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/pagination_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/pagination_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/start_run_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/start_run_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/start_run_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/start_run_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/playbooks/status_update_spec.js b/e2e-tests/cypress/tests/integration/playbooks/playbooks/status_update_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/playbooks/status_update_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/playbooks/status_update_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/list_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/list_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/list_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/list_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/permissions_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/permissions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/permissions_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/permissions_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_general_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_general_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_general_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_general_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_main_checklist_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_checklist_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_main_checklist_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_checklist_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_main_finish_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_finish_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_main_finish_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_finish_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_main_header_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_header_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_main_header_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_header_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_main_restore_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_restore_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_main_restore_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_restore_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_main_retrospective_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_retrospective_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_main_retrospective_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_retrospective_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_main_statusupdate_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_statusupdate_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_main_statusupdate_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_statusupdate_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_main_summary_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_summary_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_main_summary_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_summary_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_main_taskactions_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_taskactions_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_main_taskactions_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_main_taskactions_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_rhs_participants_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_rhs_participants_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_rhs_participants_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_rhs_participants_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_rhs_runinfo_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_rhs_runinfo_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_rhs_runinfo_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_rhs_runinfo_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_rhs_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_rhs_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_rhs_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_rhs_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/rdp_rhs_statusupdates_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/rdp_rhs_statusupdates_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/rdp_rhs_statusupdates_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/rdp_rhs_statusupdates_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/runs/taskinbox_spec.js b/e2e-tests/cypress/tests/integration/playbooks/runs/taskinbox_spec.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/runs/taskinbox_spec.js rename to e2e-tests/cypress/tests/integration/playbooks/runs/taskinbox_spec.js diff --git a/e2e/cypress/tests/integration/playbooks/tours_spec_ignore_.js b/e2e-tests/cypress/tests/integration/playbooks/tours_spec_ignore_.js similarity index 100% rename from e2e/cypress/tests/integration/playbooks/tours_spec_ignore_.js rename to e2e-tests/cypress/tests/integration/playbooks/tours_spec_ignore_.js diff --git a/e2e/cypress/tests/plugins/client_request.js b/e2e-tests/cypress/tests/plugins/client_request.js similarity index 100% rename from e2e/cypress/tests/plugins/client_request.js rename to e2e-tests/cypress/tests/plugins/client_request.js diff --git a/e2e/cypress/tests/plugins/db_request.js b/e2e-tests/cypress/tests/plugins/db_request.js similarity index 100% rename from e2e/cypress/tests/plugins/db_request.js rename to e2e-tests/cypress/tests/plugins/db_request.js diff --git a/e2e/cypress/tests/plugins/external_request.ts b/e2e-tests/cypress/tests/plugins/external_request.ts similarity index 100% rename from e2e/cypress/tests/plugins/external_request.ts rename to e2e-tests/cypress/tests/plugins/external_request.ts diff --git a/e2e/cypress/tests/plugins/file_util.js b/e2e-tests/cypress/tests/plugins/file_util.js similarity index 100% rename from e2e/cypress/tests/plugins/file_util.js rename to e2e-tests/cypress/tests/plugins/file_util.js diff --git a/e2e/cypress/tests/plugins/get_pdf_content.js b/e2e-tests/cypress/tests/plugins/get_pdf_content.js similarity index 100% rename from e2e/cypress/tests/plugins/get_pdf_content.js rename to e2e-tests/cypress/tests/plugins/get_pdf_content.js diff --git a/e2e/cypress/tests/plugins/get_recent_email.js b/e2e-tests/cypress/tests/plugins/get_recent_email.js similarity index 100% rename from e2e/cypress/tests/plugins/get_recent_email.js rename to e2e-tests/cypress/tests/plugins/get_recent_email.js diff --git a/e2e/cypress/tests/plugins/index.js b/e2e-tests/cypress/tests/plugins/index.js similarity index 100% rename from e2e/cypress/tests/plugins/index.js rename to e2e-tests/cypress/tests/plugins/index.js diff --git a/e2e/cypress/tests/plugins/keycloak_request.js b/e2e-tests/cypress/tests/plugins/keycloak_request.js similarity index 100% rename from e2e/cypress/tests/plugins/keycloak_request.js rename to e2e-tests/cypress/tests/plugins/keycloak_request.js diff --git a/e2e/cypress/tests/plugins/okta_request.js b/e2e-tests/cypress/tests/plugins/okta_request.js similarity index 100% rename from e2e/cypress/tests/plugins/okta_request.js rename to e2e-tests/cypress/tests/plugins/okta_request.js diff --git a/e2e/cypress/tests/plugins/post_bot_message.js b/e2e-tests/cypress/tests/plugins/post_bot_message.js similarity index 100% rename from e2e/cypress/tests/plugins/post_bot_message.js rename to e2e-tests/cypress/tests/plugins/post_bot_message.js diff --git a/e2e/cypress/tests/plugins/post_incoming_webhook.js b/e2e-tests/cypress/tests/plugins/post_incoming_webhook.js similarity index 100% rename from e2e/cypress/tests/plugins/post_incoming_webhook.js rename to e2e-tests/cypress/tests/plugins/post_incoming_webhook.js diff --git a/e2e/cypress/tests/plugins/post_list_of_messages.js b/e2e-tests/cypress/tests/plugins/post_list_of_messages.js similarity index 100% rename from e2e/cypress/tests/plugins/post_list_of_messages.js rename to e2e-tests/cypress/tests/plugins/post_list_of_messages.js diff --git a/e2e/cypress/tests/plugins/post_message_as.js b/e2e-tests/cypress/tests/plugins/post_message_as.js similarity index 100% rename from e2e/cypress/tests/plugins/post_message_as.js rename to e2e-tests/cypress/tests/plugins/post_message_as.js diff --git a/e2e/cypress/tests/plugins/react_to_message_as.js b/e2e-tests/cypress/tests/plugins/react_to_message_as.js similarity index 100% rename from e2e/cypress/tests/plugins/react_to_message_as.js rename to e2e-tests/cypress/tests/plugins/react_to_message_as.js diff --git a/e2e/cypress/tests/plugins/shell.js b/e2e-tests/cypress/tests/plugins/shell.js similarity index 100% rename from e2e/cypress/tests/plugins/shell.js rename to e2e-tests/cypress/tests/plugins/shell.js diff --git a/e2e/cypress/tests/plugins/url_health_check.js b/e2e-tests/cypress/tests/plugins/url_health_check.js similarity index 100% rename from e2e/cypress/tests/plugins/url_health_check.js rename to e2e-tests/cypress/tests/plugins/url_health_check.js diff --git a/e2e/cypress/tests/support/api/bots.d.ts b/e2e-tests/cypress/tests/support/api/bots.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/bots.d.ts rename to e2e-tests/cypress/tests/support/api/bots.d.ts diff --git a/e2e/cypress/tests/support/api/bots.js b/e2e-tests/cypress/tests/support/api/bots.js similarity index 100% rename from e2e/cypress/tests/support/api/bots.js rename to e2e-tests/cypress/tests/support/api/bots.js diff --git a/e2e/cypress/tests/support/api/brand.d.ts b/e2e-tests/cypress/tests/support/api/brand.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/brand.d.ts rename to e2e-tests/cypress/tests/support/api/brand.d.ts diff --git a/e2e/cypress/tests/support/api/brand.js b/e2e-tests/cypress/tests/support/api/brand.js similarity index 100% rename from e2e/cypress/tests/support/api/brand.js rename to e2e-tests/cypress/tests/support/api/brand.js diff --git a/e2e/cypress/tests/support/api/channel.d.ts b/e2e-tests/cypress/tests/support/api/channel.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/channel.d.ts rename to e2e-tests/cypress/tests/support/api/channel.d.ts diff --git a/e2e/cypress/tests/support/api/channel.js b/e2e-tests/cypress/tests/support/api/channel.js similarity index 100% rename from e2e/cypress/tests/support/api/channel.js rename to e2e-tests/cypress/tests/support/api/channel.js diff --git a/e2e/cypress/tests/support/api/cloud.d.ts b/e2e-tests/cypress/tests/support/api/cloud.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/cloud.d.ts rename to e2e-tests/cypress/tests/support/api/cloud.d.ts diff --git a/e2e/cypress/tests/support/api/cloud.js b/e2e-tests/cypress/tests/support/api/cloud.js similarity index 100% rename from e2e/cypress/tests/support/api/cloud.js rename to e2e-tests/cypress/tests/support/api/cloud.js diff --git a/e2e/cypress/tests/support/api/cloud_default_config.json b/e2e-tests/cypress/tests/support/api/cloud_default_config.json similarity index 100% rename from e2e/cypress/tests/support/api/cloud_default_config.json rename to e2e-tests/cypress/tests/support/api/cloud_default_config.json diff --git a/e2e/cypress/tests/support/api/cluster.d.ts b/e2e-tests/cypress/tests/support/api/cluster.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/cluster.d.ts rename to e2e-tests/cypress/tests/support/api/cluster.d.ts diff --git a/e2e/cypress/tests/support/api/cluster.js b/e2e-tests/cypress/tests/support/api/cluster.js similarity index 100% rename from e2e/cypress/tests/support/api/cluster.js rename to e2e-tests/cypress/tests/support/api/cluster.js diff --git a/e2e/cypress/tests/support/api/common.d.ts b/e2e-tests/cypress/tests/support/api/common.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/common.d.ts rename to e2e-tests/cypress/tests/support/api/common.d.ts diff --git a/e2e/cypress/tests/support/api/common.js b/e2e-tests/cypress/tests/support/api/common.js similarity index 100% rename from e2e/cypress/tests/support/api/common.js rename to e2e-tests/cypress/tests/support/api/common.js diff --git a/e2e/cypress/tests/support/api/data_retention.d.ts b/e2e-tests/cypress/tests/support/api/data_retention.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/data_retention.d.ts rename to e2e-tests/cypress/tests/support/api/data_retention.d.ts diff --git a/e2e/cypress/tests/support/api/data_retention.js b/e2e-tests/cypress/tests/support/api/data_retention.js similarity index 100% rename from e2e/cypress/tests/support/api/data_retention.js rename to e2e-tests/cypress/tests/support/api/data_retention.js diff --git a/e2e/cypress/tests/support/api/helpers.js b/e2e-tests/cypress/tests/support/api/helpers.js similarity index 100% rename from e2e/cypress/tests/support/api/helpers.js rename to e2e-tests/cypress/tests/support/api/helpers.js diff --git a/e2e/cypress/tests/support/api/index.js b/e2e-tests/cypress/tests/support/api/index.js similarity index 100% rename from e2e/cypress/tests/support/api/index.js rename to e2e-tests/cypress/tests/support/api/index.js diff --git a/e2e/cypress/tests/support/api/keycloak.d.ts b/e2e-tests/cypress/tests/support/api/keycloak.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/keycloak.d.ts rename to e2e-tests/cypress/tests/support/api/keycloak.d.ts diff --git a/e2e/cypress/tests/support/api/keycloak.js b/e2e-tests/cypress/tests/support/api/keycloak.js similarity index 100% rename from e2e/cypress/tests/support/api/keycloak.js rename to e2e-tests/cypress/tests/support/api/keycloak.js diff --git a/e2e/cypress/tests/support/api/keycloak_realm.json b/e2e-tests/cypress/tests/support/api/keycloak_realm.json similarity index 100% rename from e2e/cypress/tests/support/api/keycloak_realm.json rename to e2e-tests/cypress/tests/support/api/keycloak_realm.json diff --git a/e2e/cypress/tests/support/api/ldap.d.ts b/e2e-tests/cypress/tests/support/api/ldap.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/ldap.d.ts rename to e2e-tests/cypress/tests/support/api/ldap.d.ts diff --git a/e2e/cypress/tests/support/api/ldap.js b/e2e-tests/cypress/tests/support/api/ldap.js similarity index 100% rename from e2e/cypress/tests/support/api/ldap.js rename to e2e-tests/cypress/tests/support/api/ldap.js diff --git a/e2e/cypress/tests/support/api/on_prem_default_config.json b/e2e-tests/cypress/tests/support/api/on_prem_default_config.json similarity index 100% rename from e2e/cypress/tests/support/api/on_prem_default_config.json rename to e2e-tests/cypress/tests/support/api/on_prem_default_config.json diff --git a/e2e/cypress/tests/support/api/playbooks.js b/e2e-tests/cypress/tests/support/api/playbooks.js similarity index 100% rename from e2e/cypress/tests/support/api/playbooks.js rename to e2e-tests/cypress/tests/support/api/playbooks.js diff --git a/e2e/cypress/tests/support/api/plugin.d.ts b/e2e-tests/cypress/tests/support/api/plugin.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/plugin.d.ts rename to e2e-tests/cypress/tests/support/api/plugin.d.ts diff --git a/e2e/cypress/tests/support/api/plugin.js b/e2e-tests/cypress/tests/support/api/plugin.js similarity index 100% rename from e2e/cypress/tests/support/api/plugin.js rename to e2e-tests/cypress/tests/support/api/plugin.js diff --git a/e2e/cypress/tests/support/api/preference.d.ts b/e2e-tests/cypress/tests/support/api/preference.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/preference.d.ts rename to e2e-tests/cypress/tests/support/api/preference.d.ts diff --git a/e2e/cypress/tests/support/api/preference.js b/e2e-tests/cypress/tests/support/api/preference.js similarity index 100% rename from e2e/cypress/tests/support/api/preference.js rename to e2e-tests/cypress/tests/support/api/preference.js diff --git a/e2e/cypress/tests/support/api/role.d.ts b/e2e-tests/cypress/tests/support/api/role.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/role.d.ts rename to e2e-tests/cypress/tests/support/api/role.d.ts diff --git a/e2e/cypress/tests/support/api/role.js b/e2e-tests/cypress/tests/support/api/role.js similarity index 100% rename from e2e/cypress/tests/support/api/role.js rename to e2e-tests/cypress/tests/support/api/role.js diff --git a/e2e/cypress/tests/support/api/saml.d.ts b/e2e-tests/cypress/tests/support/api/saml.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/saml.d.ts rename to e2e-tests/cypress/tests/support/api/saml.d.ts diff --git a/e2e/cypress/tests/support/api/saml.js b/e2e-tests/cypress/tests/support/api/saml.js similarity index 100% rename from e2e/cypress/tests/support/api/saml.js rename to e2e-tests/cypress/tests/support/api/saml.js diff --git a/e2e/cypress/tests/support/api/scheme.d.ts b/e2e-tests/cypress/tests/support/api/scheme.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/scheme.d.ts rename to e2e-tests/cypress/tests/support/api/scheme.d.ts diff --git a/e2e/cypress/tests/support/api/scheme.js b/e2e-tests/cypress/tests/support/api/scheme.js similarity index 100% rename from e2e/cypress/tests/support/api/scheme.js rename to e2e-tests/cypress/tests/support/api/scheme.js diff --git a/e2e/cypress/tests/support/api/setup.ts b/e2e-tests/cypress/tests/support/api/setup.ts similarity index 100% rename from e2e/cypress/tests/support/api/setup.ts rename to e2e-tests/cypress/tests/support/api/setup.ts diff --git a/e2e/cypress/tests/support/api/status.d.ts b/e2e-tests/cypress/tests/support/api/status.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/status.d.ts rename to e2e-tests/cypress/tests/support/api/status.d.ts diff --git a/e2e/cypress/tests/support/api/status.js b/e2e-tests/cypress/tests/support/api/status.js similarity index 100% rename from e2e/cypress/tests/support/api/status.js rename to e2e-tests/cypress/tests/support/api/status.js diff --git a/e2e/cypress/tests/support/api/system.d.ts b/e2e-tests/cypress/tests/support/api/system.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/system.d.ts rename to e2e-tests/cypress/tests/support/api/system.d.ts diff --git a/e2e/cypress/tests/support/api/system.js b/e2e-tests/cypress/tests/support/api/system.js similarity index 100% rename from e2e/cypress/tests/support/api/system.js rename to e2e-tests/cypress/tests/support/api/system.js diff --git a/e2e/cypress/tests/support/api/team.d.ts b/e2e-tests/cypress/tests/support/api/team.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/team.d.ts rename to e2e-tests/cypress/tests/support/api/team.d.ts diff --git a/e2e/cypress/tests/support/api/team.js b/e2e-tests/cypress/tests/support/api/team.js similarity index 100% rename from e2e/cypress/tests/support/api/team.js rename to e2e-tests/cypress/tests/support/api/team.js diff --git a/e2e/cypress/tests/support/api/user.d.ts b/e2e-tests/cypress/tests/support/api/user.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/user.d.ts rename to e2e-tests/cypress/tests/support/api/user.d.ts diff --git a/e2e/cypress/tests/support/api/user.js b/e2e-tests/cypress/tests/support/api/user.js similarity index 100% rename from e2e/cypress/tests/support/api/user.js rename to e2e-tests/cypress/tests/support/api/user.js diff --git a/e2e/cypress/tests/support/api/webhooks.d.ts b/e2e-tests/cypress/tests/support/api/webhooks.d.ts similarity index 100% rename from e2e/cypress/tests/support/api/webhooks.d.ts rename to e2e-tests/cypress/tests/support/api/webhooks.d.ts diff --git a/e2e/cypress/tests/support/api/webhooks.js b/e2e-tests/cypress/tests/support/api/webhooks.js similarity index 100% rename from e2e/cypress/tests/support/api/webhooks.js rename to e2e-tests/cypress/tests/support/api/webhooks.js diff --git a/e2e/cypress/tests/support/api_commands.ts b/e2e-tests/cypress/tests/support/api_commands.ts similarity index 100% rename from e2e/cypress/tests/support/api_commands.ts rename to e2e-tests/cypress/tests/support/api_commands.ts diff --git a/e2e/cypress/tests/support/assertions.js b/e2e-tests/cypress/tests/support/assertions.js similarity index 100% rename from e2e/cypress/tests/support/assertions.js rename to e2e-tests/cypress/tests/support/assertions.js diff --git a/e2e/cypress/tests/support/client-impl.js b/e2e-tests/cypress/tests/support/client-impl.js similarity index 100% rename from e2e/cypress/tests/support/client-impl.js rename to e2e-tests/cypress/tests/support/client-impl.js diff --git a/e2e/cypress/tests/support/client.d.ts b/e2e-tests/cypress/tests/support/client.d.ts similarity index 100% rename from e2e/cypress/tests/support/client.d.ts rename to e2e-tests/cypress/tests/support/client.d.ts diff --git a/e2e/cypress/tests/support/client.js b/e2e-tests/cypress/tests/support/client.js similarity index 100% rename from e2e/cypress/tests/support/client.js rename to e2e-tests/cypress/tests/support/client.js diff --git a/e2e/cypress/tests/support/common_login_commands.d.ts b/e2e-tests/cypress/tests/support/common_login_commands.d.ts similarity index 100% rename from e2e/cypress/tests/support/common_login_commands.d.ts rename to e2e-tests/cypress/tests/support/common_login_commands.d.ts diff --git a/e2e/cypress/tests/support/common_login_commands.js b/e2e-tests/cypress/tests/support/common_login_commands.js similarity index 100% rename from e2e/cypress/tests/support/common_login_commands.js rename to e2e-tests/cypress/tests/support/common_login_commands.js diff --git a/e2e/cypress/tests/support/constants.js b/e2e-tests/cypress/tests/support/constants.js similarity index 100% rename from e2e/cypress/tests/support/constants.js rename to e2e-tests/cypress/tests/support/constants.js diff --git a/e2e/cypress/tests/support/db_commands.ts b/e2e-tests/cypress/tests/support/db_commands.ts similarity index 100% rename from e2e/cypress/tests/support/db_commands.ts rename to e2e-tests/cypress/tests/support/db_commands.ts diff --git a/e2e/cypress/tests/support/email.ts b/e2e-tests/cypress/tests/support/email.ts similarity index 100% rename from e2e/cypress/tests/support/email.ts rename to e2e-tests/cypress/tests/support/email.ts diff --git a/e2e/cypress/tests/support/env.ts b/e2e-tests/cypress/tests/support/env.ts similarity index 100% rename from e2e/cypress/tests/support/env.ts rename to e2e-tests/cypress/tests/support/env.ts diff --git a/e2e/cypress/tests/support/extended_commands.d.ts b/e2e-tests/cypress/tests/support/extended_commands.d.ts similarity index 100% rename from e2e/cypress/tests/support/extended_commands.d.ts rename to e2e-tests/cypress/tests/support/extended_commands.d.ts diff --git a/e2e/cypress/tests/support/extended_commands.js b/e2e-tests/cypress/tests/support/extended_commands.js similarity index 100% rename from e2e/cypress/tests/support/extended_commands.js rename to e2e-tests/cypress/tests/support/extended_commands.js diff --git a/e2e/cypress/tests/support/external_commands.d.ts b/e2e-tests/cypress/tests/support/external_commands.d.ts similarity index 100% rename from e2e/cypress/tests/support/external_commands.d.ts rename to e2e-tests/cypress/tests/support/external_commands.d.ts diff --git a/e2e/cypress/tests/support/external_commands.js b/e2e-tests/cypress/tests/support/external_commands.js similarity index 100% rename from e2e/cypress/tests/support/external_commands.js rename to e2e-tests/cypress/tests/support/external_commands.js diff --git a/e2e/cypress/tests/support/fetch_commands.js b/e2e-tests/cypress/tests/support/fetch_commands.js similarity index 100% rename from e2e/cypress/tests/support/fetch_commands.js rename to e2e-tests/cypress/tests/support/fetch_commands.js diff --git a/e2e/cypress/tests/support/index.d.ts b/e2e-tests/cypress/tests/support/index.d.ts similarity index 100% rename from e2e/cypress/tests/support/index.d.ts rename to e2e-tests/cypress/tests/support/index.d.ts diff --git a/e2e/cypress/tests/support/index.js b/e2e-tests/cypress/tests/support/index.js similarity index 100% rename from e2e/cypress/tests/support/index.js rename to e2e-tests/cypress/tests/support/index.js diff --git a/e2e/cypress/tests/support/keycloak_commands.d.ts b/e2e-tests/cypress/tests/support/keycloak_commands.d.ts similarity index 100% rename from e2e/cypress/tests/support/keycloak_commands.d.ts rename to e2e-tests/cypress/tests/support/keycloak_commands.d.ts diff --git a/e2e/cypress/tests/support/keycloak_commands.js b/e2e-tests/cypress/tests/support/keycloak_commands.js similarity index 100% rename from e2e/cypress/tests/support/keycloak_commands.js rename to e2e-tests/cypress/tests/support/keycloak_commands.js diff --git a/e2e/cypress/tests/support/ldap_commands.d.ts b/e2e-tests/cypress/tests/support/ldap_commands.d.ts similarity index 100% rename from e2e/cypress/tests/support/ldap_commands.d.ts rename to e2e-tests/cypress/tests/support/ldap_commands.d.ts diff --git a/e2e/cypress/tests/support/ldap_commands.js b/e2e-tests/cypress/tests/support/ldap_commands.js similarity index 100% rename from e2e/cypress/tests/support/ldap_commands.js rename to e2e-tests/cypress/tests/support/ldap_commands.js diff --git a/e2e/cypress/tests/support/ldap_server_commands.d.ts b/e2e-tests/cypress/tests/support/ldap_server_commands.d.ts similarity index 100% rename from e2e/cypress/tests/support/ldap_server_commands.d.ts rename to e2e-tests/cypress/tests/support/ldap_server_commands.d.ts diff --git a/e2e/cypress/tests/support/ldap_server_commands.js b/e2e-tests/cypress/tests/support/ldap_server_commands.js similarity index 100% rename from e2e/cypress/tests/support/ldap_server_commands.js rename to e2e-tests/cypress/tests/support/ldap_server_commands.js diff --git a/e2e/cypress/tests/support/notification.ts b/e2e-tests/cypress/tests/support/notification.ts similarity index 100% rename from e2e/cypress/tests/support/notification.ts rename to e2e-tests/cypress/tests/support/notification.ts diff --git a/e2e/cypress/tests/support/okta_commands.js b/e2e-tests/cypress/tests/support/okta_commands.js similarity index 100% rename from e2e/cypress/tests/support/okta_commands.js rename to e2e-tests/cypress/tests/support/okta_commands.js diff --git a/e2e/cypress/tests/support/saml_commands.js b/e2e-tests/cypress/tests/support/saml_commands.js similarity index 100% rename from e2e/cypress/tests/support/saml_commands.js rename to e2e-tests/cypress/tests/support/saml_commands.js diff --git a/e2e/cypress/tests/support/shell.d.ts b/e2e-tests/cypress/tests/support/shell.d.ts similarity index 100% rename from e2e/cypress/tests/support/shell.d.ts rename to e2e-tests/cypress/tests/support/shell.d.ts diff --git a/e2e/cypress/tests/support/shell.js b/e2e-tests/cypress/tests/support/shell.js similarity index 100% rename from e2e/cypress/tests/support/shell.js rename to e2e-tests/cypress/tests/support/shell.js diff --git a/e2e/cypress/tests/support/task_commands.ts b/e2e-tests/cypress/tests/support/task_commands.ts similarity index 100% rename from e2e/cypress/tests/support/task_commands.ts rename to e2e-tests/cypress/tests/support/task_commands.ts diff --git a/e2e/cypress/tests/support/ui/account_settings_modal.d.ts b/e2e-tests/cypress/tests/support/ui/account_settings_modal.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/account_settings_modal.d.ts rename to e2e-tests/cypress/tests/support/ui/account_settings_modal.d.ts diff --git a/e2e/cypress/tests/support/ui/account_settings_modal.js b/e2e-tests/cypress/tests/support/ui/account_settings_modal.js similarity index 100% rename from e2e/cypress/tests/support/ui/account_settings_modal.js rename to e2e-tests/cypress/tests/support/ui/account_settings_modal.js diff --git a/e2e/cypress/tests/support/ui/announcement_bar.d.ts b/e2e-tests/cypress/tests/support/ui/announcement_bar.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/announcement_bar.d.ts rename to e2e-tests/cypress/tests/support/ui/announcement_bar.d.ts diff --git a/e2e/cypress/tests/support/ui/announcement_bar.js b/e2e-tests/cypress/tests/support/ui/announcement_bar.js similarity index 100% rename from e2e/cypress/tests/support/ui/announcement_bar.js rename to e2e-tests/cypress/tests/support/ui/announcement_bar.js diff --git a/e2e/cypress/tests/support/ui/boards.d.ts b/e2e-tests/cypress/tests/support/ui/boards.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/boards.d.ts rename to e2e-tests/cypress/tests/support/ui/boards.d.ts diff --git a/e2e/cypress/tests/support/ui/boards.js b/e2e-tests/cypress/tests/support/ui/boards.js similarity index 100% rename from e2e/cypress/tests/support/ui/boards.js rename to e2e-tests/cypress/tests/support/ui/boards.js diff --git a/e2e/cypress/tests/support/ui/channel.d.ts b/e2e-tests/cypress/tests/support/ui/channel.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/channel.d.ts rename to e2e-tests/cypress/tests/support/ui/channel.d.ts diff --git a/e2e/cypress/tests/support/ui/channel.js b/e2e-tests/cypress/tests/support/ui/channel.js similarity index 100% rename from e2e/cypress/tests/support/ui/channel.js rename to e2e-tests/cypress/tests/support/ui/channel.js diff --git a/e2e/cypress/tests/support/ui/channel_header.d.ts b/e2e-tests/cypress/tests/support/ui/channel_header.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/channel_header.d.ts rename to e2e-tests/cypress/tests/support/ui/channel_header.d.ts diff --git a/e2e/cypress/tests/support/ui/channel_header.js b/e2e-tests/cypress/tests/support/ui/channel_header.js similarity index 100% rename from e2e/cypress/tests/support/ui/channel_header.js rename to e2e-tests/cypress/tests/support/ui/channel_header.js diff --git a/e2e/cypress/tests/support/ui/channel_sidebar.js b/e2e-tests/cypress/tests/support/ui/channel_sidebar.js similarity index 100% rename from e2e/cypress/tests/support/ui/channel_sidebar.js rename to e2e-tests/cypress/tests/support/ui/channel_sidebar.js diff --git a/e2e/cypress/tests/support/ui/cloud_billing.d.ts b/e2e-tests/cypress/tests/support/ui/cloud_billing.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/cloud_billing.d.ts rename to e2e-tests/cypress/tests/support/ui/cloud_billing.d.ts diff --git a/e2e/cypress/tests/support/ui/cloud_billing.js b/e2e-tests/cypress/tests/support/ui/cloud_billing.js similarity index 100% rename from e2e/cypress/tests/support/ui/cloud_billing.js rename to e2e-tests/cypress/tests/support/ui/cloud_billing.js diff --git a/e2e/cypress/tests/support/ui/common.d.ts b/e2e-tests/cypress/tests/support/ui/common.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/common.d.ts rename to e2e-tests/cypress/tests/support/ui/common.d.ts diff --git a/e2e/cypress/tests/support/ui/common.js b/e2e-tests/cypress/tests/support/ui/common.js similarity index 100% rename from e2e/cypress/tests/support/ui/common.js rename to e2e-tests/cypress/tests/support/ui/common.js diff --git a/e2e/cypress/tests/support/ui/compliance_export.d.ts b/e2e-tests/cypress/tests/support/ui/compliance_export.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/compliance_export.d.ts rename to e2e-tests/cypress/tests/support/ui/compliance_export.d.ts diff --git a/e2e/cypress/tests/support/ui/compliance_export.js b/e2e-tests/cypress/tests/support/ui/compliance_export.js similarity index 100% rename from e2e/cypress/tests/support/ui/compliance_export.js rename to e2e-tests/cypress/tests/support/ui/compliance_export.js diff --git a/e2e/cypress/tests/support/ui/data_retention.d.ts b/e2e-tests/cypress/tests/support/ui/data_retention.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/data_retention.d.ts rename to e2e-tests/cypress/tests/support/ui/data_retention.d.ts diff --git a/e2e/cypress/tests/support/ui/data_retention.js b/e2e-tests/cypress/tests/support/ui/data_retention.js similarity index 100% rename from e2e/cypress/tests/support/ui/data_retention.js rename to e2e-tests/cypress/tests/support/ui/data_retention.js diff --git a/e2e/cypress/tests/support/ui/emoji.ts b/e2e-tests/cypress/tests/support/ui/emoji.ts similarity index 100% rename from e2e/cypress/tests/support/ui/emoji.ts rename to e2e-tests/cypress/tests/support/ui/emoji.ts diff --git a/e2e/cypress/tests/support/ui/extend_testing_library.d.ts b/e2e-tests/cypress/tests/support/ui/extend_testing_library.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/extend_testing_library.d.ts rename to e2e-tests/cypress/tests/support/ui/extend_testing_library.d.ts diff --git a/e2e/cypress/tests/support/ui/extend_testing_library.js b/e2e-tests/cypress/tests/support/ui/extend_testing_library.js similarity index 100% rename from e2e/cypress/tests/support/ui/extend_testing_library.js rename to e2e-tests/cypress/tests/support/ui/extend_testing_library.js diff --git a/e2e/cypress/tests/support/ui/file_preview.d.ts b/e2e-tests/cypress/tests/support/ui/file_preview.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/file_preview.d.ts rename to e2e-tests/cypress/tests/support/ui/file_preview.d.ts diff --git a/e2e/cypress/tests/support/ui/file_preview.js b/e2e-tests/cypress/tests/support/ui/file_preview.js similarity index 100% rename from e2e/cypress/tests/support/ui/file_preview.js rename to e2e-tests/cypress/tests/support/ui/file_preview.js diff --git a/e2e/cypress/tests/support/ui/global_header.d.ts b/e2e-tests/cypress/tests/support/ui/global_header.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/global_header.d.ts rename to e2e-tests/cypress/tests/support/ui/global_header.d.ts diff --git a/e2e/cypress/tests/support/ui/global_header.js b/e2e-tests/cypress/tests/support/ui/global_header.js similarity index 100% rename from e2e/cypress/tests/support/ui/global_header.js rename to e2e-tests/cypress/tests/support/ui/global_header.js diff --git a/e2e/cypress/tests/support/ui/index.js b/e2e-tests/cypress/tests/support/ui/index.js similarity index 100% rename from e2e/cypress/tests/support/ui/index.js rename to e2e-tests/cypress/tests/support/ui/index.js diff --git a/e2e/cypress/tests/support/ui/login.d.ts b/e2e-tests/cypress/tests/support/ui/login.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/login.d.ts rename to e2e-tests/cypress/tests/support/ui/login.d.ts diff --git a/e2e/cypress/tests/support/ui/login.js b/e2e-tests/cypress/tests/support/ui/login.js similarity index 100% rename from e2e/cypress/tests/support/ui/login.js rename to e2e-tests/cypress/tests/support/ui/login.js diff --git a/e2e/cypress/tests/support/ui/menu.d.ts b/e2e-tests/cypress/tests/support/ui/menu.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/menu.d.ts rename to e2e-tests/cypress/tests/support/ui/menu.d.ts diff --git a/e2e/cypress/tests/support/ui/menu.js b/e2e-tests/cypress/tests/support/ui/menu.js similarity index 100% rename from e2e/cypress/tests/support/ui/menu.js rename to e2e-tests/cypress/tests/support/ui/menu.js diff --git a/e2e/cypress/tests/support/ui/mfa.d.ts b/e2e-tests/cypress/tests/support/ui/mfa.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/mfa.d.ts rename to e2e-tests/cypress/tests/support/ui/mfa.d.ts diff --git a/e2e/cypress/tests/support/ui/mfa.js b/e2e-tests/cypress/tests/support/ui/mfa.js similarity index 100% rename from e2e/cypress/tests/support/ui/mfa.js rename to e2e-tests/cypress/tests/support/ui/mfa.js diff --git a/e2e/cypress/tests/support/ui/modal.d.ts b/e2e-tests/cypress/tests/support/ui/modal.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/modal.d.ts rename to e2e-tests/cypress/tests/support/ui/modal.d.ts diff --git a/e2e/cypress/tests/support/ui/modal.js b/e2e-tests/cypress/tests/support/ui/modal.js similarity index 100% rename from e2e/cypress/tests/support/ui/modal.js rename to e2e-tests/cypress/tests/support/ui/modal.js diff --git a/e2e/cypress/tests/support/ui/playbooks.js b/e2e-tests/cypress/tests/support/ui/playbooks.js similarity index 100% rename from e2e/cypress/tests/support/ui/playbooks.js rename to e2e-tests/cypress/tests/support/ui/playbooks.js diff --git a/e2e/cypress/tests/support/ui/post.ts b/e2e-tests/cypress/tests/support/ui/post.ts similarity index 100% rename from e2e/cypress/tests/support/ui/post.ts rename to e2e-tests/cypress/tests/support/ui/post.ts diff --git a/e2e/cypress/tests/support/ui/post_dropdown_menu.d.ts b/e2e-tests/cypress/tests/support/ui/post_dropdown_menu.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/post_dropdown_menu.d.ts rename to e2e-tests/cypress/tests/support/ui/post_dropdown_menu.d.ts diff --git a/e2e/cypress/tests/support/ui/post_dropdown_menu.js b/e2e-tests/cypress/tests/support/ui/post_dropdown_menu.js similarity index 100% rename from e2e/cypress/tests/support/ui/post_dropdown_menu.js rename to e2e-tests/cypress/tests/support/ui/post_dropdown_menu.js diff --git a/e2e/cypress/tests/support/ui/search.js b/e2e-tests/cypress/tests/support/ui/search.js similarity index 100% rename from e2e/cypress/tests/support/ui/search.js rename to e2e-tests/cypress/tests/support/ui/search.js diff --git a/e2e/cypress/tests/support/ui/sidebar_left.ts b/e2e-tests/cypress/tests/support/ui/sidebar_left.ts similarity index 100% rename from e2e/cypress/tests/support/ui/sidebar_left.ts rename to e2e-tests/cypress/tests/support/ui/sidebar_left.ts diff --git a/e2e/cypress/tests/support/ui/sidebar_right.d.ts b/e2e-tests/cypress/tests/support/ui/sidebar_right.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/sidebar_right.d.ts rename to e2e-tests/cypress/tests/support/ui/sidebar_right.d.ts diff --git a/e2e/cypress/tests/support/ui/sidebar_right.js b/e2e-tests/cypress/tests/support/ui/sidebar_right.js similarity index 100% rename from e2e/cypress/tests/support/ui/sidebar_right.js rename to e2e-tests/cypress/tests/support/ui/sidebar_right.js diff --git a/e2e/cypress/tests/support/ui/suggestion_list.d.ts b/e2e-tests/cypress/tests/support/ui/suggestion_list.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/suggestion_list.d.ts rename to e2e-tests/cypress/tests/support/ui/suggestion_list.d.ts diff --git a/e2e/cypress/tests/support/ui/suggestion_list.js b/e2e-tests/cypress/tests/support/ui/suggestion_list.js similarity index 100% rename from e2e/cypress/tests/support/ui/suggestion_list.js rename to e2e-tests/cypress/tests/support/ui/suggestion_list.js diff --git a/e2e/cypress/tests/support/ui/system.d.ts b/e2e-tests/cypress/tests/support/ui/system.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/system.d.ts rename to e2e-tests/cypress/tests/support/ui/system.d.ts diff --git a/e2e/cypress/tests/support/ui/system.js b/e2e-tests/cypress/tests/support/ui/system.js similarity index 100% rename from e2e/cypress/tests/support/ui/system.js rename to e2e-tests/cypress/tests/support/ui/system.js diff --git a/e2e/cypress/tests/support/ui/team.js b/e2e-tests/cypress/tests/support/ui/team.js similarity index 100% rename from e2e/cypress/tests/support/ui/team.js rename to e2e-tests/cypress/tests/support/ui/team.js diff --git a/e2e/cypress/tests/support/ui/tooltip.d.ts b/e2e-tests/cypress/tests/support/ui/tooltip.d.ts similarity index 100% rename from e2e/cypress/tests/support/ui/tooltip.d.ts rename to e2e-tests/cypress/tests/support/ui/tooltip.d.ts diff --git a/e2e/cypress/tests/support/ui/tooltip.js b/e2e-tests/cypress/tests/support/ui/tooltip.js similarity index 100% rename from e2e/cypress/tests/support/ui/tooltip.js rename to e2e-tests/cypress/tests/support/ui/tooltip.js diff --git a/e2e/cypress/tests/support/ui_commands.ts b/e2e-tests/cypress/tests/support/ui_commands.ts similarity index 100% rename from e2e/cypress/tests/support/ui_commands.ts rename to e2e-tests/cypress/tests/support/ui_commands.ts diff --git a/e2e/cypress/tests/support/win.d.ts b/e2e-tests/cypress/tests/support/win.d.ts similarity index 100% rename from e2e/cypress/tests/support/win.d.ts rename to e2e-tests/cypress/tests/support/win.d.ts diff --git a/e2e/cypress/tests/types/index.ts b/e2e-tests/cypress/tests/types/index.ts similarity index 100% rename from e2e/cypress/tests/types/index.ts rename to e2e-tests/cypress/tests/types/index.ts diff --git a/e2e/cypress/tests/utils/admin_console.js b/e2e-tests/cypress/tests/utils/admin_console.js similarity index 100% rename from e2e/cypress/tests/utils/admin_console.js rename to e2e-tests/cypress/tests/utils/admin_console.js diff --git a/e2e/cypress/tests/utils/benchmark.js b/e2e-tests/cypress/tests/utils/benchmark.js similarity index 100% rename from e2e/cypress/tests/utils/benchmark.js rename to e2e-tests/cypress/tests/utils/benchmark.js diff --git a/e2e/cypress/tests/utils/config.js b/e2e-tests/cypress/tests/utils/config.js similarity index 100% rename from e2e/cypress/tests/utils/config.js rename to e2e-tests/cypress/tests/utils/config.js diff --git a/e2e/cypress/tests/utils/constants.js b/e2e-tests/cypress/tests/utils/constants.js similarity index 100% rename from e2e/cypress/tests/utils/constants.js rename to e2e-tests/cypress/tests/utils/constants.js diff --git a/e2e/cypress/tests/utils/email.js b/e2e-tests/cypress/tests/utils/email.js similarity index 100% rename from e2e/cypress/tests/utils/email.js rename to e2e-tests/cypress/tests/utils/email.js diff --git a/e2e/cypress/tests/utils/file.js b/e2e-tests/cypress/tests/utils/file.js similarity index 100% rename from e2e/cypress/tests/utils/file.js rename to e2e-tests/cypress/tests/utils/file.js diff --git a/e2e/cypress/tests/utils/index.js b/e2e-tests/cypress/tests/utils/index.js similarity index 100% rename from e2e/cypress/tests/utils/index.js rename to e2e-tests/cypress/tests/utils/index.js diff --git a/e2e/cypress/tests/utils/plugins.js b/e2e-tests/cypress/tests/utils/plugins.js similarity index 100% rename from e2e/cypress/tests/utils/plugins.js rename to e2e-tests/cypress/tests/utils/plugins.js diff --git a/e2e/cypress/tests/utils/timezone.js b/e2e-tests/cypress/tests/utils/timezone.js similarity index 100% rename from e2e/cypress/tests/utils/timezone.js rename to e2e-tests/cypress/tests/utils/timezone.js diff --git a/e2e/cypress/tsconfig.json b/e2e-tests/cypress/tsconfig.json similarity index 100% rename from e2e/cypress/tsconfig.json rename to e2e-tests/cypress/tsconfig.json diff --git a/e2e/cypress/utils/artifacts.js b/e2e-tests/cypress/utils/artifacts.js similarity index 100% rename from e2e/cypress/utils/artifacts.js rename to e2e-tests/cypress/utils/artifacts.js diff --git a/e2e/cypress/utils/constants.js b/e2e-tests/cypress/utils/constants.js similarity index 100% rename from e2e/cypress/utils/constants.js rename to e2e-tests/cypress/utils/constants.js diff --git a/e2e/cypress/utils/dashboard.js b/e2e-tests/cypress/utils/dashboard.js similarity index 100% rename from e2e/cypress/utils/dashboard.js rename to e2e-tests/cypress/utils/dashboard.js diff --git a/e2e/cypress/utils/even_distribution.js b/e2e-tests/cypress/utils/even_distribution.js similarity index 100% rename from e2e/cypress/utils/even_distribution.js rename to e2e-tests/cypress/utils/even_distribution.js diff --git a/e2e/cypress/utils/even_distribution.test.js b/e2e-tests/cypress/utils/even_distribution.test.js similarity index 100% rename from e2e/cypress/utils/even_distribution.test.js rename to e2e-tests/cypress/utils/even_distribution.test.js diff --git a/e2e/cypress/utils/file.js b/e2e-tests/cypress/utils/file.js similarity index 100% rename from e2e/cypress/utils/file.js rename to e2e-tests/cypress/utils/file.js diff --git a/e2e/cypress/utils/report.js b/e2e-tests/cypress/utils/report.js similarity index 100% rename from e2e/cypress/utils/report.js rename to e2e-tests/cypress/utils/report.js diff --git a/e2e/cypress/utils/test_cases.js b/e2e-tests/cypress/utils/test_cases.js similarity index 100% rename from e2e/cypress/utils/test_cases.js rename to e2e-tests/cypress/utils/test_cases.js diff --git a/e2e/cypress/utils/webhook_utils.js b/e2e-tests/cypress/utils/webhook_utils.js similarity index 100% rename from e2e/cypress/utils/webhook_utils.js rename to e2e-tests/cypress/utils/webhook_utils.js diff --git a/e2e/cypress/webhook_serve.js b/e2e-tests/cypress/webhook_serve.js similarity index 100% rename from e2e/cypress/webhook_serve.js rename to e2e-tests/cypress/webhook_serve.js diff --git a/e2e/playwright/.eslintignore b/e2e-tests/playwright/.eslintignore similarity index 100% rename from e2e/playwright/.eslintignore rename to e2e-tests/playwright/.eslintignore diff --git a/e2e/playwright/.eslintrc.json b/e2e-tests/playwright/.eslintrc.json similarity index 100% rename from e2e/playwright/.eslintrc.json rename to e2e-tests/playwright/.eslintrc.json diff --git a/e2e/playwright/.percy.yml b/e2e-tests/playwright/.percy.yml similarity index 100% rename from e2e/playwright/.percy.yml rename to e2e-tests/playwright/.percy.yml diff --git a/e2e/playwright/.prettierignore b/e2e-tests/playwright/.prettierignore similarity index 100% rename from e2e/playwright/.prettierignore rename to e2e-tests/playwright/.prettierignore diff --git a/e2e/playwright/.prettierrc.json b/e2e-tests/playwright/.prettierrc.json similarity index 100% rename from e2e/playwright/.prettierrc.json rename to e2e-tests/playwright/.prettierrc.json diff --git a/e2e/playwright/README.md b/e2e-tests/playwright/README.md similarity index 100% rename from e2e/playwright/README.md rename to e2e-tests/playwright/README.md diff --git a/e2e/playwright/global_setup.ts b/e2e-tests/playwright/global_setup.ts similarity index 100% rename from e2e/playwright/global_setup.ts rename to e2e-tests/playwright/global_setup.ts diff --git a/e2e/playwright/package-lock.json b/e2e-tests/playwright/package-lock.json similarity index 100% rename from e2e/playwright/package-lock.json rename to e2e-tests/playwright/package-lock.json diff --git a/e2e/playwright/package.json b/e2e-tests/playwright/package.json similarity index 100% rename from e2e/playwright/package.json rename to e2e-tests/playwright/package.json diff --git a/e2e/playwright/playwright.config.ts b/e2e-tests/playwright/playwright.config.ts similarity index 100% rename from e2e/playwright/playwright.config.ts rename to e2e-tests/playwright/playwright.config.ts diff --git a/e2e/playwright/sample.env b/e2e-tests/playwright/sample.env similarity index 100% rename from e2e/playwright/sample.env rename to e2e-tests/playwright/sample.env diff --git a/e2e/playwright/support/asset/mattermost-icon_128x128.png b/e2e-tests/playwright/support/asset/mattermost-icon_128x128.png similarity index 100% rename from e2e/playwright/support/asset/mattermost-icon_128x128.png rename to e2e-tests/playwright/support/asset/mattermost-icon_128x128.png diff --git a/e2e/playwright/support/browser_context.ts b/e2e-tests/playwright/support/browser_context.ts similarity index 100% rename from e2e/playwright/support/browser_context.ts rename to e2e-tests/playwright/support/browser_context.ts diff --git a/e2e/playwright/support/constant.ts b/e2e-tests/playwright/support/constant.ts similarity index 100% rename from e2e/playwright/support/constant.ts rename to e2e-tests/playwright/support/constant.ts diff --git a/e2e/playwright/support/flag.ts b/e2e-tests/playwright/support/flag.ts similarity index 100% rename from e2e/playwright/support/flag.ts rename to e2e-tests/playwright/support/flag.ts diff --git a/e2e/playwright/support/server/channel.ts b/e2e-tests/playwright/support/server/channel.ts similarity index 100% rename from e2e/playwright/support/server/channel.ts rename to e2e-tests/playwright/support/server/channel.ts diff --git a/e2e/playwright/support/server/client.ts b/e2e-tests/playwright/support/server/client.ts similarity index 100% rename from e2e/playwright/support/server/client.ts rename to e2e-tests/playwright/support/server/client.ts diff --git a/e2e/playwright/support/server/default_config.ts b/e2e-tests/playwright/support/server/default_config.ts similarity index 100% rename from e2e/playwright/support/server/default_config.ts rename to e2e-tests/playwright/support/server/default_config.ts diff --git a/e2e/playwright/support/server/index.ts b/e2e-tests/playwright/support/server/index.ts similarity index 100% rename from e2e/playwright/support/server/index.ts rename to e2e-tests/playwright/support/server/index.ts diff --git a/e2e/playwright/support/server/init.ts b/e2e-tests/playwright/support/server/init.ts similarity index 100% rename from e2e/playwright/support/server/init.ts rename to e2e-tests/playwright/support/server/init.ts diff --git a/e2e/playwright/support/server/team.ts b/e2e-tests/playwright/support/server/team.ts similarity index 100% rename from e2e/playwright/support/server/team.ts rename to e2e-tests/playwright/support/server/team.ts diff --git a/e2e/playwright/support/server/user.ts b/e2e-tests/playwright/support/server/user.ts similarity index 100% rename from e2e/playwright/support/server/user.ts rename to e2e-tests/playwright/support/server/user.ts diff --git a/e2e/playwright/support/test_action.ts b/e2e-tests/playwright/support/test_action.ts similarity index 100% rename from e2e/playwright/support/test_action.ts rename to e2e-tests/playwright/support/test_action.ts diff --git a/e2e/playwright/support/test_fixture.ts b/e2e-tests/playwright/support/test_fixture.ts similarity index 100% rename from e2e/playwright/support/test_fixture.ts rename to e2e-tests/playwright/support/test_fixture.ts diff --git a/e2e/playwright/support/ui/components/boards/create_modal.ts b/e2e-tests/playwright/support/ui/components/boards/create_modal.ts similarity index 100% rename from e2e/playwright/support/ui/components/boards/create_modal.ts rename to e2e-tests/playwright/support/ui/components/boards/create_modal.ts diff --git a/e2e/playwright/support/ui/components/boards/sidebar.ts b/e2e-tests/playwright/support/ui/components/boards/sidebar.ts similarity index 100% rename from e2e/playwright/support/ui/components/boards/sidebar.ts rename to e2e-tests/playwright/support/ui/components/boards/sidebar.ts diff --git a/e2e/playwright/support/ui/components/channels/app_bar.ts b/e2e-tests/playwright/support/ui/components/channels/app_bar.ts similarity index 100% rename from e2e/playwright/support/ui/components/channels/app_bar.ts rename to e2e-tests/playwright/support/ui/components/channels/app_bar.ts diff --git a/e2e/playwright/support/ui/components/channels/header.ts b/e2e-tests/playwright/support/ui/components/channels/header.ts similarity index 100% rename from e2e/playwright/support/ui/components/channels/header.ts rename to e2e-tests/playwright/support/ui/components/channels/header.ts diff --git a/e2e/playwright/support/ui/components/channels/post.ts b/e2e-tests/playwright/support/ui/components/channels/post.ts similarity index 100% rename from e2e/playwright/support/ui/components/channels/post.ts rename to e2e-tests/playwright/support/ui/components/channels/post.ts diff --git a/e2e/playwright/support/ui/components/channels/post_create.ts b/e2e-tests/playwright/support/ui/components/channels/post_create.ts similarity index 100% rename from e2e/playwright/support/ui/components/channels/post_create.ts rename to e2e-tests/playwright/support/ui/components/channels/post_create.ts diff --git a/e2e/playwright/support/ui/components/channels/sidebar_right.ts b/e2e-tests/playwright/support/ui/components/channels/sidebar_right.ts similarity index 100% rename from e2e/playwright/support/ui/components/channels/sidebar_right.ts rename to e2e-tests/playwright/support/ui/components/channels/sidebar_right.ts diff --git a/e2e/playwright/support/ui/components/global_header.ts b/e2e-tests/playwright/support/ui/components/global_header.ts similarity index 100% rename from e2e/playwright/support/ui/components/global_header.ts rename to e2e-tests/playwright/support/ui/components/global_header.ts diff --git a/e2e/playwright/support/ui/components/index.ts b/e2e-tests/playwright/support/ui/components/index.ts similarity index 100% rename from e2e/playwright/support/ui/components/index.ts rename to e2e-tests/playwright/support/ui/components/index.ts diff --git a/e2e/playwright/support/ui/pages/boards_create.ts b/e2e-tests/playwright/support/ui/pages/boards_create.ts similarity index 100% rename from e2e/playwright/support/ui/pages/boards_create.ts rename to e2e-tests/playwright/support/ui/pages/boards_create.ts diff --git a/e2e/playwright/support/ui/pages/boards_view.ts b/e2e-tests/playwright/support/ui/pages/boards_view.ts similarity index 100% rename from e2e/playwright/support/ui/pages/boards_view.ts rename to e2e-tests/playwright/support/ui/pages/boards_view.ts diff --git a/e2e/playwright/support/ui/pages/channels.ts b/e2e-tests/playwright/support/ui/pages/channels.ts similarity index 100% rename from e2e/playwright/support/ui/pages/channels.ts rename to e2e-tests/playwright/support/ui/pages/channels.ts diff --git a/e2e/playwright/support/ui/pages/index.ts b/e2e-tests/playwright/support/ui/pages/index.ts similarity index 100% rename from e2e/playwright/support/ui/pages/index.ts rename to e2e-tests/playwright/support/ui/pages/index.ts diff --git a/e2e/playwright/support/ui/pages/landing_login.ts b/e2e-tests/playwright/support/ui/pages/landing_login.ts similarity index 100% rename from e2e/playwright/support/ui/pages/landing_login.ts rename to e2e-tests/playwright/support/ui/pages/landing_login.ts diff --git a/e2e/playwright/support/ui/pages/login.ts b/e2e-tests/playwright/support/ui/pages/login.ts similarity index 100% rename from e2e/playwright/support/ui/pages/login.ts rename to e2e-tests/playwright/support/ui/pages/login.ts diff --git a/e2e/playwright/support/ui/pages/signup.ts b/e2e-tests/playwright/support/ui/pages/signup.ts similarity index 100% rename from e2e/playwright/support/ui/pages/signup.ts rename to e2e-tests/playwright/support/ui/pages/signup.ts diff --git a/e2e/playwright/support/util.ts b/e2e-tests/playwright/support/util.ts similarity index 100% rename from e2e/playwright/support/util.ts rename to e2e-tests/playwright/support/util.ts diff --git a/e2e/playwright/support/visual/index.ts b/e2e-tests/playwright/support/visual/index.ts similarity index 100% rename from e2e/playwright/support/visual/index.ts rename to e2e-tests/playwright/support/visual/index.ts diff --git a/e2e/playwright/support/visual/percy.ts b/e2e-tests/playwright/support/visual/percy.ts similarity index 100% rename from e2e/playwright/support/visual/percy.ts rename to e2e-tests/playwright/support/visual/percy.ts diff --git a/e2e/playwright/test.config.ts b/e2e-tests/playwright/test.config.ts similarity index 100% rename from e2e/playwright/test.config.ts rename to e2e-tests/playwright/test.config.ts diff --git a/e2e/playwright/tests/functional/boards/board-creation-and-set-up/create_empty_board.spec.ts b/e2e-tests/playwright/tests/functional/boards/board-creation-and-set-up/create_empty_board.spec.ts similarity index 100% rename from e2e/playwright/tests/functional/boards/board-creation-and-set-up/create_empty_board.spec.ts rename to e2e-tests/playwright/tests/functional/boards/board-creation-and-set-up/create_empty_board.spec.ts diff --git a/e2e/playwright/tests/visual/boards/board_template.spec.ts b/e2e-tests/playwright/tests/visual/boards/board_template.spec.ts similarity index 100% rename from e2e/playwright/tests/visual/boards/board_template.spec.ts rename to e2e-tests/playwright/tests/visual/boards/board_template.spec.ts diff --git a/e2e/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-chrome-linux.png b/e2e-tests/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-chrome-linux.png similarity index 100% rename from e2e/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-chrome-linux.png rename to e2e-tests/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-chrome-linux.png diff --git a/e2e/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-firefox-linux.png b/e2e-tests/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-firefox-linux.png similarity index 100% rename from e2e/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-firefox-linux.png rename to e2e-tests/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-firefox-linux.png diff --git a/e2e/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-ipad-linux.png b/e2e-tests/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-ipad-linux.png similarity index 100% rename from e2e/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-ipad-linux.png rename to e2e-tests/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-ipad-linux.png diff --git a/e2e/playwright/tests/visual/boards/view_untitled_board.spec.ts b/e2e-tests/playwright/tests/visual/boards/view_untitled_board.spec.ts similarity index 100% rename from e2e/playwright/tests/visual/boards/view_untitled_board.spec.ts rename to e2e-tests/playwright/tests/visual/boards/view_untitled_board.spec.ts diff --git a/e2e/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-chrome-linux.png b/e2e-tests/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-chrome-linux.png similarity index 100% rename from e2e/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-chrome-linux.png rename to e2e-tests/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-chrome-linux.png diff --git a/e2e/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-firefox-linux.png b/e2e-tests/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-firefox-linux.png similarity index 100% rename from e2e/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-firefox-linux.png rename to e2e-tests/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-firefox-linux.png diff --git a/e2e/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-ipad-linux.png b/e2e-tests/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-ipad-linux.png similarity index 100% rename from e2e/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-ipad-linux.png rename to e2e-tests/playwright/tests/visual/boards/view_untitled_board.spec.ts-snapshots/view-untitled-board-ipad-linux.png diff --git a/e2e/playwright/tests/visual/channels/intro_channel.spec.ts b/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts similarity index 100% rename from e2e/playwright/tests/visual/channels/intro_channel.spec.ts rename to e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts diff --git a/e2e/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png b/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png similarity index 100% rename from e2e/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png rename to e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-chrome-linux.png diff --git a/e2e/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-firefox-linux.png b/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-firefox-linux.png similarity index 100% rename from e2e/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-firefox-linux.png rename to e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-firefox-linux.png diff --git a/e2e/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-ipad-linux.png b/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-ipad-linux.png similarity index 100% rename from e2e/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-ipad-linux.png rename to e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-ipad-linux.png diff --git a/e2e/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-iphone-linux.png b/e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-iphone-linux.png similarity index 100% rename from e2e/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-iphone-linux.png rename to e2e-tests/playwright/tests/visual/channels/intro_channel.spec.ts-snapshots/intro-to-channel-as-regular-user-iphone-linux.png diff --git a/e2e/playwright/tests/visual/common/landing_page.spec.ts b/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts similarity index 100% rename from e2e/playwright/tests/visual/common/landing_page.spec.ts rename to e2e-tests/playwright/tests/visual/common/landing_page.spec.ts diff --git a/e2e/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-chrome-linux.png b/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-chrome-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-chrome-linux.png rename to e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-chrome-linux.png diff --git a/e2e/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-firefox-linux.png b/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-firefox-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-firefox-linux.png rename to e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-firefox-linux.png diff --git a/e2e/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-ipad-linux.png b/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-ipad-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-ipad-linux.png rename to e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-ipad-linux.png diff --git a/e2e/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-iphone-linux.png b/e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-iphone-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-iphone-linux.png rename to e2e-tests/playwright/tests/visual/common/landing_page.spec.ts-snapshots/landing-login-iphone-linux.png diff --git a/e2e/playwright/tests/visual/common/login.spec.ts b/e2e-tests/playwright/tests/visual/common/login.spec.ts similarity index 100% rename from e2e/playwright/tests/visual/common/login.spec.ts rename to e2e-tests/playwright/tests/visual/common/login.spec.ts diff --git a/e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-chrome-linux.png b/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-chrome-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-chrome-linux.png rename to e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-chrome-linux.png diff --git a/e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-chrome-linux.png b/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-chrome-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-chrome-linux.png rename to e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-chrome-linux.png diff --git a/e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-firefox-linux.png b/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-firefox-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-firefox-linux.png rename to e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-firefox-linux.png diff --git a/e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-ipad-linux.png b/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-ipad-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-ipad-linux.png rename to e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-ipad-linux.png diff --git a/e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-iphone-linux.png b/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-iphone-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-iphone-linux.png rename to e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-error-iphone-linux.png diff --git a/e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-firefox-linux.png b/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-firefox-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-firefox-linux.png rename to e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-firefox-linux.png diff --git a/e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-ipad-linux.png b/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-ipad-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-ipad-linux.png rename to e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-ipad-linux.png diff --git a/e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-iphone-linux.png b/e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-iphone-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/login.spec.ts-snapshots/login-iphone-linux.png rename to e2e-tests/playwright/tests/visual/common/login.spec.ts-snapshots/login-iphone-linux.png diff --git a/e2e/playwright/tests/visual/common/signup_email.spec.ts b/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts similarity index 100% rename from e2e/playwright/tests/visual/common/signup_email.spec.ts rename to e2e-tests/playwright/tests/visual/common/signup_email.spec.ts diff --git a/e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-chrome-linux.png b/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-chrome-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-chrome-linux.png rename to e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-chrome-linux.png diff --git a/e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-chrome-linux.png b/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-chrome-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-chrome-linux.png rename to e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-chrome-linux.png diff --git a/e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-firefox-linux.png b/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-firefox-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-firefox-linux.png rename to e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-firefox-linux.png diff --git a/e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-ipad-linux.png b/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-ipad-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-ipad-linux.png rename to e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-ipad-linux.png diff --git a/e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-iphone-linux.png b/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-iphone-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-iphone-linux.png rename to e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-error-iphone-linux.png diff --git a/e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-firefox-linux.png b/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-firefox-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-firefox-linux.png rename to e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-firefox-linux.png diff --git a/e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-ipad-linux.png b/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-ipad-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-ipad-linux.png rename to e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-ipad-linux.png diff --git a/e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-iphone-linux.png b/e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-iphone-linux.png similarity index 100% rename from e2e/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-iphone-linux.png rename to e2e-tests/playwright/tests/visual/common/signup_email.spec.ts-snapshots/signup-email-iphone-linux.png diff --git a/e2e/playwright/tsconfig.json b/e2e-tests/playwright/tsconfig.json similarity index 100% rename from e2e/playwright/tsconfig.json rename to e2e-tests/playwright/tsconfig.json diff --git a/model/config.go b/model/config.go index b5272d5f1f..6c5306950d 100644 --- a/model/config.go +++ b/model/config.go @@ -1624,7 +1624,6 @@ type EmailSettings struct { LoginButtonColor *string `access:"experimental_features"` LoginButtonBorderColor *string `access:"experimental_features"` LoginButtonTextColor *string `access:"experimental_features"` - EnableInactivityEmail *bool } func (s *EmailSettings) SetDefaults(isUpdate bool) { @@ -1767,10 +1766,6 @@ func (s *EmailSettings) SetDefaults(isUpdate bool) { if s.LoginButtonTextColor == nil { s.LoginButtonTextColor = NewString("#2389D7") } - - if s.EnableInactivityEmail == nil { - s.EnableInactivityEmail = NewBool(true) - } } type RateLimitSettings struct { @@ -2872,21 +2867,11 @@ func (s *PluginSettings) SetDefaults(ls LogSettings) { s.PluginStates[PluginIdNPS] = &PluginState{Enable: ls.EnableDiagnostics == nil || *ls.EnableDiagnostics} } - if s.PluginStates[PluginIdPlaybooks] == nil { - // Enable the playbooks plugin by default - s.PluginStates[PluginIdPlaybooks] = &PluginState{Enable: true} - } - if s.PluginStates[PluginIdChannelExport] == nil && BuildEnterpriseReady == "true" { // Enable the channel export plugin by default s.PluginStates[PluginIdChannelExport] = &PluginState{Enable: true} } - if s.PluginStates[PluginIdFocalboard] == nil { - // Enable the focalboard plugin by default - s.PluginStates[PluginIdFocalboard] = &PluginState{Enable: true} - } - if s.PluginStates[PluginIdApps] == nil { // Enable the Apps plugin by default s.PluginStates[PluginIdApps] = &PluginState{Enable: true} diff --git a/model/feature_flags.go b/model/feature_flags.go index 86bb298e5b..ebe357d3d9 100644 --- a/model/feature_flags.go +++ b/model/feature_flags.go @@ -41,8 +41,6 @@ type FeatureFlags struct { NormalizeLdapDNs bool - EnableInactivityCheckJob bool - // Enable special onboarding flow for first admin UseCaseOnboarding bool @@ -92,7 +90,6 @@ func (f *FeatureFlags) SetDefaults() { f.BoardsFeatureFlags = "" f.BoardsDataRetention = false f.NormalizeLdapDNs = false - f.EnableInactivityCheckJob = true f.UseCaseOnboarding = true f.GraphQL = false f.InsightsEnabled = true diff --git a/server/channels/api4/config.go b/server/channels/api4/config.go index e1875e26bc..042636b17e 100644 --- a/server/channels/api4/config.go +++ b/server/channels/api4/config.go @@ -157,11 +157,6 @@ func updateConfig(c *Context, w http.ResponseWriter, r *http.Request) { *cfg.PluginSettings.MarketplaceURL = *appCfg.PluginSettings.MarketplaceURL } - if cfg.PluginSettings.PluginStates[model.PluginIdFocalboard].Enable && cfg.FeatureFlags.BoardsProduct { - c.Err = model.NewAppError("EnablePlugin", "app.plugin.product_mode.app_error", map[string]any{"Name": model.PluginIdFocalboard}, "", http.StatusInternalServerError) - return - } - // There are some settings that cannot be changed in a cloud env if c.App.Channels().License().IsCloud() { // Both of them cannot be nil since cfg.SetDefaults is called earlier for cfg, diff --git a/server/channels/app/email/email.go b/server/channels/app/email/email.go index 4444f42e5d..bb64e6efd0 100644 --- a/server/channels/app/email/email.go +++ b/server/channels/app/email/email.go @@ -11,8 +11,6 @@ import ( "io" "net/http" "net/url" - "os" - "strconv" "strings" "github.com/pkg/errors" @@ -26,8 +24,6 @@ import ( "github.com/microcosm-cc/bluemonday" ) -const serverInactivityHours = 100 - // Returns category if enabled is true (default false) // If "" is returned when enabled is false, the category headers aren't attached to the email func getSendGridCategory(category string, enabled bool) string { @@ -948,48 +944,6 @@ func (es *Service) CreateVerifyEmailToken(userID string, newEmail string) (*mode return token, nil } -func (es *Service) SendLicenseInactivityEmail(email, name, locale, siteURL string) error { - T := i18n.GetUserTranslations(locale) - subject := T("api.templates.server_inactivity_subject") - data := es.NewEmailTemplateData(locale) - data.Props["SiteURL"] = siteURL - data.Props["Title"] = T("api.templates.server_inactivity_title") - data.Props["SubTitle"] = T("api.templates.server_inactivity_subtitle", map[string]any{"Name": name}) - data.Props["InfoBullet"] = T("api.templates.server_inactivity_info_bullet") - data.Props["InfoBullet1"] = T("api.templates.server_inactivity_info_bullet1") - data.Props["InfoBullet2"] = T("api.templates.server_inactivity_info_bullet2") - data.Props["Info"] = T("api.templates.server_inactivity_info") - data.Props["EmailUs"] = T("api.templates.email_us_anytime_at") - data.Props["QuestionTitle"] = T("api.templates.questions_footer.title") - data.Props["QuestionInfo"] = T("api.templates.questions_footer.info") - data.Props["Button"] = T("api.templates.server_inactivity_button") - data.Props["SupportEmail"] = "feedback@mattermost.com" - data.Props["ButtonURL"] = siteURL - data.Props["Channels"] = T("Channels") - data.Props["Playbooks"] = T("Playbooks") - data.Props["Boards"] = T("Boards") - - inactivityDurationHoursEnv := os.Getenv("MM_INACTIVITY_DURATION") - inactivityDurationHours, parseError := strconv.ParseFloat(inactivityDurationHoursEnv, 64) - if parseError != nil { - // default to 100 hours - inactivityDurationHours = serverInactivityHours - } - - data.Props["FooterDisclaimer"] = T("api.templates.server_inactivity_footer_disclaimer", map[string]any{"Hours": inactivityDurationHours}) - - body, err := es.templatesContainer.RenderToString("inactivity_body", data) - if err != nil { - return err - } - - if err := es.sendMail(email, subject, body, "LicenseInactivityEmail"); err != nil { - return err - } - - return nil -} - func (es *Service) SendLicenseUpForRenewalEmail(email, name, locale, siteURL, ctaTitle, ctaLink, ctaText string, daysToExpiration int) error { T := i18n.GetUserTranslations(locale) subject := T("api.templates.license_up_for_renewal_subject") diff --git a/server/channels/app/email/email_test.go b/server/channels/app/email/email_test.go index d8b22431fc..3fb2e09a7a 100644 --- a/server/channels/app/email/email_test.go +++ b/server/channels/app/email/email_test.go @@ -408,7 +408,6 @@ func TestMailServiceConfig(t *testing.T) { LoginButtonColor: new(string), LoginButtonBorderColor: new(string), LoginButtonTextColor: new(string), - EnableInactivityEmail: new(bool), }, } }, diff --git a/server/channels/app/email/mocks/ServiceInterface.go b/server/channels/app/email/mocks/ServiceInterface.go index b86365846a..e4d4011f45 100644 --- a/server/channels/app/email/mocks/ServiceInterface.go +++ b/server/channels/app/email/mocks/ServiceInterface.go @@ -344,20 +344,6 @@ func (_m *ServiceInterface) SendInviteEmailsToTeamAndChannels(team *model.Team, return r0, r1 } -// SendLicenseInactivityEmail provides a mock function with given fields: _a0, name, locale, siteURL -func (_m *ServiceInterface) SendLicenseInactivityEmail(_a0 string, name string, locale string, siteURL string) error { - ret := _m.Called(_a0, name, locale, siteURL) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string, string, string) error); ok { - r0 = rf(_a0, name, locale, siteURL) - } else { - r0 = ret.Error(0) - } - - return r0 -} - // SendLicenseUpForRenewalEmail provides a mock function with given fields: _a0, name, locale, siteURL, ctaTitle, ctaLink, ctaText, daysToExpiration func (_m *ServiceInterface) SendLicenseUpForRenewalEmail(_a0 string, name string, locale string, siteURL string, ctaTitle string, ctaLink string, ctaText string, daysToExpiration int) error { ret := _m.Called(_a0, name, locale, siteURL, ctaTitle, ctaLink, ctaText, daysToExpiration) diff --git a/server/channels/app/email/service.go b/server/channels/app/email/service.go index f5f186c168..3aa0b658f4 100644 --- a/server/channels/app/email/service.go +++ b/server/channels/app/email/service.go @@ -163,7 +163,6 @@ type ServiceInterface interface { InitEmailBatching() SendChangeUsernameEmail(newUsername, email, locale, siteURL string) error CreateVerifyEmailToken(userID string, newEmail string) (*model.Token, error) - SendLicenseInactivityEmail(email, name, locale, siteURL string) error Stop() } diff --git a/server/channels/app/platform/web_conn.go b/server/channels/app/platform/web_conn.go index 02b8cd8687..ac72c98cdf 100644 --- a/server/channels/app/platform/web_conn.go +++ b/server/channels/app/platform/web_conn.go @@ -27,15 +27,16 @@ import ( ) const ( - sendQueueSize = 256 - sendSlowWarn = (sendQueueSize * 50) / 100 - sendFullWarn = (sendQueueSize * 95) / 100 - writeWaitTime = 30 * time.Second - pongWaitTime = 100 * time.Second - pingInterval = (pongWaitTime * 6) / 10 - authCheckInterval = 5 * time.Second - webConnMemberCacheTime = 1000 * 60 * 30 // 30 minutes - deadQueueSize = 128 // Approximated from /proc/sys/net/core/wmem_default / 2048 (avg msg size) + sendQueueSize = 256 + sendSlowWarn = (sendQueueSize * 50) / 100 + sendFullWarn = (sendQueueSize * 95) / 100 + writeWaitTime = 30 * time.Second + pongWaitTime = 100 * time.Second + pingInterval = (pongWaitTime * 6) / 10 + authCheckInterval = 5 * time.Second + webConnMemberCacheTime = 1000 * 60 * 30 // 30 minutes + deadQueueSize = 128 // Approximated from /proc/sys/net/core/wmem_default / 2048 (avg msg size) + websocketSuppressWarnThreshold = time.Minute ) const ( @@ -112,6 +113,13 @@ type WebConn struct { endWritePump chan struct{} pumpFinished chan struct{} pluginPosted chan pluginWSPostedHook + + // These counters are to suppress spammy websocket.slow + // and websocket.full logs which happen continuously, if they + // do happen. To improve the situation, we log them only once + // per minute. + lastLogTimeSlow time.Time + lastLogTimeFull time.Time } // CheckConnResult indicates whether a connectionID was present in the hub or not. @@ -215,6 +223,8 @@ func (ps *PlatformService) NewWebConn(cfg *WebConnConfig, suite SuiteIFace, runn endWritePump: make(chan struct{}), pumpFinished: make(chan struct{}), pluginPosted: make(chan pluginWSPostedHook, 10), + lastLogTimeSlow: time.Now(), + lastLogTimeFull: time.Now(), } wc.SetSession(&cfg.Session) @@ -460,7 +470,7 @@ func (wc *WebConn) writePump() { continue } - if len(wc.send) >= sendFullWarn { + if len(wc.send) >= sendFullWarn && time.Since(wc.lastLogTimeFull) > websocketSuppressWarnThreshold { logData := []mlog.Field{ mlog.String("user_id", wc.UserId), mlog.String("type", msg.EventType()), @@ -471,6 +481,7 @@ func (wc *WebConn) writePump() { } mlog.Warn("websocket.full", logData...) + wc.lastLogTimeFull = time.Now() } if evtOk { @@ -711,11 +722,15 @@ func (wc *WebConn) ShouldSendEvent(msg *model.WebSocketEvent) bool { case model.WebsocketEventTyping, model.WebsocketEventStatusChange, model.WebsocketEventChannelViewed: - mlog.Warn( - "websocket.slow: dropping message", - mlog.String("user_id", wc.UserId), - mlog.String("type", msg.EventType()), - ) + if time.Since(wc.lastLogTimeSlow) > websocketSuppressWarnThreshold { + mlog.Warn( + "websocket.slow: dropping message", + mlog.String("user_id", wc.UserId), + mlog.String("type", msg.EventType()), + ) + // Reset timer to now. + wc.lastLogTimeSlow = time.Now() + } return false } } diff --git a/server/channels/app/server.go b/server/channels/app/server.go index c416089792..6197c6c55b 100644 --- a/server/channels/app/server.go +++ b/server/channels/app/server.go @@ -484,7 +484,6 @@ func NewServer(options ...Option) (*Server, error) { s.Go(func() { appInstance := New(ServerConnector(s.Channels())) s.runLicenseExpirationCheckJob() - s.runInactivityCheckJob() runDNDStatusExpireJob(appInstance) runPostReminderJob(appInstance) }) @@ -1198,12 +1197,6 @@ func runConfigCleanupJob(s *Server) { }, time.Hour*24) } -func (s *Server) runInactivityCheckJob() { - model.CreateRecurringTask("Server inactivity Check", func() { - s.doInactivityCheck() - }, time.Hour*24) -} - func (s *Server) runLicenseExpirationCheckJob() { s.doLicenseExpirationCheck() model.CreateRecurringTask("License Expiration Check", func() { diff --git a/server/channels/app/server_inactivity.go b/server/channels/app/server_inactivity.go deleted file mode 100644 index a1693069fb..0000000000 --- a/server/channels/app/server_inactivity.go +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -package app - -import ( - "os" - "strconv" - "time" - - "github.com/mattermost/mattermost-server/v6/model" - "github.com/mattermost/mattermost-server/v6/server/platform/shared/mlog" -) - -const serverInactivityHours = 100 -const inactivityEmailSent = "INACTIVITY" - -func (s *Server) doInactivityCheck() { - - if *s.platform.Config().ServiceSettings.EnableDeveloper { - mlog.Info("No activity check because developer mode is enabled") - return - } - - if !*s.platform.Config().EmailSettings.EnableInactivityEmail { - mlog.Info("No activity check because EnableInactivityEmail is false") - return - } - - if !s.platform.Config().FeatureFlags.EnableInactivityCheckJob { - mlog.Info("No activity check because EnableInactivityCheckJob feature flag is disabled") - return - } - - _, sysValErr := s.Store().System().GetByName(inactivityEmailSent) - // if there is no error which may include *store.ErrNotFound, it means this check was already flagged as done - if sysValErr == nil { - return - } - - inactivityDurationHoursEnv := os.Getenv("MM_INACTIVITY_DURATION") - inactivityDurationHours, parseError := strconv.ParseFloat(inactivityDurationHoursEnv, 64) - if parseError != nil { - // default to 100 hours - inactivityDurationHours = serverInactivityHours - } - - // The first time this job runs. We check if the user has not made any posts in last inactivityDurationHours - // and remind them to use the workspace. If no posts have been made. We check the last time - // they logged in (session) for the last inactivityDurationHours and send a reminder. - lastPostAt, _ := s.Store().Post().GetLastPostRowCreateAt() - if lastPostAt != 0 { - posT := time.Unix(lastPostAt/1000, 0) - timeForLastPost := time.Since(posT).Hours() - if timeForLastPost > inactivityDurationHours { - s.takeInactivityAction() - } - return - } - - lastSessionAt, _ := s.Store().Session().GetLastSessionRowCreateAt() - if lastSessionAt != 0 { - sesT := time.Unix(lastSessionAt/1000, 0) - timeForLastSession := time.Since(sesT).Hours() - if timeForLastSession > inactivityDurationHours { - s.takeInactivityAction() - } - return - } -} - -func (s *Server) takeInactivityAction() { - siteURL := *s.platform.Config().ServiceSettings.SiteURL - if siteURL == "" { - mlog.Warn("No SiteURL configured") - } - - properties := map[string]any{ - "SiteURL": siteURL, - } - s.GetTelemetryService().SendTelemetry("inactive_server", properties) - users, err := s.Store().User().GetSystemAdminProfiles() - if err != nil { - mlog.Error("Failed to get system admins for inactivity check from Mattermost.") - return - } - - for _, user := range users { - - // See https://go.dev/doc/faq#closures_and_goroutines for why we make this assignment - user := user - - if user.Email == "" { - mlog.Error("Invalid system admin email.", mlog.String("user_email", user.Email)) - continue - } - - name := user.FirstName - if name == "" { - name = user.Username - } - - mlog.Debug("Sending inactivity reminder email.", mlog.String("user_email", user.Email)) - s.Go(func() { - if err := s.EmailService.SendLicenseInactivityEmail(user.Email, name, user.Locale, siteURL); err != nil { - mlog.Error("Error while sending inactivity reminder email.", mlog.String("user_email", user.Email), mlog.Err(err)) - } - }) - } - - // Mark that we sent emails. - sysVar := &model.System{Name: inactivityEmailSent, Value: "true"} - if err := s.Store().System().SaveOrUpdate(sysVar); err != nil { - mlog.Error("Unable to save INACTIVITY", mlog.Err(err)) - } - - // do some telemetry about sending the email - s.GetTelemetryService().SendTelemetry("inactive_server_emails_sent", properties) -} diff --git a/server/channels/store/opentracinglayer/opentracinglayer.go b/server/channels/store/opentracinglayer/opentracinglayer.go index 1f7d408365..15d32a18e2 100644 --- a/server/channels/store/opentracinglayer/opentracinglayer.go +++ b/server/channels/store/opentracinglayer/opentracinglayer.go @@ -6057,24 +6057,6 @@ func (s *OpenTracingLayerPostStore) GetFlaggedPostsForTeam(userID string, teamID return result, err } -func (s *OpenTracingLayerPostStore) GetLastPostRowCreateAt() (int64, error) { - origCtx := s.Root.Store.Context() - span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "PostStore.GetLastPostRowCreateAt") - s.Root.Store.SetContext(newCtx) - defer func() { - s.Root.Store.SetContext(origCtx) - }() - - defer span.Finish() - result, err := s.PostStore.GetLastPostRowCreateAt() - if err != nil { - span.LogFields(spanlog.Error(err)) - ext.Error.Set(span, true) - } - - return result, err -} - func (s *OpenTracingLayerPostStore) GetMaxPostSize() int { origCtx := s.Root.Store.Context() span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "PostStore.GetMaxPostSize") @@ -8171,24 +8153,6 @@ func (s *OpenTracingLayerSessionStore) Get(ctx context.Context, sessionIDOrToken return result, err } -func (s *OpenTracingLayerSessionStore) GetLastSessionRowCreateAt() (int64, error) { - origCtx := s.Root.Store.Context() - span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "SessionStore.GetLastSessionRowCreateAt") - s.Root.Store.SetContext(newCtx) - defer func() { - s.Root.Store.SetContext(origCtx) - }() - - defer span.Finish() - result, err := s.SessionStore.GetLastSessionRowCreateAt() - if err != nil { - span.LogFields(spanlog.Error(err)) - ext.Error.Set(span, true) - } - - return result, err -} - func (s *OpenTracingLayerSessionStore) GetSessions(userID string) ([]*model.Session, error) { origCtx := s.Root.Store.Context() span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "SessionStore.GetSessions") diff --git a/server/channels/store/retrylayer/retrylayer.go b/server/channels/store/retrylayer/retrylayer.go index 121a769248..07997b61ac 100644 --- a/server/channels/store/retrylayer/retrylayer.go +++ b/server/channels/store/retrylayer/retrylayer.go @@ -6856,27 +6856,6 @@ func (s *RetryLayerPostStore) GetFlaggedPostsForTeam(userID string, teamID strin } -func (s *RetryLayerPostStore) GetLastPostRowCreateAt() (int64, error) { - - tries := 0 - for { - result, err := s.PostStore.GetLastPostRowCreateAt() - if err == nil { - return result, nil - } - if !isRepeatableError(err) { - return result, err - } - tries++ - if tries >= 3 { - err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures") - return result, err - } - timepkg.Sleep(100 * timepkg.Millisecond) - } - -} - func (s *RetryLayerPostStore) GetMaxPostSize() int { return s.PostStore.GetMaxPostSize() @@ -9304,27 +9283,6 @@ func (s *RetryLayerSessionStore) Get(ctx context.Context, sessionIDOrToken strin } -func (s *RetryLayerSessionStore) GetLastSessionRowCreateAt() (int64, error) { - - tries := 0 - for { - result, err := s.SessionStore.GetLastSessionRowCreateAt() - if err == nil { - return result, nil - } - if !isRepeatableError(err) { - return result, err - } - tries++ - if tries >= 3 { - err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures") - return result, err - } - timepkg.Sleep(100 * timepkg.Millisecond) - } - -} - func (s *RetryLayerSessionStore) GetSessions(userID string) ([]*model.Session, error) { tries := 0 diff --git a/server/channels/store/sqlstore/post_store.go b/server/channels/store/sqlstore/post_store.go index c07c51a3cd..85854fdb90 100644 --- a/server/channels/store/sqlstore/post_store.go +++ b/server/channels/store/sqlstore/post_store.go @@ -2300,17 +2300,6 @@ func (s *SqlPostStore) AnalyticsPostCount(options *model.PostCountOptions) (int6 return v, nil } -func (s *SqlPostStore) GetLastPostRowCreateAt() (int64, error) { - query := `SELECT CREATEAT FROM Posts ORDER BY CREATEAT DESC LIMIT 1` - var createAt int64 - err := s.GetReplicaX().Get(&createAt, query) - if err != nil { - return 0, errors.Wrapf(err, "failed to get last post createat") - } - - return createAt, nil -} - func (s *SqlPostStore) GetPostsCreatedAt(channelId string, time int64) ([]*model.Post, error) { query := `SELECT * FROM Posts WHERE CreateAt = ? AND ChannelId = ?` diff --git a/server/channels/store/sqlstore/session_store.go b/server/channels/store/sqlstore/session_store.go index afe15e183e..851336dbc6 100644 --- a/server/channels/store/sqlstore/session_store.go +++ b/server/channels/store/sqlstore/session_store.go @@ -221,17 +221,6 @@ func (me SqlSessionStore) UpdateExpiresAt(sessionId string, time int64) error { return nil } -func (me *SqlSessionStore) GetLastSessionRowCreateAt() (int64, error) { - query := `SELECT CREATEAT FROM Sessions ORDER BY CREATEAT DESC LIMIT 1` - var createAt int64 - err := me.GetReplicaX().Get(&createAt, query) - if err != nil { - return 0, errors.Wrapf(err, "failed to get last session createat") - } - - return createAt, nil -} - func (me SqlSessionStore) UpdateLastActivityAt(sessionId string, time int64) error { _, err := me.GetMasterX().Exec("UPDATE Sessions SET LastActivityAt = ? WHERE Id = ?", time, sessionId) if err != nil { diff --git a/server/channels/store/store.go b/server/channels/store/store.go index 1ac231cb06..dec4fa0f89 100644 --- a/server/channels/store/store.go +++ b/server/channels/store/store.go @@ -381,7 +381,6 @@ type PostStore interface { AnalyticsPostCount(options *model.PostCountOptions) (int64, error) ClearCaches() InvalidateLastPostTimeCache(channelID string) - GetLastPostRowCreateAt() (int64, error) GetPostsCreatedAt(channelID string, timestamp int64) ([]*model.Post, error) Overwrite(post *model.Post) (*model.Post, error) OverwriteMultiple(posts []*model.Post) ([]*model.Post, int, error) @@ -510,7 +509,6 @@ type SessionStore interface { Remove(sessionIDOrToken string) error RemoveAllSessions() error PermanentDeleteSessionsByUser(teamID string) error - GetLastSessionRowCreateAt() (int64, error) UpdateExpiresAt(sessionID string, timestamp int64) error UpdateLastActivityAt(sessionID string, timestamp int64) error UpdateRoles(userID string, roles string) (string, error) diff --git a/server/channels/store/storetest/mocks/PostStore.go b/server/channels/store/storetest/mocks/PostStore.go index 3a57536e0f..727b5944dd 100644 --- a/server/channels/store/storetest/mocks/PostStore.go +++ b/server/channels/store/storetest/mocks/PostStore.go @@ -277,27 +277,6 @@ func (_m *PostStore) GetFlaggedPostsForTeam(userID string, teamID string, offset return r0, r1 } -// GetLastPostRowCreateAt provides a mock function with given fields: -func (_m *PostStore) GetLastPostRowCreateAt() (int64, error) { - ret := _m.Called() - - var r0 int64 - if rf, ok := ret.Get(0).(func() int64); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(int64) - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - // GetMaxPostSize provides a mock function with given fields: func (_m *PostStore) GetMaxPostSize() int { ret := _m.Called() diff --git a/server/channels/store/storetest/mocks/SessionStore.go b/server/channels/store/storetest/mocks/SessionStore.go index 7d5be8a3fb..eea72a1d4e 100644 --- a/server/channels/store/storetest/mocks/SessionStore.go +++ b/server/channels/store/storetest/mocks/SessionStore.go @@ -74,27 +74,6 @@ func (_m *SessionStore) Get(ctx context.Context, sessionIDOrToken string) (*mode return r0, r1 } -// GetLastSessionRowCreateAt provides a mock function with given fields: -func (_m *SessionStore) GetLastSessionRowCreateAt() (int64, error) { - ret := _m.Called() - - var r0 int64 - if rf, ok := ret.Get(0).(func() int64); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(int64) - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - // GetSessions provides a mock function with given fields: userID func (_m *SessionStore) GetSessions(userID string) ([]*model.Session, error) { ret := _m.Called(userID) diff --git a/server/channels/store/storetest/post_store.go b/server/channels/store/storetest/post_store.go index a47e096386..a718eb76ac 100644 --- a/server/channels/store/storetest/post_store.go +++ b/server/channels/store/storetest/post_store.go @@ -43,7 +43,6 @@ func TestPostStore(t *testing.T, ss store.Store, s SqlStore) { t.Run("GetFlaggedPosts", func(t *testing.T) { testPostStoreGetFlaggedPosts(t, ss) }) t.Run("GetFlaggedPostsForChannel", func(t *testing.T) { testPostStoreGetFlaggedPostsForChannel(t, ss) }) t.Run("GetPostsCreatedAt", func(t *testing.T) { testPostStoreGetPostsCreatedAt(t, ss) }) - t.Run("GetLastPostRowCreateAt", func(t *testing.T) { testPostStoreGetLastPostRowCreateAt(t, ss) }) t.Run("Overwrite", func(t *testing.T) { testPostStoreOverwrite(t, ss) }) t.Run("OverwriteMultiple", func(t *testing.T) { testPostStoreOverwriteMultiple(t, ss) }) t.Run("GetPostsByIds", func(t *testing.T) { testPostStoreGetPostsByIds(t, ss) }) @@ -3361,40 +3360,6 @@ func testPostStoreGetFlaggedPostsForChannel(t *testing.T, ss store.Store) { require.Len(t, r.Order, 0, "should have 0 posts") } -func testPostStoreGetLastPostRowCreateAt(t *testing.T, ss store.Store) { - teamId := model.NewId() - channel1, err := ss.Channel().Save(&model.Channel{ - TeamId: teamId, - DisplayName: "DisplayName1", - Name: "channel" + model.NewId(), - Type: model.ChannelTypeOpen, - }, -1) - require.NoError(t, err) - - createTime1 := model.GetMillis() + 1 - o0 := &model.Post{} - o0.ChannelId = channel1.Id - o0.UserId = model.NewId() - o0.Message = NewTestId() - o0.CreateAt = createTime1 - o0, err = ss.Post().Save(o0) - require.NoError(t, err) - - createTime2 := model.GetMillis() + 2 - - o1 := &model.Post{} - o1.ChannelId = o0.ChannelId - o1.UserId = model.NewId() - o1.Message = "Latest message" - o1.CreateAt = createTime2 - _, err = ss.Post().Save(o1) - require.NoError(t, err) - - createAt, err := ss.Post().GetLastPostRowCreateAt() - require.NoError(t, err) - assert.Equal(t, createAt, createTime2) -} - func testPostStoreGetPostsCreatedAt(t *testing.T, ss store.Store) { teamId := model.NewId() channel1, err := ss.Channel().Save(&model.Channel{ diff --git a/server/channels/store/storetest/session_store.go b/server/channels/store/storetest/session_store.go index fa3156979a..3c8fba5504 100644 --- a/server/channels/store/storetest/session_store.go +++ b/server/channels/store/storetest/session_store.go @@ -33,7 +33,6 @@ func TestSessionStore(t *testing.T, ss store.Store) { t.Run("SessionUpdateDeviceId2", func(t *testing.T) { testSessionUpdateDeviceId2(t, ss) }) t.Run("UpdateExpiresAt", func(t *testing.T) { testSessionStoreUpdateExpiresAt(t, ss) }) t.Run("UpdateLastActivityAt", func(t *testing.T) { testSessionStoreUpdateLastActivityAt(t, ss) }) - t.Run("GetLastSessionRowCreateAt", func(t *testing.T) { testSessionStoreGetLastSessionRowCreateAt(t, ss) }) t.Run("SessionCount", func(t *testing.T) { testSessionCount(t, ss) }) t.Run("GetSessionsExpired", func(t *testing.T) { testGetSessionsExpired(t, ss) }) t.Run("UpdateExpiredNotify", func(t *testing.T) { testUpdateExpiredNotify(t, ss) }) @@ -47,23 +46,6 @@ func testSessionStoreSave(t *testing.T, ss store.Store) { require.NoError(t, err) } -func testSessionStoreGetLastSessionRowCreateAt(t *testing.T, ss store.Store) { - s1 := &model.Session{} - s1.UserId = model.NewId() - _, err := ss.Session().Save(s1) - require.NoError(t, err) - - latestSessionUserid := model.NewId() - s2 := &model.Session{} - s2.UserId = latestSessionUserid - latestSession, err := ss.Session().Save(s2) - require.NoError(t, err) - - createAt, err := ss.Session().GetLastSessionRowCreateAt() - require.NoError(t, err) - assert.Equal(t, latestSession.CreateAt, createAt) -} - func testSessionGet(t *testing.T, ss store.Store) { s1 := &model.Session{} s1.UserId = model.NewId() diff --git a/server/channels/store/timerlayer/timerlayer.go b/server/channels/store/timerlayer/timerlayer.go index 219154d479..8199138ac2 100644 --- a/server/channels/store/timerlayer/timerlayer.go +++ b/server/channels/store/timerlayer/timerlayer.go @@ -5483,22 +5483,6 @@ func (s *TimerLayerPostStore) GetFlaggedPostsForTeam(userID string, teamID strin return result, err } -func (s *TimerLayerPostStore) GetLastPostRowCreateAt() (int64, error) { - start := time.Now() - - result, err := s.PostStore.GetLastPostRowCreateAt() - - elapsed := float64(time.Since(start)) / float64(time.Second) - if s.Root.Metrics != nil { - success := "false" - if err == nil { - success = "true" - } - s.Root.Metrics.ObserveStoreMethodDuration("PostStore.GetLastPostRowCreateAt", success, elapsed) - } - return result, err -} - func (s *TimerLayerPostStore) GetMaxPostSize() int { start := time.Now() @@ -7370,22 +7354,6 @@ func (s *TimerLayerSessionStore) Get(ctx context.Context, sessionIDOrToken strin return result, err } -func (s *TimerLayerSessionStore) GetLastSessionRowCreateAt() (int64, error) { - start := time.Now() - - result, err := s.SessionStore.GetLastSessionRowCreateAt() - - elapsed := float64(time.Since(start)) / float64(time.Second) - if s.Root.Metrics != nil { - success := "false" - if err == nil { - success = "true" - } - s.Root.Metrics.ObserveStoreMethodDuration("SessionStore.GetLastSessionRowCreateAt", success, elapsed) - } - return result, err -} - func (s *TimerLayerSessionStore) GetSessions(userID string) ([]*model.Session, error) { start := time.Now() diff --git a/server/config/diff_test.go b/server/config/diff_test.go index 15ec6f41f7..bf1a79ab37 100644 --- a/server/config/diff_test.go +++ b/server/config/diff_test.go @@ -807,12 +807,6 @@ func TestDiff(t *testing.T) { "com.mattermost.nps": { Enable: !defaultConfigGen().PluginSettings.PluginStates["com.mattermost.nps"].Enable, }, - "focalboard": { - Enable: true, - }, - "playbooks": { - Enable: true, - }, "com.mattermost.apps": { Enable: true, }, @@ -845,12 +839,6 @@ func TestDiff(t *testing.T) { "com.mattermost.newplugin": { Enable: true, }, - "focalboard": { - Enable: true, - }, - "playbooks": { - Enable: true, - }, "com.mattermost.apps": { Enable: true, }, @@ -875,12 +863,6 @@ func TestDiff(t *testing.T) { Path: "PluginSettings.PluginStates", BaseVal: defaultConfigGen().PluginSettings.PluginStates, ActualVal: map[string]*model.PluginState{ - "focalboard": { - Enable: true, - }, - "playbooks": { - Enable: true, - }, "com.mattermost.apps": { Enable: true, }, diff --git a/server/i18n/en.json b/server/i18n/en.json index 07b6d2219b..492fee9d58 100644 --- a/server/i18n/en.json +++ b/server/i18n/en.json @@ -7,14 +7,6 @@ "id": "August", "translation": "August" }, - { - "id": "Boards", - "translation": "Boards" - }, - { - "id": "Channels", - "translation": "Channels" - }, { "id": "December", "translation": "December" @@ -51,10 +43,6 @@ "id": "October", "translation": "October" }, - { - "id": "Playbooks", - "translation": "Playbooks" - }, { "id": "September", "translation": "September" @@ -3763,42 +3751,6 @@ "id": "api.templates.reset_subject", "translation": "[{{ .SiteName }}] Reset your password" }, - { - "id": "api.templates.server_inactivity_button", - "translation": "Open Mattermost" - }, - { - "id": "api.templates.server_inactivity_footer_disclaimer", - "translation": "You received this one-time email because your Mattermost server was inactive for more than {{.Hours}} hours. This email was automatically generated by your Mattermost server." - }, - { - "id": "api.templates.server_inactivity_info", - "translation": "Come and check it out!" - }, - { - "id": "api.templates.server_inactivity_info_bullet", - "translation": "Guest Access to specified " - }, - { - "id": "api.templates.server_inactivity_info_bullet1", - "translation": "Workflow management with " - }, - { - "id": "api.templates.server_inactivity_info_bullet2", - "translation": "Manage tasks using " - }, - { - "id": "api.templates.server_inactivity_subject", - "translation": "Come open Mattermost to increase your team’s productivity!" - }, - { - "id": "api.templates.server_inactivity_subtitle", - "translation": "Hey {{.Name}}, we’ve noticed that your Mattermost server is collecting a bit of dust. Take a look at some features that can help lighten your team's workload." - }, - { - "id": "api.templates.server_inactivity_title", - "translation": "Unlock increased productivity with these awesome features" - }, { "id": "api.templates.signin_change_email.body.info", "translation": "You updated your sign-in method on {{ .SiteName }} to {{.Method}}." @@ -6091,10 +6043,6 @@ "id": "app.plugin.not_installed.app_error", "translation": "Plugin is not installed." }, - { - "id": "app.plugin.product_mode.app_error", - "translation": "Plugin {{.Name}} cannot be enabled in product mode." - }, { "id": "app.plugin.remove.app_error", "translation": "Unable to delete plugin." diff --git a/server/platform/services/telemetry/telemetry.go b/server/platform/services/telemetry/telemetry.go index cf3402a8c1..a214911f20 100644 --- a/server/platform/services/telemetry/telemetry.go +++ b/server/platform/services/telemetry/telemetry.go @@ -609,7 +609,6 @@ func (ts *TelemetryService) trackConfig() { "isdefault_login_button_border_color": isDefault(*cfg.EmailSettings.LoginButtonBorderColor, ""), "isdefault_login_button_text_color": isDefault(*cfg.EmailSettings.LoginButtonTextColor, ""), "smtp_server_timeout": *cfg.EmailSettings.SMTPServerTimeout, - "enable_inactivity_email": *cfg.EmailSettings.EnableInactivityEmail, }) ts.SendTelemetry(TrackConfigRate, map[string]any{ diff --git a/server/playbooks/product/playbooks_product.go b/server/playbooks/product/playbooks_product.go index 77360db7cd..8f2f98dcdf 100644 --- a/server/playbooks/product/playbooks_product.go +++ b/server/playbooks/product/playbooks_product.go @@ -582,7 +582,7 @@ func (pp *playbooksProduct) runMetricsServer() { // Run server to expose metrics go func() { err := pp.metricsServer.Run() - if err != nil { + if err != nil && !errors.Is(err, http.ErrServerClosed) { logrus.WithError(err).Error("Metrics server could not be started") } }() diff --git a/server/templates/inactivity_body.html b/server/templates/inactivity_body.html deleted file mode 100644 index 36bb7795cb..0000000000 --- a/server/templates/inactivity_body.html +++ /dev/null @@ -1,548 +0,0 @@ -{{define "inactivity_body"}} - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - -
- -
- - - - - - -
- -
- - - - - - -
- - - - - - -
- -
-
-
- -
-
- -
- - - - - - -
- -
- - - - - - - - - - - - - - - - - - -
-
{{.Props.Title}}
-
-
{{.Props.SubTitle}}
-
-
-
    -
  • {{.Props.InfoBullet}}{{.Props.Channels}}
  • -
  • {{.Props.InfoBullet1}}{{.Props.Playbooks}}
  • -
  • {{.Props.InfoBullet2}}{{.Props.Boards}}
  • -
-
-
-
{{.Props.Info}}
-
- - - - -
- - {{.Props.Button}} - -
-
-
- -
-
- -
- - - - - - -
- -
- - - - - - -
- - - - - - -
- -
-
-
- -
-
- -
- - - - - - -
- -
- - - - - - - - - -
-
{{.Props.QuestionTitle}}
-
-
{{.Props.QuestionInfo}} - - {{.Props.SupportEmail}} - -
-
-
- -
-
- -
- - - - - - -
- -
- - - - - - - - - -
-
{{.Props.FooterDisclaimer}}
-
-
{{.Props.Organization}} - {{.Props.FooterV2}} -
-
-
- -
-
- -
-
- -
- - - - -{{end}} diff --git a/server/templates/inactivity_body.mjml b/server/templates/inactivity_body.mjml deleted file mode 100644 index 47b17fe42c..0000000000 --- a/server/templates/inactivity_body.mjml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - {{.Props.Title}} - - - {{.Props.SubTitle}} - - -
    -
  • {{.Props.InfoBullet}}{{.Props.Channels}}
  • -
  • {{.Props.InfoBullet1}}{{.Props.Playbooks}}
  • -
  • {{.Props.InfoBullet2}}{{.Props.Boards}}
  • -
-
- - {{.Props.Info}} - - {{.Props.Button}} -
-
- - - - - - - - - - - {{.Props.QuestionTitle}} - - - {{.Props.QuestionInfo}} - - {{.Props.SupportEmail}} - - - - - - - - - {{.Props.FooterDisclaimer}} - - - {{.Props.Organization}} - {{.Props.FooterV2}} - - - - -
-
-
diff --git a/server/tests/test-config.json b/server/tests/test-config.json index 3604556889..d98cbd98ca 100644 --- a/server/tests/test-config.json +++ b/server/tests/test-config.json @@ -167,7 +167,6 @@ "LoginButtonColor": "", "LoginButtonBorderColor": "", "LoginButtonTextColor": "", - "EnableInactivityEmail": true }, "RateLimitSettings": { "Enable": false, diff --git a/webapp/channels/src/actions/channel_actions.test.ts b/webapp/channels/src/actions/channel_actions.test.ts index aac40512ec..6b247396b2 100644 --- a/webapp/channels/src/actions/channel_actions.test.ts +++ b/webapp/channels/src/actions/channel_actions.test.ts @@ -167,7 +167,7 @@ describe('Actions.Channel', () => { }], }]; - await testStore.dispatch(searchMoreChannels('', false, true)); + await testStore.dispatch(searchMoreChannels('', false)); expect(testStore.getActions()).toEqual(expectedActions); }); diff --git a/webapp/channels/src/actions/channel_actions.ts b/webapp/channels/src/actions/channel_actions.ts index 0add017514..b3c9ffb156 100644 --- a/webapp/channels/src/actions/channel_actions.ts +++ b/webapp/channels/src/actions/channel_actions.ts @@ -109,7 +109,7 @@ export function loadChannelsForCurrentUser(): ActionFunc { }; } -export function searchMoreChannels(term: string, showArchivedChannels: boolean, hideJoinedChannels: boolean): ActionFunc { +export function searchMoreChannels(term: string, showArchivedChannels: boolean): ActionFunc { return async (dispatch, getState) => { const state = getState(); const teamId = getCurrentTeamId(state); @@ -121,7 +121,9 @@ export function searchMoreChannels(term: string, showArchivedChannels: boolean, const {data, error} = await dispatch(ChannelActions.searchChannels(teamId, term, showArchivedChannels)); if (data) { const myMembers = getMyChannelMemberships(state); - const channels = hideJoinedChannels ? (data as Channel[]).filter((channel) => !myMembers[channel.id]) : data; + + // When searching public channels, only get channels user is not a member of + const channels = showArchivedChannels ? data : (data as Channel[]).filter((c) => !myMembers[c.id]); return {data: channels}; } diff --git a/webapp/channels/src/actions/command.test.js b/webapp/channels/src/actions/command.test.js index c83037f136..de9a9b01be 100644 --- a/webapp/channels/src/actions/command.test.js +++ b/webapp/channels/src/actions/command.test.js @@ -6,6 +6,7 @@ import {Client4} from 'mattermost-redux/client'; import * as Channels from 'mattermost-redux/selectors/entities/channels'; import * as Teams from 'mattermost-redux/selectors/entities/teams'; +import {Permissions} from 'mattermost-redux/constants'; import {AppCallResponseTypes} from 'mattermost-redux/constants/apps'; import * as GlobalActions from 'actions/global_actions'; @@ -55,7 +56,7 @@ const initialState = { roles: { custom_role: { permissions: [ - 'sysconsole_read_plugins', + Permissions.SYSCONSOLE_WRITE_PLUGINS, ], }, }, diff --git a/webapp/channels/src/actions/command.ts b/webapp/channels/src/actions/command.ts index 255dff4c51..2b89fae193 100644 --- a/webapp/channels/src/actions/command.ts +++ b/webapp/channels/src/actions/command.ts @@ -130,7 +130,7 @@ export function executeCommand(message: string, args: CommandArgs): ActionFunc { return {data: true}; case '/marketplace': // check if user has permissions to access the read plugins - if (!haveICurrentTeamPermission(state, Permissions.SYSCONSOLE_READ_PLUGINS)) { + if (!haveICurrentTeamPermission(state, Permissions.SYSCONSOLE_WRITE_PLUGINS)) { return {error: {message: localizeMessage('marketplace_command.no_permission', 'You do not have the appropriate permissions to access the marketplace.')}}; } @@ -139,7 +139,7 @@ export function executeCommand(message: string, args: CommandArgs): ActionFunc { return {error: {message: localizeMessage('marketplace_command.disabled', 'The marketplace is disabled. Please contact your System Administrator for details.')}}; } - dispatch(openModal({modalId: ModalIdentifiers.PLUGIN_MARKETPLACE, dialogType: MarketplaceModal})); + dispatch(openModal({modalId: ModalIdentifiers.PLUGIN_MARKETPLACE, dialogType: MarketplaceModal, dialogProps: {openedFrom: 'command'}})); return {data: true}; case '/templates': { const workTemplateEnabled = areWorkTemplatesEnabled(state); diff --git a/webapp/channels/src/actions/views/add_channel_dropdown.ts b/webapp/channels/src/actions/views/add_channel_dropdown.ts index 55bef92f84..251d2acf5e 100644 --- a/webapp/channels/src/actions/views/add_channel_dropdown.ts +++ b/webapp/channels/src/actions/views/add_channel_dropdown.ts @@ -9,3 +9,10 @@ export function setAddChannelDropdown(open: boolean) { open, }; } + +export function setAddChannelCtaDropdown(open: boolean) { + return { + type: ActionTypes.ADD_CHANNEL_CTA_DROPDOWN_TOGGLE, + open, + }; +} diff --git a/webapp/channels/src/components/__snapshots__/searchable_channel_list.test.jsx.snap b/webapp/channels/src/components/__snapshots__/searchable_channel_list.test.jsx.snap new file mode 100644 index 0000000000..eff77678a4 --- /dev/null +++ b/webapp/channels/src/components/__snapshots__/searchable_channel_list.test.jsx.snap @@ -0,0 +1,46 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`components/SearchableChannelList should match init snapshot 1`] = ` +
+
+
+ +
+
+
+
+ +
+
+
+
+`; diff --git a/webapp/channels/src/components/actions_menu/__snapshots__/actions_menu.test.tsx.snap b/webapp/channels/src/components/actions_menu/__snapshots__/actions_menu.test.tsx.snap index 260071f49f..60367b08bf 100644 --- a/webapp/channels/src/components/actions_menu/__snapshots__/actions_menu.test.tsx.snap +++ b/webapp/channels/src/components/actions_menu/__snapshots__/actions_menu.test.tsx.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`components/actions_menu/ActionsMenu has actions - end user - should not show actions and app marketplace 1`] = ` +exports[`components/actions_menu/ActionsMenu has actions - marketplace disabled or user not having SYSCONSOLE_WRITE_PLUGINS - should not show actions and app marketplace 1`] = ` `; -exports[`components/actions_menu/ActionsMenu has actions - sysadmin - should show actions and app marketplace 1`] = ` +exports[`components/actions_menu/ActionsMenu has actions - marketplace enabled and user has SYSCONSOLE_WRITE_PLUGINS - should show actions and app marketplace 1`] = ` { handleDismissTip: jest.fn(), showPulsatingDot: false, location: 'center', + canOpenMarketplace: false, actions: { openModal: jest.fn(), openAppsModal: jest.fn(), @@ -62,27 +63,29 @@ describe('components/actions_menu/ActionsMenu', () => { wrapper.setProps({ pluginMenuItems: dropdownComponents, + canOpenMarketplace: true, }); expect(wrapper.find('#divider_post_post_id_1_marketplace').exists()).toBe(true); }); - test('has actions - sysadmin - should show actions and app marketplace', () => { + test('has actions - marketplace enabled and user has SYSCONSOLE_WRITE_PLUGINS - should show actions and app marketplace', () => { const wrapper = shallowWithIntl( , ); wrapper.setProps({ pluginMenuItems: dropdownComponents, + canOpenMarketplace: true, }); expect(wrapper).toMatchSnapshot(); }); - test('has actions - end user - should not show actions and app marketplace', () => { + test('has actions - marketplace disabled or user not having SYSCONSOLE_WRITE_PLUGINS - should not show actions and app marketplace', () => { const wrapper = shallowWithIntl( , ); wrapper.setProps({ pluginMenuItems: dropdownComponents, - isSysAdmin: false, + canOpenMarketplace: false, }); expect(wrapper).toMatchSnapshot(); }); @@ -91,6 +94,11 @@ describe('components/actions_menu/ActionsMenu', () => { const wrapper = shallowWithIntl( , ); + + wrapper.setProps({ + canOpenMarketplace: true, + }); + expect(wrapper).toMatchSnapshot(); }); @@ -116,6 +124,7 @@ describe('components/actions_menu/ActionsMenu', () => { components: { [PLUGGABLE_COMPONENT]: dropdownComponents, }, + canOpenMarketplace: true, }); expect(wrapper.find('#divider_post_post_id_1_marketplace').exists()).toBe(true); }); diff --git a/webapp/channels/src/components/actions_menu/actions_menu.tsx b/webapp/channels/src/components/actions_menu/actions_menu.tsx index 8a31075676..547aac2da1 100644 --- a/webapp/channels/src/components/actions_menu/actions_menu.tsx +++ b/webapp/channels/src/components/actions_menu/actions_menu.tsx @@ -20,6 +20,7 @@ import Permissions from 'mattermost-redux/constants/permissions'; import {ActionsTutorialTip} from 'components/actions_menu/actions_menu_tutorial_tip'; import {ModalData} from 'types/actions'; import MarketplaceModal from 'components/plugin_marketplace'; +import {OpenedFromType} from 'components/plugin_marketplace/marketplace_modal'; import OverlayTrigger from 'components/overlay_trigger'; import * as PostUtils from 'utils/post_utils'; import * as Utils from 'utils/utils'; @@ -49,6 +50,7 @@ export type Props = { handleDismissTip: () => void; showPulsatingDot?: boolean; showTutorialTip: boolean; + canOpenMarketplace: boolean; /** * Components for overriding provided by plugins @@ -145,9 +147,11 @@ export class ActionMenuClass extends React.PureComponent { } handleOpenMarketplace = (): void => { + const openedFrom: OpenedFromType = 'actions_menu'; const openMarketplaceData = { modalId: ModalIdentifiers.PLUGIN_MARKETPLACE, dialogType: MarketplaceModal, + dialogProps: {openedFrom}, }; this.props.actions.openModal(openMarketplaceData); }; @@ -341,7 +345,7 @@ export class ActionMenuClass extends React.PureComponent { const {formatMessage} = this.props.intl; let marketPlace = null; - if (this.props.isSysAdmin) { + if (this.props.canOpenMarketplace) { marketPlace = ( {this.renderDivider('marketplace')} @@ -363,11 +367,11 @@ export class ActionMenuClass extends React.PureComponent { const hasPluginItems = Boolean(pluginItems?.length); const hasPluginMenuItems = hasPluginItems || hasApps || hasPluggables; - if (!this.props.isSysAdmin && !hasPluginMenuItems) { + if (!this.props.canOpenMarketplace && !hasPluginMenuItems) { return null; } - if (hasPluginItems || hasApps || hasPluggables) { + if (hasPluginMenuItems) { const pluggable = ( { showTutorialTip: false, appsEnabled: false, isSysAdmin: true, + canOpenMarketplace: false, }; const wrapper = shallow( diff --git a/webapp/channels/src/components/actions_menu/actions_menu_mobile.test.tsx b/webapp/channels/src/components/actions_menu/actions_menu_mobile.test.tsx index e712e9bb4b..3f4f3c3534 100644 --- a/webapp/channels/src/components/actions_menu/actions_menu_mobile.test.tsx +++ b/webapp/channels/src/components/actions_menu/actions_menu_mobile.test.tsx @@ -44,6 +44,7 @@ describe('components/actions_menu/ActionsMenu on mobile view', () => { showTutorialTip: false, appsEnabled: false, isSysAdmin: true, + canOpenMarketplace: false, }; const wrapper = shallow( diff --git a/webapp/channels/src/components/actions_menu/index.ts b/webapp/channels/src/components/actions_menu/index.ts index 517aac9fad..21c9c2588b 100644 --- a/webapp/channels/src/components/actions_menu/index.ts +++ b/webapp/channels/src/components/actions_menu/index.ts @@ -26,6 +26,10 @@ import {GlobalState} from 'types/store'; import {openModal} from 'actions/views/modals'; import {makeFetchBindings, postEphemeralCallResponseForPost, handleBindingClick, openAppsModal} from 'actions/apps'; +import {Permissions} from 'mattermost-redux/constants'; +import {isMarketplaceEnabled} from 'mattermost-redux/selectors/entities/general'; +import {haveICurrentTeamPermission} from 'mattermost-redux/selectors/entities/roles'; + import ActionsMenu from './actions_menu'; import {makeGetPostOptionBinding} from './selectors'; @@ -65,6 +69,10 @@ function mapStateToProps(state: GlobalState, ownProps: Props) { pluginMenuItems: state.plugins.components.PostDropdownMenu, teamId: getCurrentTeamId(state), isMobileView: getIsMobileView(state), + canOpenMarketplace: ( + isMarketplaceEnabled(state) && + haveICurrentTeamPermission(state, Permissions.SYSCONSOLE_WRITE_PLUGINS) + ), }; } diff --git a/webapp/channels/src/components/app_bar/__snapshots__/app_bar.test.tsx.snap b/webapp/channels/src/components/app_bar/__snapshots__/app_bar.test.tsx.snap index 0f2403dc6b..528d89c426 100644 --- a/webapp/channels/src/components/app_bar/__snapshots__/app_bar.test.tsx.snap +++ b/webapp/channels/src/components/app_bar/__snapshots__/app_bar.test.tsx.snap @@ -1,63 +1,38 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`components/app_bar/app_bar should match snapshot on mount 1`] = ` -.c0:last-child, -.c0:first-child { - display: none; -} -
- - - - Playbooks Tooltip - - - } - placement="left" - trigger={ - Array [ - "hover", - "focus", - ] + Playbooks Tooltip - + } placement="left" trigger={ @@ -67,77 +42,73 @@ exports[`components/app_bar/app_bar should match snapshot on mount 1`] = ` ] } > -
+ + Playbooks Tooltip + + + } + placement="left" + trigger={ + Array [ + "hover", + "focus", + ] + } >
- fallback_component +
+ fallback_component +
-
+
- -
- <_StyledHr - className="app-bar__divider" - key="divider" - > +
- - - - - Create Subscription - - - } - placement="left" - trigger={ - Array [ - "hover", - "focus", - ] + Create Subscription - + } placement="left" trigger={ @@ -147,25 +118,49 @@ exports[`components/app_bar/app_bar should match snapshot on mount 1`] = ` ] } > -
+ + Create Subscription + + + } + placement="left" + trigger={ + Array [ + "hover", + "focus", + ] + } >
- +
+ +
-
+
- -
+ +
`; diff --git a/webapp/channels/src/components/app_bar/app_bar.scss b/webapp/channels/src/components/app_bar/app_bar.scss index c45afabf44..ce7813b3c9 100644 --- a/webapp/channels/src/components/app_bar/app_bar.scss +++ b/webapp/channels/src/components/app_bar/app_bar.scss @@ -1,6 +1,8 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. +@import 'utils/mixins'; + $app-bar-icon-size: 24px; $app-bar-width: 48px; @@ -10,129 +12,143 @@ $app-bar-width: 48px; display: none; } - position: relative; - width: $app-bar-width; - padding-top: 16px; + display: flex; + min-height: 0; + flex-flow: column; + border-left: solid 1px rgba(var(--center-channel-color-rgb), 0.12); background-color: var(--center-channel-bg); - -ms-overflow-style: none; - overflow-x: hidden; - overflow-y: scroll; - scrollbar-width: none; - text-align: center; - &::before { - position: absolute; - top: 0; - display: block; - width: 100%; - height: 100%; - border-left: solid 1px rgba(var(--center-channel-color-rgb), 0.12); - background-color: rgba(var(--center-channel-color-rgb), 0.04); - content: ''; - } - - .app-bar__icon { + &__top { position: relative; - // Render App Bar icons on top of the RHS background div - //(see `@media screen and (min-width: 769px) > #sidebar-right` in sass/layout/_sidebar-right.scss) - z-index: 21; - width: 100%; - border-left: none; - margin-bottom: 16px; - cursor: pointer; + display: flex; + width: $app-bar-width; + flex: 1; + flex-flow: column; + padding-top: 16px; + background-color: rgba(var(--center-channel-color-rgb), 0.04); + -ms-overflow-style: none; + overflow-x: hidden; + overflow-y: scroll; + scrollbar-width: none; + text-align: center; - &--active { - &::before { - position: absolute; - top: 0; - left: 0; - width: 3px; - height: $app-bar-icon-size; - background-color: var(--sidebar-text-active-border); - border-radius: 0 2px 2px 0; - content: ''; + .app-bar__icon { + position: relative; + // Render App Bar icons on top of the RHS background div + //(see `@media screen and (min-width: 769px) > #sidebar-right` in sass/layout/_sidebar-right.scss) + z-index: 21; + width: 100%; + border-left: none; + margin-bottom: 16px; + cursor: pointer; + + &--active { + &::before { + position: absolute; + top: 0; + left: 0; + width: 3px; + height: $app-bar-icon-size; + background-color: var(--sidebar-text-active-border); + border-radius: 0 2px 2px 0; + content: ''; + } + + .app-bar__icon-inner, + span:not(.pulsating_dot) { + // if we want to show a tourtip/pulsating dot in any of the app bar icons, these styles must be ommitted when span.pulsating_dot + box-shadow: 0 0 0 2px var(--sidebar-text-active-border); + + &:hover { + box-shadow: 0 0 0 2px rgba(var(--sidebar-text-active-border-rgb), 0.92) !important; + } + } } .app-bar__icon-inner, span:not(.pulsating_dot) { - // if we want to show a tourtip/pulsating dot in any of the app bar icons, these styles must be ommitted when span.pulsating_dot - box-shadow: 0 0 0 2px var(--sidebar-text-active-border); - - &:hover { - box-shadow: 0 0 0 2px rgba(var(--sidebar-text-active-border-rgb), 0.92) !important; - } - } - } - - .app-bar__icon-inner, - span:not(.pulsating_dot) { - display: block; - overflow: hidden; - width: $app-bar-icon-size; - height: $app-bar-icon-size; - margin: 0 auto; - border-radius: 50%; - line-height: 1; - - &:hover { - box-shadow: 0 0 0 2px rgba(var(--center-channel-color-rgb), 0.16); - } - - img { + display: block; + overflow: hidden; width: $app-bar-icon-size; height: $app-bar-icon-size; + margin: 0 auto; border-radius: 50%; - } - } + line-height: 1; - span:not(.pulsating_dot) { - padding: 2px; - background-color: white; - fill: var(--button-bg); - font-size: 14px; - line-height: 20px; - vertical-align: middle; + &:hover { + box-shadow: 0 0 0 2px rgba(var(--center-channel-color-rgb), 0.16); + } - &.CompassIcon, - &.icon-brand-zoom { - font-size: 20px; - - &::before { - margin: 0 0 0 0.5px; + img { + width: $app-bar-icon-size; + height: $app-bar-icon-size; + border-radius: 50%; } } - } - .app-bar__old-icon { - color: rgba(var(--center-channel-color-rgb), 0.56); + span:not(.pulsating_dot) { + padding: 2px; + background-color: white; + fill: var(--button-bg); + font-size: 14px; + line-height: 20px; + vertical-align: middle; - &:hover, - &--active { - color: rgba(var(--center-channel-color-rgb), 0.72); + &.CompassIcon, + &.icon-brand-zoom { + font-size: 20px; + + &::before { + margin: 0 0 0 0.5px; + } + } + } + + .app-bar__old-icon { + color: rgba(var(--center-channel-color-rgb), 0.56); + + &:hover, + &--active { + color: rgba(var(--center-channel-color-rgb), 0.72); + } + } + + .app-bar__icon-inner--centered { + display: grid; + place-items: center; } } - .app-bar__icon-inner--centered { - display: grid; - place-items: center; + .app-bar__divider { + width: 28px; + border-top: 1px solid rgba(var(--center-channel-color-rgb), 0.16); + margin-top: 14px; + margin-bottom: 14px; + } + + .app-bar__icon.channel-header__icon--active { + background: rgba(var(--button-bg-rgb), 0.08); + color: var(--button-bg); + fill: var(--button-bg); } } - .app-bar__divider { - width: 28px; - border-top: 1px solid rgba(var(--center-channel-color-rgb), 0.16); - margin-top: 14px; - margin-bottom: 14px; - } + &__bottom { + display: flex; + flex-flow: column; + align-items: center; + padding-top: 24px; + padding-bottom: 36px; + background-color: rgba(var(--center-channel-color-rgb), 0.04); - .app-bar__icon.channel-header__icon--active { - background: rgba(var(--button-bg-rgb), 0.08); - color: var(--button-bg); - fill: var(--button-bg); + .app_bar__marketplace_button { + @include icon-button; + @include icon-button-small-compact; + } } } // This style is defined outside the .app-bar block above because it doesn't seem to work when defined there -.app-bar::-webkit-scrollbar { +.app-bar__top::-webkit-scrollbar { display: none; } diff --git a/webapp/channels/src/components/app_bar/app_bar.test.tsx b/webapp/channels/src/components/app_bar/app_bar.test.tsx index 03598dbf3d..3f8d429853 100644 --- a/webapp/channels/src/components/app_bar/app_bar.test.tsx +++ b/webapp/channels/src/components/app_bar/app_bar.test.tsx @@ -2,7 +2,7 @@ // See LICENSE.txt for license information. import React from 'react'; -import {mount} from 'enzyme'; +import {mount, shallow} from 'enzyme'; import 'jest-styled-components'; import {AppBinding} from '@mattermost/types/apps'; @@ -10,6 +10,7 @@ import {AppBinding} from '@mattermost/types/apps'; import {PluginComponent} from 'types/store/plugins'; import {GlobalState} from 'types/store'; +import {Permissions} from 'mattermost-redux/constants'; import {AppBindingLocations} from 'mattermost-redux/constants/apps'; import AppBar from './app_bar'; @@ -82,6 +83,21 @@ describe('components/app_bar/app_bar', () => { myPreferences: { }, } as any, + users: { + currentUserId: 'user1', + profiles: { + user1: { + roles: 'system_user', + }, + }, + } as any, + roles: { + roles: { + system_user: { + permissions: [], + }, + }, + } as any, }, } as GlobalState; }); @@ -134,4 +150,48 @@ describe('components/app_bar/app_bar', () => { expect(wrapper).toMatchSnapshot(); }); + + test('should not show marketplace if disabled or user does not have SYSCONSOLE_WRITE_PLUGINS permission', async () => { + mockState.entities.general = { + config: { + EnableAppBar: 'true', + FeatureFlagAppsEnabled: 'true', + EnableMarketplace: 'true', + PluginsEnabled: 'true', + }, + } as any; + + const wrapper = shallow( + , + ); + + expect(wrapper.find('AppBarMarketplace').exists()).toEqual(false); + }); + + test('should show marketplace if enabled and user has SYSCONSOLE_WRITE_PLUGINS permission', async () => { + mockState.entities.general = { + config: { + EnableAppBar: 'true', + FeatureFlagAppsEnabled: 'true', + EnableMarketplace: 'true', + PluginsEnabled: 'true', + }, + } as any; + + mockState.entities.roles = { + roles: { + system_user: { + permissions: [ + Permissions.SYSCONSOLE_WRITE_PLUGINS, + ], + }, + }, + } as any; + + const wrapper = shallow( + , + ); + + expect(wrapper.find('AppBarMarketplace').exists()).toEqual(true); + }); }); diff --git a/webapp/channels/src/components/app_bar/app_bar.tsx b/webapp/channels/src/components/app_bar/app_bar.tsx index ec05a5bd19..3ae5815c2a 100644 --- a/webapp/channels/src/components/app_bar/app_bar.tsx +++ b/webapp/channels/src/components/app_bar/app_bar.tsx @@ -12,8 +12,15 @@ import {getAppBarAppBindings} from 'mattermost-redux/selectors/entities/apps'; import {getAppBarPluginComponents, getChannelHeaderPluginComponents, shouldShowAppBar} from 'selectors/plugins'; import {suitePluginIds} from 'utils/constants'; +import {Permissions} from 'mattermost-redux/constants'; +import {isMarketplaceEnabled} from 'mattermost-redux/selectors/entities/general'; +import {haveICurrentTeamPermission} from 'mattermost-redux/selectors/entities/roles'; + +import {GlobalState} from '@mattermost/types/store'; + import AppBarPluginComponent, {isAppBarPluginComponent} from './app_bar_plugin_component'; import AppBarBinding, {isAppBinding} from './app_bar_binding'; +import AppBarMarketplace from './app_bar_marketplace'; import './app_bar.scss'; @@ -24,6 +31,10 @@ export default function AppBar() { const currentProduct = useCurrentProduct(); const currentProductId = useCurrentProductId(); const enabled = useSelector(shouldShowAppBar); + const canOpenMarketplace = useSelector((state: GlobalState) => ( + isMarketplaceEnabled(state) && + haveICurrentTeamPermission(state, Permissions.SYSCONSOLE_WRITE_PLUGINS) + )); if ( !enabled || @@ -40,11 +51,15 @@ export default function AppBar() { const items: ReactNode[] = [ ...coreProductComponents, - divider, + getDivider(coreProductComponents.length, (pluginComponents.length + channelHeaderComponents.length + appBarBindings.length)), ...pluginComponents, ...channelHeaderComponents, ...appBarBindings, ].map((x) => { + if (!x) { + return x; + } + if (isAppBarPluginComponent(x)) { if (!inScope(x.supportedProductIds ?? null, currentProductId, currentProduct?.pluginId)) { return null; @@ -69,26 +84,23 @@ export default function AppBar() { return x; }); - if (!items.some((x) => Boolean(x) && x !== divider)) { - return null; - } - return (
- {items} +
+ {items} +
+ {canOpenMarketplace && ( +
+ +
+ )}
); } -const divider = ( +const getDivider = (beforeCount: number, afterCount: number) => (beforeCount && afterCount ? (
-); +) : null); diff --git a/webapp/channels/src/components/app_bar/app_bar_marketplace.tsx b/webapp/channels/src/components/app_bar/app_bar_marketplace.tsx new file mode 100644 index 0000000000..11b379bd75 --- /dev/null +++ b/webapp/channels/src/components/app_bar/app_bar_marketplace.tsx @@ -0,0 +1,60 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import React, {useCallback} from 'react'; +import {useDispatch} from 'react-redux'; +import {useIntl} from 'react-intl'; +import {Tooltip} from 'react-bootstrap'; + +import Icon from '@mattermost/compass-components/foundations/icon'; + +import {openModal} from 'actions/views/modals'; + +import MarketplaceModal from 'components/plugin_marketplace'; +import OverlayTrigger from 'components/overlay_trigger'; + +import {Constants, ModalIdentifiers} from 'utils/constants'; + +const AppBarMarketplace = () => { + const {formatMessage} = useIntl(); + const dispatch = useDispatch(); + + const handleOpenMarketplace = useCallback(() => { + dispatch( + openModal({ + modalId: ModalIdentifiers.PLUGIN_MARKETPLACE, + dialogType: MarketplaceModal, + dialogProps: {openedFrom: 'app_bar'}, + }), + ); + }, [dispatch]); + + const label = formatMessage({id: 'app_bar.marketplace', defaultMessage: 'App Marketplace'}); + + return ( + + {label} + + )} + > + + + ); +}; + +export default AppBarMarketplace; diff --git a/webapp/channels/src/components/common/hooks/useOpenSalesLink.ts b/webapp/channels/src/components/common/hooks/useOpenSalesLink.ts index 4dbe44d0ca..1bc2c87e31 100644 --- a/webapp/channels/src/components/common/hooks/useOpenSalesLink.ts +++ b/webapp/channels/src/components/common/hooks/useOpenSalesLink.ts @@ -26,7 +26,7 @@ export default function useOpenSalesLink(): [() => void, string] { companyName = customer.name || ''; utmMedium = 'in-product-cloud'; } else { - customerEmail = currentUser.email || ''; + customerEmail = currentUser?.email || ''; } const contactSalesLink = buildMMURL(LicenseLinks.CONTACT_SALES, firstName, lastName, companyName, customerEmail, utmSource, utmMedium); diff --git a/webapp/channels/src/components/common/svg_images_components/magnifying_glass_svg.tsx b/webapp/channels/src/components/common/svg_images_components/magnifying_glass_svg.tsx deleted file mode 100644 index 75b2ec8d3d..0000000000 --- a/webapp/channels/src/components/common/svg_images_components/magnifying_glass_svg.tsx +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -import React, {SVGProps} from 'react'; - -const SvgComponent = (props: SVGProps) => ( - - - - - - - -); - -export default SvgComponent; diff --git a/webapp/channels/src/components/custom_open_plugin_install_post_renderer/index.tsx b/webapp/channels/src/components/custom_open_plugin_install_post_renderer/index.tsx index 06020b66c4..d16f073cf1 100644 --- a/webapp/channels/src/components/custom_open_plugin_install_post_renderer/index.tsx +++ b/webapp/channels/src/components/custom_open_plugin_install_post_renderer/index.tsx @@ -301,6 +301,7 @@ export default function OpenPluginInstallPost(props: {post: Post}) { className='color--link' modalId={ModalIdentifiers.PLUGIN_MARKETPLACE} dialogType={MarketplaceModal} + dialogProps={{openedFrom: 'open_plugin_install_post'}} > {text} diff --git a/webapp/channels/src/components/generic_modal.scss b/webapp/channels/src/components/generic_modal.scss index 32ce008f2a..6cbca8629c 100644 --- a/webapp/channels/src/components/generic_modal.scss +++ b/webapp/channels/src/components/generic_modal.scss @@ -133,7 +133,6 @@ } .GenericModal__header { - width: 85%; padding: 0; border-top-left-radius: 12px; border-top-right-radius: 12px; diff --git a/webapp/channels/src/components/global_header/left_controls/product_menu/product_menu_list/__snapshots__/product_menu_list.test.tsx.snap b/webapp/channels/src/components/global_header/left_controls/product_menu/product_menu_list/__snapshots__/product_menu_list.test.tsx.snap index 94179aca7a..f8ea6848e7 100644 --- a/webapp/channels/src/components/global_header/left_controls/product_menu/product_menu_list/__snapshots__/product_menu_list.test.tsx.snap +++ b/webapp/channels/src/components/global_header/left_controls/product_menu/product_menu_list/__snapshots__/product_menu_list.test.tsx.snap @@ -147,6 +147,11 @@ exports[`components/global/product_switcher_menu should match snapshot with id 1 teamId="" > } id="marketplaceModal" modalId="plugin_marketplace" show={false} - text="Marketplace" + text="App Marketplace" /> } id="marketplaceModal" modalId="plugin_marketplace" show={true} - text="Marketplace" + text="App Marketplace" /> } id="marketplaceModal" modalId="plugin_marketplace" show={false} - text="Marketplace" + text="App Marketplace" /> { modalId={ModalIdentifiers.PLUGIN_MARKETPLACE} show={isMessaging && !isMobile && enablePluginMarketplace} dialogType={MarketplaceModal} - text={formatMessage({id: 'navbar_dropdown.marketplace', defaultMessage: 'Marketplace'})} + dialogProps={{openedFrom: 'product_menu'}} + text={formatMessage({id: 'navbar_dropdown.marketplace', defaultMessage: 'App Marketplace'})} icon={ } /> diff --git a/webapp/channels/src/components/more_channels/__snapshots__/more_channels.test.tsx.snap b/webapp/channels/src/components/more_channels/__snapshots__/more_channels.test.tsx.snap index 1f2cd1c3d0..fe1acbf101 100644 --- a/webapp/channels/src/components/more_channels/__snapshots__/more_channels.test.tsx.snap +++ b/webapp/channels/src/components/more_channels/__snapshots__/more_channels.test.tsx.snap @@ -1,15 +1,53 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`components/MoreChannels should match snapshot and state 1`] = ` - + + + + + - - } - id="moreChannelsModal" - keyboardEscape={true} - modalHeaderText={ - + + + +

+ +

+ + } + search={[Function]} + shouldShowArchivedChannels={false} + toggleArchivedChannels={[Function]} /> - } - onExited={[Function]} - show={true} -> - -
+ + `; diff --git a/webapp/channels/src/components/more_channels/__snapshots__/searchable_channel_list.test.jsx.snap b/webapp/channels/src/components/more_channels/__snapshots__/searchable_channel_list.test.jsx.snap deleted file mode 100644 index 1118d16bf2..0000000000 --- a/webapp/channels/src/components/more_channels/__snapshots__/searchable_channel_list.test.jsx.snap +++ /dev/null @@ -1,82 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`components/SearchableChannelList should match init snapshot 1`] = ` -
-
- - -
-
- - 0 Results - -
-
-
-
-
-
-
- -
-
-
-
-`; diff --git a/webapp/channels/src/components/more_channels/index.ts b/webapp/channels/src/components/more_channels/index.ts index 7afbea20e2..d21425d99e 100644 --- a/webapp/channels/src/components/more_channels/index.ts +++ b/webapp/channels/src/components/more_channels/index.ts @@ -12,29 +12,24 @@ import {getConfig} from 'mattermost-redux/selectors/entities/general'; import {Action, ActionResult} from 'mattermost-redux/types/actions'; import {getCurrentTeam} from 'mattermost-redux/selectors/entities/teams'; import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users'; -import {getChannels, getArchivedChannels, joinChannel, getChannelStats} from 'mattermost-redux/actions/channels'; -import {getChannelsInCurrentTeam, getMyChannelMemberships, getAllChannelStats} from 'mattermost-redux/selectors/entities/channels'; - -import {Constants, StoragePrefixes} from 'utils/constants'; +import {getChannels, getArchivedChannels, joinChannel} from 'mattermost-redux/actions/channels'; +import {getOtherChannels, getChannelsInCurrentTeam} from 'mattermost-redux/selectors/entities/channels'; import {searchMoreChannels} from 'actions/channel_actions'; import {openModal, closeModal} from 'actions/views/modals'; -import {setGlobalItem} from 'actions/storage'; import {closeRightHandSide} from 'actions/views/rhs'; import {getIsRhsOpen, getRhsState} from 'selectors/rhs'; -import {GlobalState} from 'types/store'; import {ModalData} from 'types/actions'; - -import {makeGetGlobalItem} from 'selectors/storage'; +import {GlobalState} from 'types/store'; import MoreChannels from './more_channels'; -const getChannelsWithoutArchived = createSelector( - 'getChannelsWithoutArchived', - getChannelsInCurrentTeam, - (channels: Channel[]) => channels && channels.filter((c) => c.delete_at === 0 && c.type !== Constants.PRIVATE_CHANNEL), +const getNotArchivedOtherChannels = createSelector( + 'getNotArchivedOtherChannels', + getOtherChannels, + (channels: Channel[]) => channels && channels.filter((c) => c.delete_at === 0), ); const getArchivedOtherChannels = createSelector( @@ -45,19 +40,15 @@ const getArchivedOtherChannels = createSelector( function mapStateToProps(state: GlobalState) { const team = getCurrentTeam(state) || {}; - const getGlobalItem = makeGetGlobalItem(StoragePrefixes.HIDE_JOINED_CHANNELS, 'false'); return { - channels: getChannelsWithoutArchived(state) || [], + channels: getNotArchivedOtherChannels(state) || [], archivedChannels: getArchivedOtherChannels(state) || [], currentUserId: getCurrentUserId(state), teamId: team.id, teamName: team.name, channelsRequestStarted: state.requests.channels.getChannels.status === RequestStatus.STARTED, canShowArchivedChannels: (getConfig(state).ExperimentalViewArchivedChannels === 'true'), - myChannelMemberships: getMyChannelMemberships(state) || {}, - allChannelStats: getAllChannelStats(state) || {}, - shouldHideJoinedChannels: getGlobalItem(state) === 'true', rhsState: getRhsState(state), rhsOpen: getIsRhsOpen(state), }; @@ -70,8 +61,6 @@ type Actions = { searchMoreChannels: (term: string, shouldShowArchivedChannels: boolean) => Promise; openModal:

(modalData: ModalData

) => void; closeModal: (modalId: string) => void; - getChannelStats: (channelId: string) => void; - setGlobalItem: (name: string, value: string) => void; closeRightHandSide: () => void; } @@ -84,8 +73,6 @@ function mapDispatchToProps(dispatch: Dispatch) { searchMoreChannels, openModal, closeModal, - getChannelStats, - setGlobalItem, closeRightHandSide, }, dispatch), }; diff --git a/webapp/channels/src/components/more_channels/more_channels.scss b/webapp/channels/src/components/more_channels/more_channels.scss deleted file mode 100644 index d86fd138a7..0000000000 --- a/webapp/channels/src/components/more_channels/more_channels.scss +++ /dev/null @@ -1,295 +0,0 @@ -@charset 'UTF-8'; - -#moreChannelsModal { - .modal-content { - min-height: 600px; - max-height: calc(50vh - 240px); - } - - .modal-dialog { - margin-top: calc(45vh - 240px) !important; - } - - .filter-row--full { - position: relative; - margin: 0 32px; - - .input-clear { - top: 16px; - right: 16px; - } - - #searchIcon { - position: absolute; - top: 14px; - left: 16px; - color: rgba(var(--center-channel-color-rgb), 0.64); - pointer-events: none; - } - - #searchChannelsTextbox { - height: 48px; - padding-left: 40px; - border: 1px solid rgba(var(--center-channel-color-rgb), 0.16); - box-shadow: none; - font-size: 16px; - - &::placeholder { - color: var(--center-channel-color); - } - - &:focus { - border: 2px solid var(--button-bg); - } - } - } - - .more-modal__dropdown { - display: flex; - align-items: center; - justify-content: space-between; - padding: 8px 32px; - border-bottom: solid 1px rgba(var(--center-channel-color-rgb), 0.16); - margin: 0; - - span { - color: rgba(var(--center-channel-color-rgb), 0.64); - font-size: 12px; - line-height: 16px; - } - - .MenuItem__primary-text { - width: 100%; - color: var(--center-channel-color); - font-size: 14px; - font-weight: 400; - line-height: 20px; - - svg { - margin-left: auto; - } - } - - .Menu__content { - border-color: rgba(var(--center-channel-color-rgb), 0.16); - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); - } - - #channelCountLabel { - color: var(--center-channel-color); - font-size: 12px; - font-weight: 400; - } - - #modalPreferenceContainer { - display: flex; - align-items: center; - justify-content: center; - - .get-app__checkbox { - display: flex; - width: 16px; - height: 16px; - align-items: center; - border: 1px solid rgba(var(--center-channel-color-rgb), 0.24); - } - - #hideJoinedPreferenceCheckbox { - display: flex; - align-items: center; - cursor: pointer; - } - - #channelsMoreDropdown { - margin: 0 8px; - } - - #menuWrapper { - display: flex; - align-items: center; - justify-content: center; - padding: 4px 6px 4px 8px; - } - - .MenuWrapper:hover { - background-color: rgba(var(--center-channel-color-rgb), 0.08); - border-radius: 4px; - } - - .MenuWrapper--open { - background-color: rgba(var(--button-bg-rgb), 0.12); - border-radius: 4px; - - &:hover { - background-color: rgba(var(--button-bg-rgb), 0.12); - } - } - } - } - - .modal-body { - padding: 15px 0 0; - - .filtered-user-list { - height: 500px; - } - - .more-modal__row { - padding: 0 32px; - border-bottom: none; - - .more-modal__details { - padding-left: 0; - color: rgba(var(--center-channel-color-rgb), 0.56); - - svg { - flex-shrink: 0; - } - - .more-modal__name { - align-items: center; - margin-top: 0; - - span { - color: var(--center-channel-color); - font-weight: 500; - } - } - - #channelPurposeContainer { - display: flex; - align-items: center; - justify-content: flex-start; - - .dot { - width: 3px; - height: 3px; - flex-shrink: 0; - background-color: rgba(var(--center-channel-color-rgb), 0.56); - border-radius: 50%; - } - - .more-modal__description { - margin-left: 4px; - font-weight: 400; - } - - #membershipIndicatorContainer { - display: flex; - align-items: center; - - span, - svg { - color: var(--online-indicator); - } - } - - span { - margin: 0 4px; - font-size: 12px; - font-weight: 600; - line-height: 12px; - opacity: 1; - } - } - } - - .more-modal__actions { - button { - display: none; - min-width: 54px; - height: 32px; - font-size: 12px; - font-weight: 600; - } - } - } - - .more-modal__row:hover, - .more-modal__row:focus { - background-color: rgba(var(--center-channel-color-rgb), 0.08); - cursor: pointer; - - .more-modal__actions { - .primaryButton, - .outlineButton { - display: inline-block; - } - } - } - - .form-group { - padding: 0 32px; - margin-bottom: 0; - } - - ::-webkit-scrollbar { - width: 4px; - } - - ::-webkit-scrollbar-track { - background: none; - } - } - - .modal-header { - .GenericModal__header { - display: flex; - width: 95%; - align-items: center; - justify-content: space-between; - padding-right: 4px; - } - - .close { - top: 22px; - } - } - - .outlineButton { - border: 1px solid var(--button-bg); - background: none; - border-radius: 4px; - color: var(--button-bg); - font-size: 12px; - font-weight: 600; - line-height: 16px; - } - - .outlineButton:hover { - background-color: rgba(var(--button-bg-rgb), 0.08); - } - - .filter-controls { - padding: 0; - - button { - min-width: 72px; - margin: 8px 32px; - } - } -} - -#moreChannelsList { - .primary-message { - margin-top: 8px; - color: var(--center-channel-color); - line-height: 28px; - } - - .secondary-message { - margin-bottom: 30px; - } - - .primaryButton { - background-color: var(--button-bg); - border-radius: 4px; - color: var(--button-color); - font-size: 14px; - font-weight: 600; - } - - #createNewChannelButton { - padding: 10px 20px; - } -} diff --git a/webapp/channels/src/components/more_channels/more_channels.test.tsx b/webapp/channels/src/components/more_channels/more_channels.test.tsx index 4d05021650..a591bfef5b 100644 --- a/webapp/channels/src/components/more_channels/more_channels.test.tsx +++ b/webapp/channels/src/components/more_channels/more_channels.test.tsx @@ -7,7 +7,7 @@ import {shallow} from 'enzyme'; import {ActionResult} from 'mattermost-redux/types/actions'; import MoreChannels, {Props} from 'components/more_channels/more_channels'; -import SearchableChannelList from 'components/more_channels/searchable_channel_list.jsx'; +import SearchableChannelList from 'components/searchable_channel_list.jsx'; import {getHistory} from 'utils/browser_history'; import {TestHelper} from 'utils/test_helper'; @@ -59,16 +59,7 @@ describe('components/MoreChannels', () => { }; const baseProps: Props = { - channels: [ - TestHelper.getChannelMock({ - id: 'channel-1', - name: 'channel-1', - }), - TestHelper.getChannelMock({ - id: 'channel-2', - name: 'channel-2', - }), - ], + channels: [TestHelper.getChannelMock({})], archivedChannels: [TestHelper.getChannelMock({ id: 'channel_id_2', team_id: 'channel_team_2', @@ -82,14 +73,6 @@ describe('components/MoreChannels', () => { teamName: 'team_name', channelsRequestStarted: false, canShowArchivedChannels: true, - myChannelMemberships: { - 'channel-2': TestHelper.getChannelMembershipMock({ - channel_id: 'channel-2', - user_id: 'user-1', - }), - }, - allChannelStats: {}, - shouldHideJoinedChannels: false, actions: { getChannels: jest.fn(), getArchivedChannels: jest.fn(), @@ -97,8 +80,6 @@ describe('components/MoreChannels', () => { searchMoreChannels: jest.fn(channelActions.searchMoreChannels), openModal: jest.fn(), closeModal: jest.fn(), - getChannelStats: jest.fn(), - setGlobalItem: jest.fn(), closeRightHandSide: jest.fn(), }, }; @@ -110,6 +91,7 @@ describe('components/MoreChannels', () => { expect(wrapper).toMatchSnapshot(); expect(wrapper.state('searchedChannels')).toEqual([]); + expect(wrapper.state('show')).toEqual(true); expect(wrapper.state('shouldShowArchivedChannels')).toEqual(false); expect(wrapper.state('search')).toEqual(false); expect(wrapper.state('serverError')).toBeNull(); @@ -120,6 +102,16 @@ describe('components/MoreChannels', () => { expect(wrapper.instance().props.actions.getChannels).toHaveBeenCalledWith(wrapper.instance().props.teamId, 0, 100); }); + test('should match state on handleHide', () => { + const wrapper = shallow( + , + ); + wrapper.setState({show: true}); + + wrapper.instance().handleHide(); + expect(wrapper.state('show')).toEqual(false); + }); + test('should call closeModal on handleExit', () => { const wrapper = shallow( , @@ -160,7 +152,7 @@ describe('components/MoreChannels', () => { , ); - wrapper.setState({loading: false, search: true, searching: true}); + wrapper.setState({search: true, searching: true}); const searchList = wrapper.find(SearchableChannelList); expect(searchList.props().loading).toEqual(true); }); @@ -219,6 +211,7 @@ describe('components/MoreChannels', () => { process.nextTick(() => { expect(getHistory().push).toHaveBeenCalledTimes(1); expect(callback).toHaveBeenCalledTimes(1); + expect(wrapper.state('show')).toEqual(false); done(); }); }); @@ -256,7 +249,7 @@ describe('components/MoreChannels', () => { jest.runOnlyPendingTimers(); expect(wrapper.instance().props.actions.searchMoreChannels).toHaveBeenCalledTimes(1); - expect(wrapper.instance().props.actions.searchMoreChannels).toHaveBeenCalledWith('fail', false, false); + expect(wrapper.instance().props.actions.searchMoreChannels).toHaveBeenCalledWith('fail', false); process.nextTick(() => { expect(wrapper.state('search')).toEqual(true); expect(wrapper.state('searching')).toEqual(false); @@ -283,7 +276,7 @@ describe('components/MoreChannels', () => { jest.runOnlyPendingTimers(); expect(wrapper.instance().props.actions.searchMoreChannels).toHaveBeenCalledTimes(1); - expect(wrapper.instance().props.actions.searchMoreChannels).toHaveBeenCalledWith('channel', false, false); + expect(wrapper.instance().props.actions.searchMoreChannels).toHaveBeenCalledWith('channel', false); process.nextTick(() => { expect(wrapper.state('search')).toEqual(true); expect(wrapper.state('searching')).toEqual(false); @@ -310,7 +303,7 @@ describe('components/MoreChannels', () => { jest.runOnlyPendingTimers(); expect(wrapper.instance().props.actions.searchMoreChannels).toHaveBeenCalledTimes(1); - expect(wrapper.instance().props.actions.searchMoreChannels).toHaveBeenCalledWith('channel', true, false); + expect(wrapper.instance().props.actions.searchMoreChannels).toHaveBeenCalledWith('channel', true); process.nextTick(() => { expect(wrapper.state('search')).toEqual(true); expect(wrapper.state('searching')).toEqual(false); @@ -318,16 +311,4 @@ describe('components/MoreChannels', () => { done(); }); }); - - test('should hide joined channels from channels props when shouldHideJoinedChannels prop is true', () => { - const props = { - ...baseProps, - shouldHideJoinedChannels: true, - }; - const wrapper = shallow( - , - ); - - expect(wrapper.instance().activeChannels).not.toContain(baseProps.channels[1]); - }); }); diff --git a/webapp/channels/src/components/more_channels/more_channels.tsx b/webapp/channels/src/components/more_channels/more_channels.tsx index 235744166e..b51606db19 100644 --- a/webapp/channels/src/components/more_channels/more_channels.tsx +++ b/webapp/channels/src/components/more_channels/more_channels.tsx @@ -2,32 +2,23 @@ // See LICENSE.txt for license information. import React from 'react'; +import {Modal} from 'react-bootstrap'; import {FormattedMessage} from 'react-intl'; -import classNames from 'classnames'; - import {ActionResult} from 'mattermost-redux/types/actions'; -import {Channel, ChannelMembership, ChannelStats} from '@mattermost/types/channels'; +import {Channel} from '@mattermost/types/channels'; import Permissions from 'mattermost-redux/constants/permissions'; -import {RelationOneToOne} from '@mattermost/types/utilities'; - import NewChannelModal from 'components/new_channel_modal/new_channel_modal'; +import SearchableChannelList from 'components/searchable_channel_list.jsx'; import TeamPermissionGate from 'components/permissions_gates/team_permission_gate'; -import GenericModal from 'components/generic_modal'; -import LoadingScreen from 'components/loading_screen'; import {ModalData} from 'types/actions'; import {RhsState} from 'types/store/rhs'; import {getHistory} from 'utils/browser_history'; -import {ModalIdentifiers, StoragePrefixes, RHSStates} from 'utils/constants'; +import {ModalIdentifiers, RHSStates} from 'utils/constants'; import {getRelativeChannelURL} from 'utils/url'; -import {localizeMessage} from 'utils/utils'; - -import SearchableChannelList from './searchable_channel_list'; - -import './more_channels.scss'; const CHANNELS_CHUNK_SIZE = 50; const CHANNELS_PER_PAGE = 50; @@ -37,15 +28,9 @@ type Actions = { getChannels: (teamId: string, page: number, perPage: number) => void; getArchivedChannels: (teamId: string, page: number, channelsPerPage: number) => void; joinChannel: (currentUserId: string, teamId: string, channelId: string) => Promise; - searchMoreChannels: (term: string, shouldShowArchivedChannels: boolean, shouldHideJoinedChannels: boolean) => Promise; + searchMoreChannels: (term: string, shouldShowArchivedChannels: boolean) => Promise; openModal:

(modalData: ModalData

) => void; closeModal: (modalId: string) => void; - getChannelStats: (channelId: string) => void; - - /* - * Function to set a key-value pair in the local storage - */ - setGlobalItem: (name: string, value: string) => void; closeRightHandSide: () => void; } @@ -58,27 +43,23 @@ export type Props = { channelsRequestStarted?: boolean; canShowArchivedChannels?: boolean; morePublicChannelsModalType?: string; - myChannelMemberships: RelationOneToOne; - allChannelStats: RelationOneToOne; - shouldHideJoinedChannels: boolean; rhsState?: RhsState; rhsOpen?: boolean; actions: Actions; } type State = { + show: boolean; shouldShowArchivedChannels: boolean; search: boolean; searchedChannels: Channel[]; serverError: React.ReactNode | string; searching: boolean; searchTerm: string; - loading: boolean; } export default class MoreChannels extends React.PureComponent { public searchTimeoutId: number; - activeChannels: Channel[] = []; constructor(props: Props) { super(props); @@ -86,27 +67,25 @@ export default class MoreChannels extends React.PureComponent { this.searchTimeoutId = 0; this.state = { + show: true, shouldShowArchivedChannels: this.props.morePublicChannelsModalType === 'private', search: false, searchedChannels: [], serverError: null, searching: false, searchTerm: '', - loading: true, }; } - async componentDidMount() { - await this.props.actions.getChannels(this.props.teamId, 0, CHANNELS_CHUNK_SIZE * 2); + componentDidMount() { + this.props.actions.getChannels(this.props.teamId, 0, CHANNELS_CHUNK_SIZE * 2); if (this.props.canShowArchivedChannels) { - await this.props.actions.getArchivedChannels(this.props.teamId, 0, CHANNELS_CHUNK_SIZE * 2); + this.props.actions.getArchivedChannels(this.props.teamId, 0, CHANNELS_CHUNK_SIZE * 2); } - await this.props.channels.forEach((channel) => this.props.actions.getChannelStats(channel.id)); - this.loadComplete(); } - loadComplete = () => { - this.setState({loading: false}); + handleHide = () => { + this.setState({show: false}); } handleNewChannel = () => { @@ -145,17 +124,14 @@ export default class MoreChannels extends React.PureComponent { handleJoin = async (channel: Channel, done: () => void) => { const {actions, currentUserId, teamId, teamName} = this.props; - let result; + const result = await actions.joinChannel(currentUserId, teamId, channel.id); - if (!this.isMemberOfChannel(channel.id)) { - result = await actions.joinChannel(currentUserId, teamId, channel.id); - } - - if (result?.error) { + if (result.error) { this.setState({serverError: result.error.message}); } else { getHistory().push(getRelativeChannelURL(teamName, channel.name)); this.closeEditRHS(); + this.handleHide(); } if (done) { @@ -177,7 +153,7 @@ export default class MoreChannels extends React.PureComponent { const searchTimeoutId = window.setTimeout( async () => { try { - const {data} = await this.props.actions.searchMoreChannels(term, this.state.shouldShowArchivedChannels, this.props.shouldHideJoinedChannels); + const {data} = await this.props.actions.searchMoreChannels(term, this.state.shouldShowArchivedChannels); if (searchTimeoutId !== this.searchTimeoutId) { return; } @@ -207,47 +183,29 @@ export default class MoreChannels extends React.PureComponent { this.setState({shouldShowArchivedChannels}); } - isMemberOfChannel(channelId: string) { - return this.props.myChannelMemberships[channelId]; - } - - handleShowJoinedChannelsPreference = (shouldHideJoinedChannels: boolean) => { - // search again when switching channels to update search results - this.search(this.state.searchTerm); - this.props.actions.setGlobalItem(StoragePrefixes.HIDE_JOINED_CHANNELS, shouldHideJoinedChannels.toString()); - } - - otherChannelsWithoutJoined = this.props.channels.filter((channel) => !this.isMemberOfChannel(channel.id)); - archivedChannelsWithoutJoined = this.props.archivedChannels.filter((channel) => !this.isMemberOfChannel(channel.id)); - render() { const { channels, archivedChannels, teamId, channelsRequestStarted, - shouldHideJoinedChannels, } = this.props; const { search, searchedChannels, serverError: serverErrorState, + show, searching, shouldShowArchivedChannels, } = this.state; - const otherChannelsWithoutJoined = channels.filter((channel) => !this.isMemberOfChannel(channel.id)); - const archivedChannelsWithoutJoined = archivedChannels.filter((channel) => !this.isMemberOfChannel(channel.id)); + let activeChannels; - if (shouldShowArchivedChannels && shouldHideJoinedChannels) { - this.activeChannels = search ? searchedChannels : archivedChannelsWithoutJoined; - } else if (shouldShowArchivedChannels && !shouldHideJoinedChannels) { - this.activeChannels = search ? searchedChannels : archivedChannels; - } else if (!shouldShowArchivedChannels && shouldHideJoinedChannels) { - this.activeChannels = search ? searchedChannels : otherChannelsWithoutJoined; + if (shouldShowArchivedChannels) { + activeChannels = search ? searchedChannels : archivedChannels; } else { - this.activeChannels = search ? searchedChannels : channels; + activeChannels = search ? searchedChannels : channels; } let serverError; @@ -256,87 +214,87 @@ export default class MoreChannels extends React.PureComponent {

; } - const createNewChannelButton = (className: string, icon?: JSX.Element) => { - const buttonClassName = classNames('btn', className); - return ( - + - - ); - }; - - const noResultsText = ( - <> -

-

- {createNewChannelButton('primaryButton', )} - + + ); - const body = this.state.loading ? : ( + const createChannelHelpText = ( + +

+ +

+
+ ); + + const body = ( {serverError} ); - const title = ( - - ); - return ( - - {body} - + + + + + {createNewChannelButton} + + + {body} + + ); } } diff --git a/webapp/channels/src/components/more_channels/searchable_channel_list.jsx b/webapp/channels/src/components/more_channels/searchable_channel_list.jsx deleted file mode 100644 index 0efe317296..0000000000 --- a/webapp/channels/src/components/more_channels/searchable_channel_list.jsx +++ /dev/null @@ -1,483 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -import PropTypes from 'prop-types'; -import React from 'react'; -import {FormattedMessage} from 'react-intl'; - -import {AccountOutlineIcon, ArchiveOutlineIcon, CheckIcon, ChevronDownIcon, GlobeIcon, LockOutlineIcon, MagnifyIcon} from '@mattermost/compass-icons/components'; - -import classNames from 'classnames'; - -import {isPrivateChannel} from 'mattermost-redux/utils/channel_utils'; - -import LoadingScreen from 'components/loading_screen'; -import LoadingWrapper from 'components/widgets/loading/loading_wrapper'; -import QuickInput from 'components/quick_input'; -import LocalizedInput from 'components/localized_input/localized_input'; -import CheckboxCheckedIcon from 'components/widgets/icons/checkbox_checked_icon'; -import MagnifyingGlassSVG from 'components/common/svg_images_components/magnifying_glass_svg'; -import MenuWrapper from 'components/widgets/menu/menu_wrapper'; -import Menu from 'components/widgets/menu/menu'; - -import {t} from 'utils/i18n'; -import * as UserAgent from 'utils/user_agent'; -import Constants, {ModalIdentifiers} from 'utils/constants'; -import {isKeyPressed, localizeMessage, localizeAndFormatMessage} from 'utils/utils'; - -import {isArchivedChannel} from 'utils/channel_utils'; - -const NEXT_BUTTON_TIMEOUT_MILLISECONDS = 500; - -export default class SearchableChannelList extends React.PureComponent { - static getDerivedStateFromProps(props, state) { - return {isSearch: props.isSearch, page: props.isSearch && !state.isSearch ? 0 : state.page}; - } - - constructor(props) { - super(props); - - this.nextTimeoutId = 0; - - this.state = { - joiningChannel: '', - page: 0, - nextDisabled: false, - channelSearchValue: '', - }; - - this.filter = React.createRef(); - this.channelListScroll = React.createRef(); - } - - componentDidMount() { - // only focus the search box on desktop so that we don't cause the keyboard to open on mobile - if (!UserAgent.isMobile() && this.filter.current) { - this.filter.current.focus(); - } - document.addEventListener('keydown', this.onKeyDown); - } - - componentWillUnmount() { - document.removeEventListener('keydown', this.onKeyDown); - } - - onKeyDown = (e) => { - const target = e.target; - const isEnterKeyPressed = isKeyPressed(e, Constants.KeyCodes.ENTER); - if (isEnterKeyPressed && (e.shiftKey || e.ctrlKey || e.altKey)) { - return; - } - if (isEnterKeyPressed && target.classList.contains('more-modal__row')) { - target.click(); - } - } - - handleJoin = (channel, e) => { - e.stopPropagation(); - this.setState({joiningChannel: channel.id}); - this.props.handleJoin( - channel, - () => { - this.setState({joiningChannel: ''}); - }, - ); - if (this.isMemberOfChannel(channel.id)) { - this.props.closeModal(ModalIdentifiers.MORE_CHANNELS); - } - } - - isMemberOfChannel(channelId) { - return this.props.myChannelMemberships[channelId]; - } - - createChannelRow = (channel) => { - const ariaLabel = `${channel.display_name}, ${channel.purpose}`.toLowerCase(); - let channelTypeIcon; - - let memberCount = 0; - if (this.props.allChannelStats[channel.id]) { - memberCount = this.props.allChannelStats[channel.id].member_count; - } - - if (isArchivedChannel(channel)) { - channelTypeIcon = ; - } else if (isPrivateChannel(channel)) { - channelTypeIcon = ; - } else { - channelTypeIcon = ; - } - - const membershipIndicator = this.isMemberOfChannel(channel.id) ? ( -
- - - -
- ) : null; - - const channelPurposeContainerAriaLabel = localizeAndFormatMessage( - t('more_channels.channel_purpose'), - 'Channel Information: Membership Indicator: Joined, Member count {memberCount} , Purpose: {channelPurpose}', - {memberCount, channelPurpose: channel.purpose || ''}, - ); - - const channelPurposeContainer = ( -
- {membershipIndicator} - - {memberCount} - {channel.purpose.length > 0 && } - {channel.purpose} -
- ); - - const joinViewChannelButtonClass = classNames('btn', { - outlineButton: this.isMemberOfChannel(channel.id), - primaryButton: !this.isMemberOfChannel(channel.id), - }); - - const joinViewChannelButton = ( - - ); - - return ( -
this.handleJoin(channel, e)} - tabIndex={0} - > -
-
- {channelTypeIcon} - {channel.display_name} -
- {channelPurposeContainer} -
-
- {joinViewChannelButton} -
-
- ); - } - - nextPage = (e) => { - e.preventDefault(); - this.setState({page: this.state.page + 1, nextDisabled: true}); - this.nextTimeoutId = setTimeout(() => this.setState({nextDisabled: false}), NEXT_BUTTON_TIMEOUT_MILLISECONDS); - this.props.nextPage(this.state.page + 1); - this.channelListScroll.current?.scrollTo({top: 0}); - } - - previousPage = (e) => { - e.preventDefault(); - this.setState({page: this.state.page - 1}); - this.channelListScroll.current?.scrollTo({top: 0}); - } - - doSearch = () => { - this.props.search(this.state.channelSearchValue); - if (this.state.channelSearchValue === '') { - this.setState({page: 0}); - } - } - - handleChange = (e) => { - if (e.target) { - this.setState({channelSearchValue: e.target.value}, () => this.doSearch()); - } - } - - handleClear = () => { - this.setState({channelSearchValue: ''}, () => this.doSearch()); - } - - toggleArchivedChannelsOn = () => { - this.props.toggleArchivedChannels(true); - } - - toggleArchivedChannelsOff = () => { - this.props.toggleArchivedChannels(false); - } - - handleChecked = () => { - // If it was checked, and now we're unchecking it, clear the preference - if (this.props.rememberHideJoinedChannelsChecked) { - this.props.hideJoinedChannelsPreference(false); - } else { - this.props.hideJoinedChannelsPreference(true); - } - } - - render() { - const channels = this.props.channels; - let listContent; - let nextButton; - let previousButton; - - let emptyStateMessage = ( - - ); - - if (this.state.channelSearchValue.length > 0) { - emptyStateMessage = ( - - ); - } - - if (this.props.loading && channels.length === 0) { - listContent = ; - } else if (channels.length === 0) { - listContent = ( -
0 ? - localizeAndFormatMessage(t('more_channels.noMore'), 'No results for {text}', {text: this.state.channelSearchValue}) : - localizeMessage('widgets.channels_input.empty', 'No channels found') - } - > - -

- {emptyStateMessage} -

- {this.props.noResultsText} -
- ); - } else { - const pageStart = this.state.page * this.props.channelsPerPage; - const pageEnd = pageStart + this.props.channelsPerPage; - const channelsToDisplay = this.props.channels.slice(pageStart, pageEnd); - listContent = channelsToDisplay.map(this.createChannelRow); - - if (channelsToDisplay.length >= this.props.channelsPerPage && pageEnd < this.props.channels.length) { - nextButton = ( - - ); - } - - if (this.state.page > 0) { - previousButton = ( - - ); - } - } - - const input = ( -
- - -
- ); - - let channelDropdown; - let checkIcon; - - if (this.props.canShowArchivedChannels) { - checkIcon = ( - - ); - channelDropdown = ( - - - {this.props.shouldShowArchivedChannels ? localizeMessage('more_channels.show_archived_channels', 'Channel Type: Archived') : localizeMessage('more_channels.show_public_channels', 'Channel Type: Public')} - - - -
- } - text={localizeMessage('suggestion.search.public', 'Public Channels')} - rightDecorator={this.props.shouldShowArchivedChannels ? null : checkIcon} - ariaLabel={localizeMessage('suggestion.search.public', 'Public Channels')} - /> -
- } - text={localizeMessage('suggestion.archive', 'Archived Channels')} - rightDecorator={this.props.shouldShowArchivedChannels ? checkIcon : null} - ariaLabel={localizeMessage('suggestion.archive', 'Archived Channels')} - /> -
-
- ); - } - - const hideJoinedButtonClass = classNames('get-app__checkbox', {checked: this.props.rememberHideJoinedChannelsChecked}); - const hideJoinedPreferenceCheckbox = ( -
- - -
- ); - - let channelCountLabel; - if (channels.length === 0) { - channelCountLabel = localizeMessage('more_channels.count_zero', '0 Results'); - } else if (channels.length === 1) { - channelCountLabel = localizeMessage('more_channels.count_one', '1 Result'); - } else if (channels.length > 1) { - channelCountLabel = localizeAndFormatMessage(t('more_channels.count'), '0 Results', {count: channels.length}); - } else { - channelCountLabel = localizeMessage('more_channels.count_zero', '0 Results'); - } - - const dropDownContainer = ( -
- {channelCountLabel} -
- {channelDropdown} - {hideJoinedPreferenceCheckbox} -
-
- ); - - return ( -
- {input} - {dropDownContainer} -
-
- {listContent} -
-
-
- {previousButton} - {nextButton} -
-
- ); - } -} - -SearchableChannelList.defaultProps = { - channels: [], - isSearch: false, -}; - -SearchableChannelList.propTypes = { - channels: PropTypes.arrayOf(PropTypes.object), - channelsPerPage: PropTypes.number, - nextPage: PropTypes.func.isRequired, - isSearch: PropTypes.bool, - search: PropTypes.func.isRequired, - handleJoin: PropTypes.func.isRequired, - noResultsText: PropTypes.object, - loading: PropTypes.bool, - toggleArchivedChannels: PropTypes.func.isRequired, - shouldShowArchivedChannels: PropTypes.bool.isRequired, - canShowArchivedChannels: PropTypes.bool.isRequired, - myChannelMemberships: PropTypes.object.isRequired, - allChannelStats: PropTypes.object.isRequired, - closeModal: PropTypes.func.isRequired, - hideJoinedChannelsPreference: PropTypes.func.isRequired, - rememberHideJoinedChannelsChecked: PropTypes.bool.isRequired, -}; -/* eslint-enable react/no-string-refs */ diff --git a/webapp/channels/src/components/plugin_marketplace/marketplace_modal.test.tsx b/webapp/channels/src/components/plugin_marketplace/marketplace_modal.test.tsx index 4bf24800a9..3e2938603c 100644 --- a/webapp/channels/src/components/plugin_marketplace/marketplace_modal.test.tsx +++ b/webapp/channels/src/components/plugin_marketplace/marketplace_modal.test.tsx @@ -119,6 +119,7 @@ describe('components/marketplace/', () => { pluginStatuses: {}, siteURL: 'http://example.com', firstAdminVisitMarketplaceStatus: false, + openedFrom: 'actions_menu', actions: { closeModal: jest.fn(), fetchListing: jest.fn(() => { @@ -191,8 +192,21 @@ describe('components/marketplace/', () => { wrapper.setState({filter: 'nps'}); wrapper.instance().doSearch(); - expect(trackEvent).toHaveBeenCalledWith('plugins', 'ui_marketplace_opened'); + expect(trackEvent).toHaveBeenCalledWith('plugins', 'ui_marketplace_opened', {from: 'actions_menu'}); expect(trackEvent).toHaveBeenCalledWith('plugins', 'ui_marketplace_search', {filter: 'nps'}); }); + + test('Should call for opened track event on mount', () => { + const openedFrom = 'actions_menu'; + + shallow( + , + ); + + expect(trackEvent).toHaveBeenCalledWith('plugins', 'ui_marketplace_opened', {from: openedFrom}); + }); }); }); diff --git a/webapp/channels/src/components/plugin_marketplace/marketplace_modal.tsx b/webapp/channels/src/components/plugin_marketplace/marketplace_modal.tsx index bc80cde1de..59ac7510ba 100644 --- a/webapp/channels/src/components/plugin_marketplace/marketplace_modal.tsx +++ b/webapp/channels/src/components/plugin_marketplace/marketplace_modal.tsx @@ -31,6 +31,8 @@ const MarketplaceTabs = { const SEARCH_TIMEOUT_MILLISECONDS = 200; +export type OpenedFromType = 'actions_menu' | 'app_bar' | 'channel_header' | 'command' | 'open_plugin_install_post' | 'product_menu'; + type AllListingProps = { listing: Array; }; @@ -97,6 +99,7 @@ export type MarketplaceModalProps = { siteURL: string; pluginStatuses?: Record; firstAdminVisitMarketplaceStatus: boolean; + openedFrom: OpenedFromType; actions: { closeModal: () => void; fetchListing(localOnly?: boolean): Promise<{error?: Error}>; @@ -131,7 +134,7 @@ export default class MarketplaceModal extends React.PureComponent { + this.setState({joiningChannel: ''}); + }, + ); + } + + createChannelRow = (channel) => { + const ariaLabel = `${channel.display_name}, ${channel.purpose}`.toLowerCase(); + let archiveIcon; + let sharedIcon; + const {shouldShowArchivedChannels} = this.props; + + if (shouldShowArchivedChannels) { + archiveIcon = ( + + ); + } + + if (channel.shared) { + sharedIcon = ( + + ); + } + + return ( +
+
+ +

{channel.purpose}

+
+
+ +
+
+ ); + } + + nextPage = (e) => { + e.preventDefault(); + this.setState({page: this.state.page + 1, nextDisabled: true}); + this.nextTimeoutId = setTimeout(() => this.setState({nextDisabled: false}), NEXT_BUTTON_TIMEOUT_MILLISECONDS); + this.props.nextPage(this.state.page + 1); + this.channelListScroll.current?.scrollTo({top: 0}); + } + + previousPage = (e) => { + e.preventDefault(); + this.setState({page: this.state.page - 1}); + this.channelListScroll.current?.scrollTo({top: 0}); + } + + doSearch = () => { + const term = this.filter.current.value; + this.props.search(term); + if (term === '') { + this.setState({page: 0}); + } + } + toggleArchivedChannelsOn = () => { + this.props.toggleArchivedChannels(true); + } + toggleArchivedChannelsOff = () => { + this.props.toggleArchivedChannels(false); + } + + render() { + const channels = this.props.channels; + let listContent; + let nextButton; + let previousButton; + + if (this.props.loading && channels.length === 0) { + listContent = ; + } else if (channels.length === 0) { + listContent = ( +
+

+ +

+ {this.props.noResultsText} +
+ ); + } else { + const pageStart = this.state.page * this.props.channelsPerPage; + const pageEnd = pageStart + this.props.channelsPerPage; + const channelsToDisplay = this.props.channels.slice(pageStart, pageEnd); + listContent = channelsToDisplay.map(this.createChannelRow); + + if (channelsToDisplay.length >= this.props.channelsPerPage && pageEnd < this.props.channels.length) { + nextButton = ( + + ); + } + + if (this.state.page > 0) { + previousButton = ( + + ); + } + } + + let input = ( +
+
+ +
+
+ ); + + if (this.props.createChannelButton) { + input = ( +
+
+ +
+
+ {this.props.createChannelButton} +
+
+ ); + } + + let channelDropdown; + + if (this.props.canShowArchivedChannels) { + channelDropdown = ( + + ); + } + + return ( +
+ {input} + {channelDropdown} +
+
+ {listContent} +
+
+
+ {previousButton} + {nextButton} +
+
+ ); + } +} + +SearchableChannelList.defaultProps = { + channels: [], + isSearch: false, +}; + +SearchableChannelList.propTypes = { + channels: PropTypes.arrayOf(PropTypes.object), + channelsPerPage: PropTypes.number, + nextPage: PropTypes.func.isRequired, + isSearch: PropTypes.bool, + search: PropTypes.func.isRequired, + handleJoin: PropTypes.func.isRequired, + noResultsText: PropTypes.object, + loading: PropTypes.bool, + createChannelButton: PropTypes.element, + toggleArchivedChannels: PropTypes.func.isRequired, + shouldShowArchivedChannels: PropTypes.bool.isRequired, + canShowArchivedChannels: PropTypes.bool.isRequired, +}; diff --git a/webapp/channels/src/components/more_channels/searchable_channel_list.test.jsx b/webapp/channels/src/components/searchable_channel_list.test.jsx similarity index 70% rename from webapp/channels/src/components/more_channels/searchable_channel_list.test.jsx rename to webapp/channels/src/components/searchable_channel_list.test.jsx index 9953b08225..9ba5ddd4f8 100644 --- a/webapp/channels/src/components/more_channels/searchable_channel_list.test.jsx +++ b/webapp/channels/src/components/searchable_channel_list.test.jsx @@ -4,25 +4,20 @@ import React from 'react'; import {shallow} from 'enzyme'; -import SearchableChannelList from './searchable_channel_list.jsx'; +import SearchableChannelList from 'components/searchable_channel_list.jsx'; describe('components/SearchableChannelList', () => { const baseProps = { channels: [], isSearch: false, channelsPerPage: 10, - nextPage: jest.fn(), - search: jest.fn(), - handleJoin: jest.fn(), + nextPage: () => {}, // eslint-disable-line no-empty-function + search: () => {}, // eslint-disable-line no-empty-function + handleJoin: () => {}, // eslint-disable-line no-empty-function loading: true, - rememberHideJoinedChannelsChecked: false, - toggleArchivedChannels: jest.fn(), + toggleArchivedChannels: () => {}, // eslint-disable-line no-empty-function shouldShowArchivedChannels: false, canShowArchivedChannels: false, - myChannelMemberships: {}, - allChannelStats: {}, - closeModal: jest.fn(), - hideJoinedChannelsPreference: jest.fn(), }; test('should match init snapshot', () => { diff --git a/webapp/channels/src/components/sidebar/__snapshots__/add_channels_cta_button.test.tsx.snap b/webapp/channels/src/components/sidebar/__snapshots__/add_channels_cta_button.test.tsx.snap new file mode 100644 index 0000000000..6b9383a1d6 --- /dev/null +++ b/webapp/channels/src/components/sidebar/__snapshots__/add_channels_cta_button.test.tsx.snap @@ -0,0 +1,46 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`components/new_channel_modal should match snapshot 1`] = ` + + + + + + + + + +`; diff --git a/webapp/channels/src/components/sidebar/__snapshots__/invite_members_button.test.tsx.snap b/webapp/channels/src/components/sidebar/__snapshots__/invite_members_button.test.tsx.snap index 16252a1eb0..809f40e20d 100644 --- a/webapp/channels/src/components/sidebar/__snapshots__/invite_members_button.test.tsx.snap +++ b/webapp/channels/src/components/sidebar/__snapshots__/invite_members_button.test.tsx.snap @@ -82,7 +82,7 @@ exports[`components/sidebar/invite_members_button should match snapshot 1`] = ` >
  • - <> - - + { + const original = jest.requireActual('actions/telemetry_actions.jsx'); + return { + ...original, + trackEvent: jest.fn(), + }; +}); + +const mockDispatch = jest.fn(); +let mockState: GlobalState; + +jest.mock('react-redux', () => ({ + ...jest.requireActual('react-redux') as typeof import('react-redux'), + useSelector: (selector: (state: typeof mockState) => unknown) => selector(mockState), + useDispatch: () => mockDispatch, +})); + +describe('components/new_channel_modal', () => { + beforeEach(() => { + mockState = { + entities: { + general: { + config: {}, + }, + channels: { + currentChannelId: 'current_channel_id', + channels: {}, + roles: { + current_channel_id: [ + 'channel_user', + 'channel_admin', + ], + }, + }, + teams: { + currentTeamId: 'current_team_id', + myMembers: { + current_team_id: { + roles: 'team_user team_admin', + }, + }, + teams: { + current_team_id: { + id: 'current_team_id', + description: 'Curent team description', + name: 'current-team', + }, + }, + }, + preferences: { + myPreferences: {}, + }, + users: { + currentUserId: 'current_user_id', + profiles: { + current_user_id: {roles: 'system_user'}, + }, + }, + roles: { + roles: { + guest_user: { + permissions: [], + }, + system_user: { + permissions: [Permissions.JOIN_PUBLIC_CHANNELS, Permissions.CREATE_PRIVATE_CHANNEL, Permissions.CREATE_PUBLIC_CHANNEL], + }, + }, + }, + }, + views: { + addChannelCtaDropdown: { + isOpen: false, + }, + }, + } as unknown as GlobalState; + }); + + test('should match snapshot', () => { + expect( + shallow( + , + ), + ).toMatchSnapshot(); + }); + + test('should find the add channels button when user has permissions', () => { + const wrapper = mountWithIntl( + , + ); + expect(wrapper.find('.AddChannelsCtaDropdown').exists()).toBeTruthy(); + }); + + test('should return nothing when user does not have permissions', () => { + const guestUser = { + currentUserId: 'guest_user_id', + profiles: { + user_id: { + id: 'guest_user_id', + roles: 'team_role', + }, + }, + } as unknown as UsersState; + mockState = {...mockState, entities: {...mockState.entities, users: guestUser}}; + + const wrapper = mountWithIntl( + , + ); + expect(wrapper.find('.AddChannelsCtaDropdown').exists()).toBeFalsy(); + }); + + test('should fire dispatch to save preferences when button is clicked', () => { + const wrapper = mountWithIntl( + , + ); + const button = wrapper.find('.AddChannelsCtaDropdown button'); + expect(mockDispatch).not.toHaveBeenCalled(); + button.simulate('click'); + expect(mockDispatch).toHaveBeenCalled(); + }); + + test('should fire trackEvent to send telemetry when button is clicked', () => { + const wrapper = mountWithIntl( + , + ); + + const button = wrapper.find('.AddChannelsCtaDropdown button'); + expect(mockDispatch).not.toHaveBeenCalled(); + button.simulate('click'); + + expect(trackEvent).toHaveBeenCalledWith('ui', 'add_channels_cta_button_clicked'); + }); +}); diff --git a/webapp/channels/src/components/sidebar/add_channels_cta_button.tsx b/webapp/channels/src/components/sidebar/add_channels_cta_button.tsx new file mode 100644 index 0000000000..07ed64b9e5 --- /dev/null +++ b/webapp/channels/src/components/sidebar/add_channels_cta_button.tsx @@ -0,0 +1,155 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import React, {useCallback} from 'react'; + +import {useIntl} from 'react-intl'; + +import {useSelector, useDispatch} from 'react-redux'; + +import MenuWrapper from 'components/widgets/menu/menu_wrapper'; +import Menu from 'components/widgets/menu/menu'; +import MoreChannels from 'components/more_channels'; +import NewChannelModal from 'components/new_channel_modal/new_channel_modal'; + +import {isAddChannelCtaDropdownOpen} from 'selectors/views/add_channel_dropdown'; + +import {GlobalState} from 'types/store'; + +import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams'; +import {haveICurrentChannelPermission} from 'mattermost-redux/selectors/entities/roles'; +import {DispatchFunc} from 'mattermost-redux/types/actions'; +import Permissions from 'mattermost-redux/constants/permissions'; +import {getBool} from 'mattermost-redux/selectors/entities/preferences'; +import {savePreferences} from 'mattermost-redux/actions/preferences'; +import {getCurrentUserId} from 'mattermost-redux/selectors/entities/common'; + +import {setAddChannelCtaDropdown} from 'actions/views/add_channel_dropdown'; +import {openModal} from 'actions/views/modals'; +import {trackEvent} from 'actions/telemetry_actions'; + +import {ModalIdentifiers, Preferences, Touched} from 'utils/constants'; + +const AddChannelsCtaButton = (): JSX.Element | null => { + const dispatch = useDispatch(); + const currentTeamId = useSelector(getCurrentTeamId); + const intl = useIntl(); + const touchedAddChannelsCtaButton = useSelector((state: GlobalState) => getBool(state, Preferences.TOUCHED, Touched.ADD_CHANNELS_CTA)); + + const canCreatePublicChannel = useSelector((state: GlobalState) => haveICurrentChannelPermission(state, Permissions.CREATE_PUBLIC_CHANNEL)); + const canCreatePrivateChannel = useSelector((state: GlobalState) => haveICurrentChannelPermission(state, Permissions.CREATE_PRIVATE_CHANNEL)); + const canCreateChannel = canCreatePrivateChannel || canCreatePublicChannel; + const canJoinPublicChannel = useSelector((state: GlobalState) => haveICurrentChannelPermission(state, Permissions.JOIN_PUBLIC_CHANNELS)); + const isAddChannelCtaOpen = useSelector(isAddChannelCtaDropdownOpen); + const currentUserId = useSelector(getCurrentUserId); + const openAddChannelsCtaOpen = useCallback((open: boolean) => { + dispatch(setAddChannelCtaDropdown(open)); + }, []); + + let buttonClass = 'SidebarChannelNavigator__addChannelsCtaLhsButton'; + + if (!touchedAddChannelsCtaButton) { + buttonClass += ' SidebarChannelNavigator__addChannelsCtaLhsButton--untouched'; + } + + if ((!canCreateChannel && !canJoinPublicChannel) || !currentTeamId) { + return null; + } + + const showMoreChannelsModal = () => { + dispatch(openModal({ + modalId: ModalIdentifiers.MORE_CHANNELS, + dialogType: MoreChannels, + dialogProps: {morePublicChannelsModalType: 'public'}, + })); + trackEvent('ui', 'browse_channels_button_is_clicked'); + }; + + const showNewChannelModal = () => { + dispatch(openModal({ + modalId: ModalIdentifiers.NEW_CHANNEL_MODAL, + dialogType: NewChannelModal, + })); + trackEvent('ui', 'create_new_channel_button_is_clicked'); + }; + + const renderDropdownItems = () => { + let joinPublicChannel; + if (canJoinPublicChannel) { + joinPublicChannel = ( + + ); + } + + let createChannel; + if (canCreateChannel) { + createChannel = ( + + ); + } + + return ( + <> + + {createChannel} + {joinPublicChannel} + + + ); + }; + + const trackOpen = (opened: boolean) => { + openAddChannelsCtaOpen(opened); + trackEvent('ui', 'add_channels_cta_button_clicked'); + if (!touchedAddChannelsCtaButton) { + dispatch(savePreferences( + currentUserId, + [{ + category: Preferences.TOUCHED, + user_id: currentUserId, + name: Touched.ADD_CHANNELS_CTA, + value: 'true', + }], + )); + } + }; + + return ( + + + + {renderDropdownItems()} + + + ); +}; + +export default AddChannelsCtaButton; diff --git a/webapp/channels/src/components/sidebar/invite_members_button.tsx b/webapp/channels/src/components/sidebar/invite_members_button.tsx index 0ff3799858..0f3f602d5f 100644 --- a/webapp/channels/src/components/sidebar/invite_members_button.tsx +++ b/webapp/channels/src/components/sidebar/invite_members_button.tsx @@ -32,7 +32,7 @@ type Props = { isAdmin: boolean; } -const InviteMembersButton: React.FC = (props: Props): JSX.Element | null => { +const InviteMembersButton = (props: Props): JSX.Element | null => { const dispatch = useDispatch(); const intl = useIntl(); @@ -50,10 +50,10 @@ const InviteMembersButton: React.FC = (props: Props): JSX.Element | null props.onClick(); }; - let buttonClass = 'SidebarChannelNavigator_inviteMembersLhsButton'; + let buttonClass = 'SidebarChannelNavigator__inviteMembersLhsButton'; if (!props.touchedInviteMembersButton && Number(totalUserCount) <= Constants.USER_LIMIT) { - buttonClass += ' SidebarChannelNavigator_inviteMembersLhsButton--untouched'; + buttonClass += ' SidebarChannelNavigator__inviteMembersLhsButton--untouched'; } if (!currentTeamId || !totalUserCount) { diff --git a/webapp/channels/src/components/sidebar/sidebar_category/sidebar_category.tsx b/webapp/channels/src/components/sidebar/sidebar_category/sidebar_category.tsx index fe33dd7da6..c770a146f6 100644 --- a/webapp/channels/src/components/sidebar/sidebar_category/sidebar_category.tsx +++ b/webapp/channels/src/components/sidebar/sidebar_category/sidebar_category.tsx @@ -24,6 +24,8 @@ import KeyboardShortcutSequence, { KEYBOARD_SHORTCUTS, } from 'components/keyboard_shortcuts/keyboard_shortcuts_sequence'; +import AddChannelsCtaButton from '../add_channels_cta_button'; + import SidebarCategorySortingMenu from './sidebar_category_sorting_menu'; import SidebarCategoryMenu from './sidebar_category_menu'; @@ -342,6 +344,13 @@ export default class SidebarCategory extends React.PureComponent { ); } + let addChannelsCtaButton = null; + if (category.type === 'channels' && !category.collapsed) { + addChannelsCtaButton = ( + + ); + } + return (
    { }} {inviteMembersButton} + {addChannelsCtaButton}
    ); }} diff --git a/webapp/channels/src/i18n/en.json b/webapp/channels/src/i18n/en.json index 6c28bff86c..b7458e403a 100644 --- a/webapp/channels/src/i18n/en.json +++ b/webapp/channels/src/i18n/en.json @@ -2645,6 +2645,7 @@ "api.team.join_team.post_and_forget": "{username} joined the team.", "api.team.leave.left": "{username} left the team.", "api.team.remove_user_from_team.removed": "{removedUsername} was removed from the team.", + "app_bar.marketplace": "App Marketplace", "app.channel.post_update_channel_purpose_message.removed": "{username} removed the channel purpose (was: {old})", "app.channel.post_update_channel_purpose_message.updated_from": "{username} updated the channel purpose from: {old} to: {new}", "app.channel.post_update_channel_purpose_message.updated_to": "{username} updated the channel purpose to: {new}", @@ -4155,22 +4156,13 @@ "modal.manual_status.title_dnd": "Your Status is Set to \"Do Not Disturb\"", "modal.manual_status.title_offline": "Your Status is Set to \"Offline\"", "modal.manual_status.title_ooo": "Your Status is Set to \"Out of Office\"", - "more_channels.channel_purpose": "Channel Information: Membership Indicator: Joined, Member count {memberCount} , Purpose: {channelPurpose}", - "more_channels.count": "{count} Results", - "more_channels.count_one": "1 Result", - "more_channels.count_zero": "0 Results", "more_channels.create": "Create New Channel", - "more_channels.hide_joined": "Hide Joined", - "more_channels.hide_joined_checked": "Hide joined channels checkbox, checked", - "more_channels.hide_joined_not_checked": "Hide joined channels checkbox, not checked", - "more_channels.joined": "Joined", - "more_channels.membership_indicator": "Membership Indicator: Joined", + "more_channels.createClick": "Click 'Create New Channel' to make a new one", + "more_channels.join": "Join", + "more_channels.joining": "Joining...", "more_channels.next": "Next", - "more_channels.noArchived": "No archived channels", "more_channels.noMore": "No results for \"{text}\"", - "more_channels.noPublic": "No public channels", "more_channels.prev": "Previous", - "more_channels.searchError": "Try searching different keywords, checking for typos or adjusting the filters.", "more_channels.show_archived_channels": "Channel Type: Archived", "more_channels.show_public_channels": "Channel Type: Public", "more_channels.title": "Browse Channels", @@ -4231,7 +4223,7 @@ "navbar_dropdown.logout": "Log Out", "navbar_dropdown.manageGroups": "Manage Groups", "navbar_dropdown.manageMembers": "Manage Members", - "navbar_dropdown.marketplace": "Marketplace", + "navbar_dropdown.marketplace": "App Marketplace", "navbar_dropdown.menuAriaLabel": "main menu", "navbar_dropdown.nativeApps": "Download Apps", "navbar_dropdown.profileSettings": "Profile", @@ -4862,6 +4854,7 @@ "shortcuts.team_nav.prev.mac": "Previous team:\t⌘|⌥|Up", "shortcuts.team_nav.switcher": "Navigate to a specific team:\tCtrl|Alt|[1-9]", "shortcuts.team_nav.switcher.mac": "Navigate to a specific team:\t⌘|⌥|[1-9]", + "sidebar_left.add_channel_cta_dropdown.dropdownAriaLabel": "Add Channel Dropdown", "sidebar_left.add_channel_dropdown.browseChannels": "Browse Channels", "sidebar_left.add_channel_dropdown.browseOrCreateChannels": "Browse or create channels", "sidebar_left.add_channel_dropdown.createCategory": "Create New Category", @@ -4871,6 +4864,7 @@ "sidebar_left.add_channel_dropdown.invitePeopleExtraText": "Add people to the team", "sidebar_left.add_channel_dropdown.work_template": "Create from a template", "sidebar_left.add_channel_dropdown.work_template_extra": "Set up a channel with linked boards, and playbooks", + "sidebar_left.addChannelsCta": "Add channels", "sidebar_left.channel_filter.filterByUnread": "Filter by unread", "sidebar_left.channel_filter.filterUnreadAria": "unreads filter", "sidebar_left.channel_filter.showAllChannels": "Show all channels", @@ -4909,6 +4903,7 @@ "sidebar_left.sidebar_channel_menu.unfavoriteChannel": "Unfavorite", "sidebar_left.sidebar_channel_menu.unmuteChannel": "Unmute Channel", "sidebar_left.sidebar_channel_menu.unmuteConversation": "Unmute Conversation", + "sidebar_left.sidebar_channel_navigator.addChannelsCta": "Add channels", "sidebar_left.sidebar_channel_navigator.inviteUsers": "Invite Users", "sidebar_left.sidebar_channel.selectedCount": "{count} selected", "sidebar_right_menu.console": "System Console", diff --git a/webapp/channels/src/reducers/views/add_channel_cta_dropdown.ts b/webapp/channels/src/reducers/views/add_channel_cta_dropdown.ts new file mode 100644 index 0000000000..c468169bac --- /dev/null +++ b/webapp/channels/src/reducers/views/add_channel_cta_dropdown.ts @@ -0,0 +1,21 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import {combineReducers} from 'redux'; + +import {GenericAction} from 'mattermost-redux/types/actions'; + +import {ActionTypes} from 'utils/constants'; + +export function isOpen(state = false, action: GenericAction) { + switch (action.type) { + case ActionTypes.ADD_CHANNEL_CTA_DROPDOWN_TOGGLE: + return action.open; + default: + return state; + } +} + +export default combineReducers({ + isOpen, +}); diff --git a/webapp/channels/src/reducers/views/index.ts b/webapp/channels/src/reducers/views/index.ts index 2f574e32ba..6d305e40d8 100644 --- a/webapp/channels/src/reducers/views/index.ts +++ b/webapp/channels/src/reducers/views/index.ts @@ -25,6 +25,7 @@ import productMenu from './product_menu'; import textbox from './textbox'; import statusDropdown from './status_dropdown'; import addChannelDropdown from './add_channel_dropdown'; +import addChannelCtaDropdown from './add_channel_cta_dropdown'; import threads from './threads'; import onboardingTasks from './onboarding_tasks'; @@ -50,6 +51,7 @@ export default combineReducers({ channelSidebar, statusDropdown, addChannelDropdown, + addChannelCtaDropdown, onboardingTasks, threads, productMenu, diff --git a/webapp/channels/src/sass/components/_channel-invite-modal.scss b/webapp/channels/src/sass/components/_channel-invite-modal.scss index d3e70e8398..f1893c9a76 100644 --- a/webapp/channels/src/sass/components/_channel-invite-modal.scss +++ b/webapp/channels/src/sass/components/_channel-invite-modal.scss @@ -71,9 +71,7 @@ .primary-message { margin: 0; - color: var(--center-channel-color); font-size: inherit; - line-height: 28px; } } diff --git a/webapp/channels/src/sass/layout/_sidebar-left.scss b/webapp/channels/src/sass/layout/_sidebar-left.scss index 8baf4ac923..c670182893 100644 --- a/webapp/channels/src/sass/layout/_sidebar-left.scss +++ b/webapp/channels/src/sass/layout/_sidebar-left.scss @@ -178,6 +178,46 @@ $sidebarOpacityAnimationDuration: 0.15s; } } + &__inviteMembersLhsButton, + &__addChannelsCtaLhsButton { + display: flex; + padding: 6px 0; + margin-left: 15px; + color: rgba(var(--sidebar-text-rgb), 0.72); + line-height: 20px; + list-style: none; + + i { + font-size: 20px; + } + + span { + align-self: flex-end; + margin-top: -2px; + margin-left: 5px; + } + + &--untouched { + color: var(--sidebar-unread-text); + font-weight: $font-weight--semibold; + + i::before { + font-weight: $font-weight--semibold; + } + } + } + + &__addChannelsCtaLhsButton { + border: none; + margin-left: 0; + background: none; + + li { + display: flex; + margin-left: 15px; + } + } + .AddChannelDropdown_dropdownButton, .SidebarChannelNavigator_inviteUsers, .SidebarChannelNavigator_jumpToButton, @@ -700,35 +740,12 @@ $sidebarOpacityAnimationDuration: 0.15s; } } - .SidebarChannelNavigator_inviteMembersLhsButton { - display: flex; - padding: 6px 0; - margin-left: 15px; - color: rgba(var(--sidebar-text-rgb), 0.72); - line-height: 20px; - list-style: none; - - i { - font-size: 20px; - } - - span { - align-self: flex-end; - margin-top: -2px; - margin-left: 5px; - } - - &--untouched { - color: var(--sidebar-unread-text); - font-weight: $font-weight--semibold; - - i::before { - font-weight: $font-weight--semibold; - } - } + .AddChannelsCtaDropdown .dropdown-menu { + margin-left: 20px; } - #introTextInvite { + #introTextInvite, + #addChannelsCta { display: flex; width: 100%; @@ -737,6 +754,14 @@ $sidebarOpacityAnimationDuration: 0.15s; } } + #AddChannelCtaDropdown { + position: fixed; + + ul { + min-width: 232px !important; + } + } + .SidebarChannelNavigator_inviteUsersSticky { position: absolute; z-index: 2; diff --git a/webapp/channels/src/sass/utils/_mixins.scss b/webapp/channels/src/sass/utils/_mixins.scss index ea0270b631..2d3f74df34 100644 --- a/webapp/channels/src/sass/utils/_mixins.scss +++ b/webapp/channels/src/sass/utils/_mixins.scss @@ -262,6 +262,49 @@ } } +@mixin icon-button { + display: flex; + align-items: center; + justify-content: center; + border: 0; + background: none; + border-radius: 4px; + color: rgba(var(--center-channel-color-rgb), 0.56); + + &:focus, + &:focus-within { + box-sizing: border-box; + border: 2px solid rgba(var(--denim-button-bg-rgb), 0.32); + box-shadow: none; + outline: none; + } + + &:hover { + border: 0; + background: rgba(var(--center-channel-color-rgb), 0.08); + color: rgba(var(--center-channel-color-rgb), 0.72); + } + + &:active { + border: 0; + background: rgba(var(--button-bg-rgb), 0.08); + color: var(--button-bg); + } + + &:disabled { + background: none; + color: rgba(var(--center-channel-color-rgb), 0.32); + cursor: not-allowed; + } +} + +@mixin icon-button-small-compact { + width: 28px; + height: 28px; + padding: 6px; + font-size: 16px; +} + @mixin simple-in-and-out-after($classPrefix, $transition_time: 300ms) { .#{$classPrefix}--enter-from-after { &-enter { diff --git a/webapp/channels/src/selectors/views/add_channel_dropdown.ts b/webapp/channels/src/selectors/views/add_channel_dropdown.ts index a106cb8602..84f41d9e9c 100644 --- a/webapp/channels/src/selectors/views/add_channel_dropdown.ts +++ b/webapp/channels/src/selectors/views/add_channel_dropdown.ts @@ -6,3 +6,7 @@ import {GlobalState} from 'types/store'; export function isAddChannelDropdownOpen(state: GlobalState) { return state.views.addChannelDropdown.isOpen; } + +export function isAddChannelCtaDropdownOpen(state: GlobalState) { + return state.views.addChannelCtaDropdown.isOpen; +} diff --git a/webapp/channels/src/types/store/views.ts b/webapp/channels/src/types/store/views.ts index 5e67a97ddd..19f34b7744 100644 --- a/webapp/channels/src/types/store/views.ts +++ b/webapp/channels/src/types/store/views.ts @@ -180,6 +180,10 @@ export type ViewsState = { isOpen: boolean; }; + addChannelCtaDropdown: { + isOpen: boolean; + }; + onboardingTasks: { isShowOnboardingTaskCompletion: boolean; isShowOnboardingCompleteProfileTour: boolean; diff --git a/webapp/channels/src/utils/constants.tsx b/webapp/channels/src/utils/constants.tsx index d3426a4395..ad18170d15 100644 --- a/webapp/channels/src/utils/constants.tsx +++ b/webapp/channels/src/utils/constants.tsx @@ -163,6 +163,7 @@ export const Preferences = { // For one off things that have a special, attention-grabbing UI until you interact with them export const Touched = { INVITE_MEMBERS: 'invite_members', + ADD_CHANNELS_CTA: 'add_channels_cta', }; // Category for actions/interactions that will happen just once @@ -264,6 +265,7 @@ export const ActionTypes = keyMirror({ STATUS_DROPDOWN_TOGGLE: null, ADD_CHANNEL_DROPDOWN_TOGGLE: null, + ADD_CHANNEL_CTA_DROPDOWN_TOGGLE: null, SHOW_ONBOARDING_TASK_COMPLETION: null, SHOW_ONBOARDING_COMPLETE_PROFILE_TOUR: null, @@ -896,7 +898,6 @@ export const StoragePrefixes = { CHANNEL_CATEGORY_COLLAPSED: 'channelCategoryCollapsed_', INLINE_IMAGE_VISIBLE: 'isInlineImageVisible_', DELINQUENCY: 'delinquency_', - HIDE_JOINED_CHANNELS: 'hideJoinedChannels', }; export const LandingPreferenceTypes = { diff --git a/webapp/platform/client/src/websocket.ts b/webapp/platform/client/src/websocket.ts index c88379ec37..b026891933 100644 --- a/webapp/platform/client/src/websocket.ts +++ b/webapp/platform/client/src/websocket.ts @@ -189,9 +189,16 @@ export default class WebSocketClient { console.log('long timeout, or server restart, or sequence number is not found.'); //eslint-disable-line no-console this.missedEventCallback?.(); - this.missedMessageListeners.forEach((listener) => listener()); - - this.serverSequence = 0; + + for (const listener of this.missedMessageListeners) { + try { + listener(); + } catch (e) { + console.log(`missed message listener "${listener.name}" failed: ${e}`); // eslint-disable-line no-console + } + } + + this.serverSequence = 0; } // If it's a fresh connection, we have to set the connectionId regardless. diff --git a/webapp/platform/components/src/generic_modal/generic_modal.tsx b/webapp/platform/components/src/generic_modal/generic_modal.tsx index 117d1d4b58..9f5ea7a357 100644 --- a/webapp/platform/components/src/generic_modal/generic_modal.tsx +++ b/webapp/platform/components/src/generic_modal/generic_modal.tsx @@ -38,7 +38,6 @@ export type Props = { compassDesign?: boolean; backdrop?: boolean; backdropClassName?: string; - headerButton?: React.ReactNode; tabIndex?: number; children: React.ReactNode; keyboardEscape?: boolean; @@ -166,7 +165,6 @@ export class GenericModal extends React.PureComponent {

    {this.props.modalHeaderText}

    - {this.props.headerButton}
  • );