diff --git a/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-chromium-darwin.png b/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-chromium-darwin.png deleted file mode 100644 index 302a6fc..0000000 Binary files a/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-chromium-darwin.png and /dev/null differ diff --git a/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-chromium-linux.png b/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-chromium-linux.png deleted file mode 100644 index 7114025..0000000 Binary files a/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-chromium-linux.png and /dev/null differ diff --git a/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-firefox-darwin.png b/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-firefox-darwin.png deleted file mode 100644 index eb90b91..0000000 Binary files a/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-firefox-darwin.png and /dev/null differ diff --git a/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-firefox-linux.png b/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-firefox-linux.png deleted file mode 100644 index bdc3b37..0000000 Binary files a/.features-gen/todopage.feature.spec.js-snapshots/Todo-Page-Empty-list-1-firefox-linux.png and /dev/null differ diff --git a/package-lock.json b/package-lock.json index 33b0763..f13900f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "devDependencies": { "nodemon": "^3.0.1", "npm-run-all": "^4.1.5", - "playwright-bdd": "^5.3.0", + "playwright-bdd": "^5.5.0", "typescript": "^5.2.2" } }, @@ -817,9 +817,9 @@ "peer": true }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -885,20 +885,6 @@ "dev": true, "peer": true }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2055,13 +2041,13 @@ } }, "node_modules/playwright-bdd": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/playwright-bdd/-/playwright-bdd-5.3.0.tgz", - "integrity": "sha512-M8aCvKa+iwo4aKDaMo7T2gFuLzQ43vpXKDSBMLbA6xyhq7RytX/dwzI1uQ67teyr2FwBblJA4YSigfshQPe1Ug==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/playwright-bdd/-/playwright-bdd-5.5.0.tgz", + "integrity": "sha512-4Rrr8TOkhmf46M1JxDqJldz80u6OQ114aeqdjy9bia4ZsAmxWB9p5Q0oJGMun1LGKgGaa5uaqIXirPXfQdu6VA==", "dev": true, "dependencies": { - "commander": "^11.0.0", - "fast-glob": "^3.3.1" + "commander": "^11.1.0", + "fast-glob": "^3.3.2" }, "bin": { "bddgen": "dist/cli/index.js" @@ -2069,15 +2055,18 @@ "engines": { "node": ">=16" }, + "funding": { + "url": "https://github.com/sponsors/vitalets" + }, "peerDependencies": { "@cucumber/cucumber": ">=9", "@playwright/test": ">=1.33" } }, "node_modules/playwright-bdd/node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true, "engines": { "node": ">=16" diff --git a/package.json b/package.json index 82dbd67..cd497bb 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "devDependencies": { "nodemon": "^3.0.1", "npm-run-all": "^4.1.5", - "playwright-bdd": "^5.3.0", + "playwright-bdd": "^5.5.0", "typescript": "^5.2.2" } } diff --git a/playwright.config.ts b/playwright.config.ts index cc94581..2312f3a 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,16 +1,7 @@ import { defineConfig, devices } from '@playwright/test'; import { defineBddConfig } from 'playwright-bdd'; -const testDir = defineBddConfig({ - importTestFrom: 'steps/fixtures.ts', - paths: ['./features'], - require: ['steps/*.ts'], - quotes: 'backtick', - featuresRoot: './features', -}); - export default defineConfig({ - testDir, reporter: 'html', use: { screenshot: 'only-on-failure', @@ -19,10 +10,26 @@ export default defineConfig({ projects: [ { name: 'chromium', + testDir: defineBddConfig({ + outputDir: ".features-gen/home", + importTestFrom: 'steps/fixtures.ts', + paths: ['./features/homepage.feature'], + require: ['steps/*.ts'], + quotes: 'backtick', + featuresRoot: './features', + }), use: { ...devices['Desktop Chrome'] }, }, { name: 'firefox', + testDir: defineBddConfig({ + outputDir: ".features-gen/todo", + importTestFrom: 'steps/fixtures.ts', + paths: ['./features/todopage.feature'], + require: ['steps/*.ts'], + quotes: 'backtick', + featuresRoot: './features', + }), use: { ...devices['Desktop Firefox'] }, }, ] diff --git a/steps/TodoPage.ts b/steps/TodoPage.ts index 2b09ef5..4d69027 100644 --- a/steps/TodoPage.ts +++ b/steps/TodoPage.ts @@ -46,4 +46,10 @@ class TodoPage { async matchScreenshot() { await expect(this.page).toHaveScreenshot(); } + + @Then('page screenshot matches previous one') + async matchScreenshotv2() { + await expect(this.page).toHaveScreenshot(); + } + }