diff --git a/examples/calculator/package.json b/examples/calculator/package.json index 64648d2..d0d6657 100644 --- a/examples/calculator/package.json +++ b/examples/calculator/package.json @@ -19,7 +19,7 @@ }, "homepage": "https://github.com/stevekinney/testing-javascript#readme", "devDependencies": { - "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e", + "@playwright/test": "^1.47.2", "@testing-library/dom": "^10.4.0", "@testing-library/user-event": "^14.5.2", "@vitest/ui": "^2.1.1", diff --git a/examples/calculator/playwright.config.js b/examples/calculator/playwright.config.js new file mode 100644 index 0000000..5d440da --- /dev/null +++ b/examples/calculator/playwright.config.js @@ -0,0 +1,78 @@ +// @ts-check +import { defineConfig, devices } from '@playwright/test'; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config({ path: path.resolve(__dirname, '.env') }); + +/** + * @see https://playwright.dev/docs/test-configuration + */ +export default defineConfig({ + testDir: './tests', + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + // baseURL: 'http://127.0.0.1:3000', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { ...devices['Pixel 5'] }, + // }, + // { + // name: 'Mobile Safari', + // use: { ...devices['iPhone 12'] }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], + + /* Run your local dev server before starting the tests */ + // webServer: { + // command: 'npm run start', + // url: 'http://127.0.0.1:3000', + // reuseExistingServer: !process.env.CI, + // }, +}); diff --git a/examples/calculator/tests/counter.spec.js b/examples/calculator/tests/counter.spec.js new file mode 100644 index 0000000..e924d05 --- /dev/null +++ b/examples/calculator/tests/counter.spec.js @@ -0,0 +1,2 @@ +import { test, expect } from '@playwright/test'; +import { createServer } from 'vite';