From 1a3f69017e5817147177f044a325ff875cc7f647 Mon Sep 17 00:00:00 2001 From: Alexander Prokhorov Date: Wed, 24 Jun 2026 11:00:02 +0400 Subject: [PATCH 1/5] Change npm install to npm ci in workflow --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 195a44e..5c53421 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,7 +18,7 @@ jobs: with: node-version: '22' - run: node -v - - name: Npm install - run: npm install + - name: Install npm packages + run: npm ci - name: Run Tests run: npm run test From 4dcff9e39b1f18f0cf546d3f7a94a91bdb51f305 Mon Sep 17 00:00:00 2001 From: Alexander Prokhorov Date: Wed, 24 Jun 2026 11:10:47 +0400 Subject: [PATCH 2/5] Change npm install to npm ci for Docker setup Updated Docker commands to use 'npm ci' instead of 'npm i' for consistent dependency installation. --- detached-examples/kerberos-auth/index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/detached-examples/kerberos-auth/index.js b/detached-examples/kerberos-auth/index.js index 6d69ed3..08e4de1 100644 --- a/detached-examples/kerberos-auth/index.js +++ b/detached-examples/kerberos-auth/index.js @@ -26,8 +26,9 @@ function startServer () { execSync('docker cp server/index.js server:home/server/index.js'); execSync('docker cp server/package.json server:home/server/package.json'); - - execSync('docker exec server sh -c "cd /home/server && npm i"'); + execSync('docker cp server/package.json server:home/server/package-lock.json'); + + execSync('docker exec server sh -c "cd /home/server && npm ci"'); execSync('docker exec -d server node /home/server'); } @@ -40,8 +41,9 @@ function startClient () { execSync('docker cp client/index.js client:home/client/index.js'); execSync('docker cp client/package.json client:home/client/package.json'); + execSync('docker cp client/package.json client:home/client/package-lock.json'); - execSync('docker exec client sh -c "cd /home/client && npm i"'); + execSync('docker exec client sh -c "cd /home/client && npm ci"'); execSync('docker exec -d client node /home/client'); } From bb473ab9e0fb69398bf1f7ec3a97facaad5c405b Mon Sep 17 00:00:00 2001 From: Alexander Prokhorov Date: Wed, 24 Jun 2026 11:11:38 +0400 Subject: [PATCH 3/5] Fix package-lock.json copy command in Docker setup --- detached-examples/kerberos-auth/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/detached-examples/kerberos-auth/index.js b/detached-examples/kerberos-auth/index.js index 08e4de1..1661ab5 100644 --- a/detached-examples/kerberos-auth/index.js +++ b/detached-examples/kerberos-auth/index.js @@ -26,7 +26,7 @@ function startServer () { execSync('docker cp server/index.js server:home/server/index.js'); execSync('docker cp server/package.json server:home/server/package.json'); - execSync('docker cp server/package.json server:home/server/package-lock.json'); + execSync('docker cp server/package-lock.json server:home/server/package-lock.json'); execSync('docker exec server sh -c "cd /home/server && npm ci"'); execSync('docker exec -d server node /home/server'); @@ -41,7 +41,7 @@ function startClient () { execSync('docker cp client/index.js client:home/client/index.js'); execSync('docker cp client/package.json client:home/client/package.json'); - execSync('docker cp client/package.json client:home/client/package-lock.json'); + execSync('docker cp client/package-lock.json client:home/client/package-lock.json'); execSync('docker exec client sh -c "cd /home/client && npm ci"'); execSync('docker exec -d client node /home/client'); From f13b792e561fbc9374b391eba4e4e61ea3aaadcc Mon Sep 17 00:00:00 2001 From: Alexander Prokhorov Date: Wed, 24 Jun 2026 11:23:09 +0400 Subject: [PATCH 4/5] Get rid of extra line Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- detached-examples/kerberos-auth/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/detached-examples/kerberos-auth/index.js b/detached-examples/kerberos-auth/index.js index 1661ab5..ed4636b 100644 --- a/detached-examples/kerberos-auth/index.js +++ b/detached-examples/kerberos-auth/index.js @@ -27,7 +27,7 @@ function startServer () { execSync('docker cp server/index.js server:home/server/index.js'); execSync('docker cp server/package.json server:home/server/package.json'); execSync('docker cp server/package-lock.json server:home/server/package-lock.json'); - + execSync('docker exec server sh -c "cd /home/server && npm ci"'); execSync('docker exec -d server node /home/server'); } From 928d6cadbd78d998047feb044358c4eb4657cba2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 24 Jun 2026 08:46:43 +0000 Subject: [PATCH 5/5] Fix ESLint errors in filter-tests-by-metadata/index.js --- examples/filter-tests-by-metadata/index.js | 38 ++++++++-------------- 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/examples/filter-tests-by-metadata/index.js b/examples/filter-tests-by-metadata/index.js index 46cb4c3..0980489 100644 --- a/examples/filter-tests-by-metadata/index.js +++ b/examples/filter-tests-by-metadata/index.js @@ -2,39 +2,29 @@ fixture`The metadata of this fixture satisfies both exclusion requirements. Test .meta({ severity: 'low', repeatDaily: false }) .page`https://devexpress.github.io/testcafe/example`; -test - .meta({ device: 'desktop', skip: false }) - ('The metadata of this test does not satisfy either exclusion requirement. The test does not run because TestCafe skips the fixture', async t => { - await t.wait(1000); - }); +test.meta({ device: 'desktop', skip: false })('The metadata of this test does not satisfy either exclusion requirement. The test does not run because TestCafe skips the fixture', async t => { + await t.wait(1000); +}); fixture`The metadata of this fixture satisfies one exclusion requirement. TestCafe skips this fixture.` .meta({ severity: 'low', repeatDaily: true }) .page`https://devexpress.github.io/testcafe/example`; -test - .meta({ device: 'desktop', skip: false }) - ('The metadata of this test does not satisfy either exclusion requirement. The test does not run because TestCafe skips the fixture', async t => { - await t.wait(1000); - }); +test.meta({ device: 'desktop', skip: false })('The metadata of this test does not satisfy either exclusion requirement. The test does not run because TestCafe skips the fixture', async t => { + await t.wait(1000); +}); fixture`The metadata of this fixture doesn't satisfy either exclusion requirement. TestCafe runs this fixture.` .meta({ severity: 'high', repeatDaily: true }) .page`https://devexpress.github.io/testcafe/example`; -test - .meta({ device: 'mobile', skip: true }) - ("The metadata of this test satisfies both exclusion requirements. TestCafe skips this test.", async t => { - await t.wait(1000); - }); +test.meta({ device: 'mobile', skip: true })('The metadata of this test satisfies both exclusion requirements. TestCafe skips this test.', async t => { + await t.wait(1000); +}); -test - .meta({ device: 'mobile', skip: false }) - ("The metadata of this test satisfies one exclusion requirement. TestCafe skips this test.", async t => { - }); +test.meta({ device: 'mobile', skip: false })('The metadata of this test satisfies one exclusion requirement. TestCafe skips this test.', async () => { +}); -test - .meta({ device: 'desktop', skip: false }) - ("The metadata of this test doesn't satisfy either exclusion requirement. TestCafe runs this test.", async t => { - await t.wait(1000); - }); \ No newline at end of file +test.meta({ device: 'desktop', skip: false })('The metadata of this test doesn\'t satisfy either exclusion requirement. TestCafe runs this test.', async t => { + await t.wait(1000); +}); \ No newline at end of file