From 968d14c7244ff85cd8cbcba17b5a94eedfb5989d Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Mon, 24 Apr 2023 17:36:10 +0200 Subject: [PATCH 01/11] add timeout --- tests/e2e/local.web.docker-compose.yml | 4 ++-- tests/e2e/tests/critical-path/cli/cli-critical.e2e.ts | 6 +++--- tests/e2e/tests/critical-path/database/modules.e2e.ts | 6 +++--- tests/e2e/tests/regression/cli/cli-command-helper.e2e.ts | 6 +++--- tests/e2e/web.runner.ts | 1 + 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/tests/e2e/local.web.docker-compose.yml b/tests/e2e/local.web.docker-compose.yml index 6f41a5d540..6b46748b17 100644 --- a/tests/e2e/local.web.docker-compose.yml +++ b/tests/e2e/local.web.docker-compose.yml @@ -27,9 +27,9 @@ services: './upload-custom-plugins.sh', ] command: [ - './wait-for-it.sh', 'redis-enterprise:12000', '-s', '-t', '120', + './wait-for-it.sh', 'redis-enterprise:12000', '-s', '-t', '200', '--', - 'npx', 'yarn', 'test:chrome:ci' + 'npx', 'yarn', 'test:chrome:ci', '--app-init-delay', '5000' ] # Redisinsight API + UI build diff --git a/tests/e2e/tests/critical-path/cli/cli-critical.e2e.ts b/tests/e2e/tests/critical-path/cli/cli-critical.e2e.ts index a9e0875a55..6cb975a3b6 100644 --- a/tests/e2e/tests/critical-path/cli/cli-critical.e2e.ts +++ b/tests/e2e/tests/critical-path/cli/cli-critical.e2e.ts @@ -91,9 +91,9 @@ test test .meta({ rte: rte.standalone })('Verify that when user enters in CLI RediSearch/JSON commands (FT.CREATE, FT.DROPINDEX/JSON.GET, JSON.DEL), he can see hints with arguments', async t => { const commandHints = [ - 'index [ON HASH | JSON] [PREFIX count prefix [prefix ...]] [FILTER filter] [LANGUAGE default_lang] [LANGUAGE_FIELD lang_attribute] [SCORE default_score] [SCORE_FIELD score_attribute] [PAYLOAD_FIELD payload_attribute] [MAXTEXTFIELDS] [TEMPORARY seconds] [NOOFFSETS] [NOHL] [NOFIELDS] [NOFREQS] [STOPWORDS count [stopword [stopword ...]]] [SKIPINITIALSCAN] SCHEMA field_name [AS alias] TEXT | TAG | NUMERIC | GEO | VECTOR [WITHSUFFIXTRIE] [SORTABLE [UNF]] [NOINDEX] [field_name [AS alias] TEXT | TAG | NUMERIC | GEO | VECTOR [WITHSUFFIXTRIE] [SORTABLE [UNF]] [NOINDEX] ...]', - 'index [DD]', - 'key [INDENT indent] [NEWLINE newline] [SPACE space] [path [path ...]]', + 'index [data_type] [prefix] [filter] [default_lang] [lang_attribute] [default_score] [score_attribute] [payload_attribute] [maxtextfields] [seconds] [nooffsets] [nohl] [nofields] [nofreqs] [stopwords] [skipinitialscan] schema field [field ...]', + 'index [delete docs]', + 'key [indent] [newline] [space] [path [path ...]]', 'key [path]' ]; const commands = [ diff --git a/tests/e2e/tests/critical-path/database/modules.e2e.ts b/tests/e2e/tests/critical-path/database/modules.e2e.ts index 94cb751419..efb7e950e2 100644 --- a/tests/e2e/tests/critical-path/database/modules.e2e.ts +++ b/tests/e2e/tests/critical-path/database/modules.e2e.ts @@ -33,10 +33,10 @@ test // Verify that user can see the following sorting order: Search, JSON, Graph, TimeSeries, Bloom, Gears, AI for modules const databaseLine = myRedisDatabasePage.dbNameList.withExactText(ossStandaloneRedisearch.databaseName).parent('tr'); const moduleIcons = databaseLine.find('[data-testid^=Redi]'); - const numberOfIcons = await moduleIcons.count; - for (let i = 0; i < numberOfIcons; i++) { + const numberOfIcons = moduleIcons.count; + for (let i = 0; i < await numberOfIcons; i++) { const moduleName = moduleIcons.nth(i).getAttribute('data-testid'); - await t.expect(await moduleName).eql(await moduleList[i].getAttribute('data-testid'), 'Correct icon not found'); + await t.expect(moduleName).eql(await moduleList[i].getAttribute('data-testid'), 'Correct icon not found'); } //Minimize the window to check quantifier await t.resizeWindow(1000, 700); diff --git a/tests/e2e/tests/regression/cli/cli-command-helper.e2e.ts b/tests/e2e/tests/regression/cli/cli-command-helper.e2e.ts index ae25c4a027..c0fa87d8c7 100644 --- a/tests/e2e/tests/regression/cli/cli-command-helper.e2e.ts +++ b/tests/e2e/tests/regression/cli/cli-command-helper.e2e.ts @@ -82,7 +82,7 @@ test .meta({ env: env.web })('Verify that user can see in Command helper and click on new group "JSON", can choose it and see list of commands in the group', async t => { filteringGroup = 'JSON'; commandToCheck = 'JSON.SET'; - commandArgumentsToCheck = 'JSON.SET key path value [NX | XX]'; + commandArgumentsToCheck = 'JSON.SET key path value [condition]'; externalPageLink = 'https://redis.io/commands/json.set/'; // Open Command Helper @@ -102,7 +102,7 @@ test .meta({ env: env.web })('Verify that user can see in Command helper and click on new group "Search", can choose it and see list of commands in the group', async t => { filteringGroup = 'Search'; commandToCheck = 'FT.EXPLAIN'; - commandArgumentsToCheck = 'FT.EXPLAIN index query [DIALECT dialect]'; + commandArgumentsToCheck = 'FT.EXPLAIN index query [dialect]'; externalPageLink = 'https://redis.io/commands/ft.explain/'; // Open Command Helper @@ -216,7 +216,7 @@ test 'BF.MEXISTS key item [item ...]', 'CMS.QUERY key item [item ...]', 'TDIGEST.RESET key', - 'TOPK.LIST key [WITHCOUNT]', + 'TOPK.LIST key [withcount]', 'CF.ADD key item' ]; externalPageLinks = [ diff --git a/tests/e2e/web.runner.ts b/tests/e2e/web.runner.ts index 912602f90a..494b8a7753 100644 --- a/tests/e2e/web.runner.ts +++ b/tests/e2e/web.runner.ts @@ -32,6 +32,7 @@ import testcafe from 'testcafe'; ]) .run({ skipJsErrors: true, + // skipUncaughtErrors: true, browserInitTimeout: 60000, selectorTimeout: 5000, assertionTimeout: 5000, From 8ac2613a029a95e8c5cf1b5c4a737b52d0ec231f Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Mon, 24 Apr 2023 18:34:17 +0200 Subject: [PATCH 02/11] increase timeout --- tests/e2e/local.web.docker-compose.yml | 2 +- .../upload-tutorials/customTutorials.zip | Bin 2271 -> 2191 bytes .../workbench/import-tutorials.e2e.ts | 15 +++++++-------- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/tests/e2e/local.web.docker-compose.yml b/tests/e2e/local.web.docker-compose.yml index 6b46748b17..39fedb8d47 100644 --- a/tests/e2e/local.web.docker-compose.yml +++ b/tests/e2e/local.web.docker-compose.yml @@ -29,7 +29,7 @@ services: command: [ './wait-for-it.sh', 'redis-enterprise:12000', '-s', '-t', '200', '--', - 'npx', 'yarn', 'test:chrome:ci', '--app-init-delay', '5000' + 'npx', 'yarn', 'test:chrome:ci', '--app-init-delay', '15000' ] # Redisinsight API + UI build diff --git a/tests/e2e/test-data/upload-tutorials/customTutorials.zip b/tests/e2e/test-data/upload-tutorials/customTutorials.zip index c71a78c43705fe06a092b419ce5a9d18ce9c49d2..3acf2648c8feb84138b6327b58febecc1c5e64bc 100644 GIT binary patch delta 1340 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 { // Verify that user can upload custom tutorials on docker version - const imageExternalPath = 'RedisInsight screen external'; - // const imageRelativePath = 'RedisInsight screen relative'; folder1 = 'folder-1'; folder2 = 'folder-2'; internalLinkName1 = 'probably-1'; @@ -64,14 +62,15 @@ test('Verify that user can upload tutorial with local zip file without manifest. await t.click((await workbenchPage.getInternalLinkWithManifest(internalLinkName1))); await t.expect(workbenchPage.scrolledEnablementArea.visible).ok('enablement area is not visible after clicked'); + // Error when github upload .zip with relative path in .md + // const imageExternalPath = 'RedisInsight screen external'; + // const imageRelativePath = 'RedisInsight screen relative'; // Verify that user can see image in custom tutorials by providing absolute external path in md file - const imageExternal = await workbenchPage.getTutorialImageByAlt(imageExternalPath); - await workbenchPage.waitUntilImageRendered(imageExternal); - const imageExternalHeight = await imageExternal.getStyleProperty('height'); - await t.expect(parseInt(imageExternalHeight.replace(/[^\d]/g, ''))).gte(150); - + // const imageExternal = await workbenchPage.getTutorialImageByAlt(imageExternalPath); + // await workbenchPage.waitUntilImageRendered(imageExternal); + // const imageExternalHeight = await imageExternal.getStyleProperty('height'); + // await t.expect(parseInt(imageExternalHeight.replace(/[^\d]/g, ''))).gte(150); // Verify that user can see image in custom tutorials by providing relative path in md file - // Error when github upload .zip with relative path in .md // const imageRelative = await workbenchPage.getTutorialImageByAlt(imageRelativePath); // await workbenchPage.waitUntilImageRendered(imageRelative); // const imageRelativeHeight = await imageRelative.getStyleProperty('height'); From 33fa4aa85e9ca45c48dad94fc858e240de66a0ce Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Mon, 24 Apr 2023 18:38:50 +0200 Subject: [PATCH 03/11] concurrency to 1 --- tests/e2e/package.json | 2 +- tests/e2e/web.runner.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/e2e/package.json b/tests/e2e/package.json index bab8879145..9dc9328db9 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -13,7 +13,7 @@ "redis:last": "docker run --name redis-last-version -p 7777:6379 -d redislabs/redismod", "start:app": "cross-env SERVER_STATIC_CONTENT=true yarn start:api", "test:chrome": "testcafe --cache --concurrency 1 chrome tests/ -r html:./report/report.html,spec -e -s takeOnFails=true,path=report/screenshots,pathPattern=${OS}_${BROWSER}/${DATE}_${TIME}/${FIXTURE}_${TEST}_${FILE_INDEX}.png", - "test:chrome:ci": "ts-node ./web.runner.ts", + "test:chrome:ci": "ts-node ./web.runner.ts --cache --concurrency 1", "test": "yarn test:chrome", "lint": "eslint . --ext .ts,.js,.tsx,.jsx", "test:desktop:ci": "ts-node ./desktop.runner.ts", diff --git a/tests/e2e/web.runner.ts b/tests/e2e/web.runner.ts index 494b8a7753..33b24762a9 100644 --- a/tests/e2e/web.runner.ts +++ b/tests/e2e/web.runner.ts @@ -37,7 +37,7 @@ import testcafe from 'testcafe'; selectorTimeout: 5000, assertionTimeout: 5000, speed: 1, - quarantineMode: { successThreshold: '1', attemptLimit: '3' } + quarantineMode: { successThreshold: '1', attemptLimit: '1' } }); }) .then((failedCount) => { From 1df7df503e3ecefdf81fdd922a59359270c89b92 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Tue, 25 Apr 2023 10:07:03 +0200 Subject: [PATCH 04/11] return concurrency --- tests/e2e/local.web.docker-compose.yml | 2 +- tests/e2e/package.json | 2 +- tests/e2e/web.runner.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/e2e/local.web.docker-compose.yml b/tests/e2e/local.web.docker-compose.yml index 39fedb8d47..34e7440394 100644 --- a/tests/e2e/local.web.docker-compose.yml +++ b/tests/e2e/local.web.docker-compose.yml @@ -29,7 +29,7 @@ services: command: [ './wait-for-it.sh', 'redis-enterprise:12000', '-s', '-t', '200', '--', - 'npx', 'yarn', 'test:chrome:ci', '--app-init-delay', '15000' + 'npx', 'yarn', 'test:chrome:ci' ] # Redisinsight API + UI build diff --git a/tests/e2e/package.json b/tests/e2e/package.json index 9dc9328db9..bab8879145 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -13,7 +13,7 @@ "redis:last": "docker run --name redis-last-version -p 7777:6379 -d redislabs/redismod", "start:app": "cross-env SERVER_STATIC_CONTENT=true yarn start:api", "test:chrome": "testcafe --cache --concurrency 1 chrome tests/ -r html:./report/report.html,spec -e -s takeOnFails=true,path=report/screenshots,pathPattern=${OS}_${BROWSER}/${DATE}_${TIME}/${FIXTURE}_${TEST}_${FILE_INDEX}.png", - "test:chrome:ci": "ts-node ./web.runner.ts --cache --concurrency 1", + "test:chrome:ci": "ts-node ./web.runner.ts", "test": "yarn test:chrome", "lint": "eslint . --ext .ts,.js,.tsx,.jsx", "test:desktop:ci": "ts-node ./desktop.runner.ts", diff --git a/tests/e2e/web.runner.ts b/tests/e2e/web.runner.ts index 33b24762a9..494b8a7753 100644 --- a/tests/e2e/web.runner.ts +++ b/tests/e2e/web.runner.ts @@ -37,7 +37,7 @@ import testcafe from 'testcafe'; selectorTimeout: 5000, assertionTimeout: 5000, speed: 1, - quarantineMode: { successThreshold: '1', attemptLimit: '1' } + quarantineMode: { successThreshold: '1', attemptLimit: '3' } }); }) .then((failedCount) => { From 7c950bea34ed99c464980813a1eec92ed73a71cb Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Tue, 25 Apr 2023 10:12:16 +0200 Subject: [PATCH 05/11] add sleep to sh file --- tests/e2e/local.web.docker-compose.yml | 2 +- tests/e2e/wait-for-it.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/e2e/local.web.docker-compose.yml b/tests/e2e/local.web.docker-compose.yml index 34e7440394..6f41a5d540 100644 --- a/tests/e2e/local.web.docker-compose.yml +++ b/tests/e2e/local.web.docker-compose.yml @@ -27,7 +27,7 @@ services: './upload-custom-plugins.sh', ] command: [ - './wait-for-it.sh', 'redis-enterprise:12000', '-s', '-t', '200', + './wait-for-it.sh', 'redis-enterprise:12000', '-s', '-t', '120', '--', 'npx', 'yarn', 'test:chrome:ci' ] diff --git a/tests/e2e/wait-for-it.sh b/tests/e2e/wait-for-it.sh index d990e0d364..5bd961eb15 100755 --- a/tests/e2e/wait-for-it.sh +++ b/tests/e2e/wait-for-it.sh @@ -44,7 +44,7 @@ wait_for() echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" break fi - sleep 1 + sleep 30 done return $WAITFORIT_result } From a1bb10967e203d41faa353703ac97adc533c27d7 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Tue, 25 Apr 2023 11:20:05 +0200 Subject: [PATCH 06/11] decrease sleep before all tests --- tests/e2e/wait-for-it.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/wait-for-it.sh b/tests/e2e/wait-for-it.sh index 5bd961eb15..40ca4de259 100755 --- a/tests/e2e/wait-for-it.sh +++ b/tests/e2e/wait-for-it.sh @@ -44,7 +44,7 @@ wait_for() echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" break fi - sleep 30 + sleep 10 done return $WAITFORIT_result } From 42e6e29f47b70b81409f8c62e2b3d985ca7ef4f2 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Tue, 25 Apr 2023 12:24:47 +0200 Subject: [PATCH 07/11] change timeout --- tests/e2e/wait-for-it.sh | 2 +- tests/e2e/web.runner.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/e2e/wait-for-it.sh b/tests/e2e/wait-for-it.sh index 40ca4de259..1f016efbad 100755 --- a/tests/e2e/wait-for-it.sh +++ b/tests/e2e/wait-for-it.sh @@ -44,7 +44,7 @@ wait_for() echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" break fi - sleep 10 + sleep 25 done return $WAITFORIT_result } diff --git a/tests/e2e/web.runner.ts b/tests/e2e/web.runner.ts index 494b8a7753..912602f90a 100644 --- a/tests/e2e/web.runner.ts +++ b/tests/e2e/web.runner.ts @@ -32,7 +32,6 @@ import testcafe from 'testcafe'; ]) .run({ skipJsErrors: true, - // skipUncaughtErrors: true, browserInitTimeout: 60000, selectorTimeout: 5000, assertionTimeout: 5000, From e13376b56b69527d6aa8230381e33efcb7121ac4 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Tue, 25 Apr 2023 13:45:47 +0200 Subject: [PATCH 08/11] add additional check --- tests/e2e/tests/critical-path/database/modules.e2e.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/e2e/tests/critical-path/database/modules.e2e.ts b/tests/e2e/tests/critical-path/database/modules.e2e.ts index efb7e950e2..9f52058d77 100644 --- a/tests/e2e/tests/critical-path/database/modules.e2e.ts +++ b/tests/e2e/tests/critical-path/database/modules.e2e.ts @@ -32,11 +32,12 @@ test await t.expect(myRedisDatabasePage.moduleColumn.exists).ok('Module column not found'); // Verify that user can see the following sorting order: Search, JSON, Graph, TimeSeries, Bloom, Gears, AI for modules const databaseLine = myRedisDatabasePage.dbNameList.withExactText(ossStandaloneRedisearch.databaseName).parent('tr'); + await t.expect(databaseLine.visible).ok('Database not found in db list'); const moduleIcons = databaseLine.find('[data-testid^=Redi]'); const numberOfIcons = moduleIcons.count; for (let i = 0; i < await numberOfIcons; i++) { const moduleName = moduleIcons.nth(i).getAttribute('data-testid'); - await t.expect(moduleName).eql(await moduleList[i].getAttribute('data-testid'), 'Correct icon not found'); + await t.expect(moduleName).eql(await moduleList[i].getAttribute('data-testid'), `${moduleName} icon not found`); } //Minimize the window to check quantifier await t.resizeWindow(1000, 700); From e3625bad00a80cb7adb0c2f786fb21e6c3ad26c7 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Tue, 25 Apr 2023 15:05:38 +0200 Subject: [PATCH 09/11] debug --- .circleci/config.yml | 13 ++++++++----- tests/e2e/package.json | 2 +- .../e2e/tests/critical-path/database/modules.e2e.ts | 2 +- tests/e2e/wait-for-it.sh | 2 +- tests/e2e/web.runner.ts | 2 +- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index abdb148b78..f75b01f624 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -308,7 +308,8 @@ jobs: description: Number of threads to run tests type: integer default: 1 - parallelism: << parameters.parallelism >> + # parallelism: << parameters.parallelism >> + parallelism: 1 steps: - checkout - attach_workspace: @@ -346,7 +347,8 @@ jobs: description: Number of threads to run tests type: integer default: 1 - parallelism: << parameters.parallelism >> + # parallelism: << parameters.parallelism >> + parallelism: 1 steps: - checkout - attach_workspace: @@ -389,7 +391,8 @@ jobs: description: Number of threads to run tests type: integer default: 1 - parallelism: << parameters.parallelism >> + # parallelism: << parameters.parallelism >> + parallelism: 1 steps: - checkout - when: @@ -1085,7 +1088,7 @@ workflows: - e2e-tests: name: E2ETest build: docker - parallelism: 4 + parallelism: 1 requires: - Build docker image @@ -1247,7 +1250,7 @@ workflows: # e2e web tests on docker image build - e2e-tests: name: E2ETest - Nightly - parallelism: 4 + parallelism: 1 build: docker report: true requires: diff --git a/tests/e2e/package.json b/tests/e2e/package.json index bab8879145..1cc4bfb5be 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -13,7 +13,7 @@ "redis:last": "docker run --name redis-last-version -p 7777:6379 -d redislabs/redismod", "start:app": "cross-env SERVER_STATIC_CONTENT=true yarn start:api", "test:chrome": "testcafe --cache --concurrency 1 chrome tests/ -r html:./report/report.html,spec -e -s takeOnFails=true,path=report/screenshots,pathPattern=${OS}_${BROWSER}/${DATE}_${TIME}/${FIXTURE}_${TEST}_${FILE_INDEX}.png", - "test:chrome:ci": "ts-node ./web.runner.ts", + "test:chrome:ci": "ts-node ./web.runner.ts -q attemptLimit=1,successThreshold=1", "test": "yarn test:chrome", "lint": "eslint . --ext .ts,.js,.tsx,.jsx", "test:desktop:ci": "ts-node ./desktop.runner.ts", diff --git a/tests/e2e/tests/critical-path/database/modules.e2e.ts b/tests/e2e/tests/critical-path/database/modules.e2e.ts index 9f52058d77..dacfd7c79f 100644 --- a/tests/e2e/tests/critical-path/database/modules.e2e.ts +++ b/tests/e2e/tests/critical-path/database/modules.e2e.ts @@ -26,7 +26,7 @@ fixture `Database modules` // Delete database await deleteStandaloneDatabaseApi(ossStandaloneRedisearch); }); -test +test.only .meta({ rte: rte.standalone, env: env.web })('Verify that user can see DB modules on DB list page for Standalone DB', async t => { // Check module column on DB list page await t.expect(myRedisDatabasePage.moduleColumn.exists).ok('Module column not found'); diff --git a/tests/e2e/wait-for-it.sh b/tests/e2e/wait-for-it.sh index 1f016efbad..5bd961eb15 100755 --- a/tests/e2e/wait-for-it.sh +++ b/tests/e2e/wait-for-it.sh @@ -44,7 +44,7 @@ wait_for() echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" break fi - sleep 25 + sleep 30 done return $WAITFORIT_result } diff --git a/tests/e2e/web.runner.ts b/tests/e2e/web.runner.ts index 912602f90a..7c067a9f0e 100644 --- a/tests/e2e/web.runner.ts +++ b/tests/e2e/web.runner.ts @@ -36,7 +36,7 @@ import testcafe from 'testcafe'; selectorTimeout: 5000, assertionTimeout: 5000, speed: 1, - quarantineMode: { successThreshold: '1', attemptLimit: '3' } + quarantineMode: { successThreshold: '1', attemptLimit: '1' } }); }) .then((failedCount) => { From ea3e75970bc463a76d55e5e0e91e7a187b8333ca Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Tue, 25 Apr 2023 17:25:29 +0200 Subject: [PATCH 10/11] return parallelizm --- .circleci/config.yml | 13 +++++-------- tests/e2e/package.json | 2 +- .../e2e/tests/critical-path/database/modules.e2e.ts | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f75b01f624..abdb148b78 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -308,8 +308,7 @@ jobs: description: Number of threads to run tests type: integer default: 1 - # parallelism: << parameters.parallelism >> - parallelism: 1 + parallelism: << parameters.parallelism >> steps: - checkout - attach_workspace: @@ -347,8 +346,7 @@ jobs: description: Number of threads to run tests type: integer default: 1 - # parallelism: << parameters.parallelism >> - parallelism: 1 + parallelism: << parameters.parallelism >> steps: - checkout - attach_workspace: @@ -391,8 +389,7 @@ jobs: description: Number of threads to run tests type: integer default: 1 - # parallelism: << parameters.parallelism >> - parallelism: 1 + parallelism: << parameters.parallelism >> steps: - checkout - when: @@ -1088,7 +1085,7 @@ workflows: - e2e-tests: name: E2ETest build: docker - parallelism: 1 + parallelism: 4 requires: - Build docker image @@ -1250,7 +1247,7 @@ workflows: # e2e web tests on docker image build - e2e-tests: name: E2ETest - Nightly - parallelism: 1 + parallelism: 4 build: docker report: true requires: diff --git a/tests/e2e/package.json b/tests/e2e/package.json index 1cc4bfb5be..bab8879145 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -13,7 +13,7 @@ "redis:last": "docker run --name redis-last-version -p 7777:6379 -d redislabs/redismod", "start:app": "cross-env SERVER_STATIC_CONTENT=true yarn start:api", "test:chrome": "testcafe --cache --concurrency 1 chrome tests/ -r html:./report/report.html,spec -e -s takeOnFails=true,path=report/screenshots,pathPattern=${OS}_${BROWSER}/${DATE}_${TIME}/${FIXTURE}_${TEST}_${FILE_INDEX}.png", - "test:chrome:ci": "ts-node ./web.runner.ts -q attemptLimit=1,successThreshold=1", + "test:chrome:ci": "ts-node ./web.runner.ts", "test": "yarn test:chrome", "lint": "eslint . --ext .ts,.js,.tsx,.jsx", "test:desktop:ci": "ts-node ./desktop.runner.ts", diff --git a/tests/e2e/tests/critical-path/database/modules.e2e.ts b/tests/e2e/tests/critical-path/database/modules.e2e.ts index dacfd7c79f..9f52058d77 100644 --- a/tests/e2e/tests/critical-path/database/modules.e2e.ts +++ b/tests/e2e/tests/critical-path/database/modules.e2e.ts @@ -26,7 +26,7 @@ fixture `Database modules` // Delete database await deleteStandaloneDatabaseApi(ossStandaloneRedisearch); }); -test.only +test .meta({ rte: rte.standalone, env: env.web })('Verify that user can see DB modules on DB list page for Standalone DB', async t => { // Check module column on DB list page await t.expect(myRedisDatabasePage.moduleColumn.exists).ok('Module column not found'); From cc7596a1dba996be5bd4343154f4d4f6c01e4564 Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Tue, 25 Apr 2023 17:26:34 +0200 Subject: [PATCH 11/11] add attempt --- tests/e2e/web.runner.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/web.runner.ts b/tests/e2e/web.runner.ts index 7c067a9f0e..912602f90a 100644 --- a/tests/e2e/web.runner.ts +++ b/tests/e2e/web.runner.ts @@ -36,7 +36,7 @@ import testcafe from 'testcafe'; selectorTimeout: 5000, assertionTimeout: 5000, speed: 1, - quarantineMode: { successThreshold: '1', attemptLimit: '1' } + quarantineMode: { successThreshold: '1', attemptLimit: '3' } }); }) .then((failedCount) => {