Skip to content
This repository was archived by the owner on Jan 28, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 14 additions & 8 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": "eslint:recommended",
"root": true,
"parser": "@typescript-eslint/parser",
"plugins": [
"@typescript-eslint"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
Comment on lines +4 to +10
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"plugins": [
"@typescript-eslint"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"plugins": ["@typescript-eslint"],
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],

"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
"sourceType": "module",
"project": "./tsconfig.json" // Make sure this path is correct if you have a tsconfig.json
},
"rules": {}
"rules": {
// Your custom rules here
}
}
287 changes: 218 additions & 69 deletions .github/workflows/playwright.yml

Large diffs are not rendered by default.

47 changes: 36 additions & 11 deletions playwright.config.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,41 @@
const { defineConfig } = require('@playwright/test');
// playwright.config.js
import { defineConfig, devices } from '@playwright/test';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
import { defineConfig, devices } from '@playwright/test';
import { defineConfig, devices } from "@playwright/test";


module.exports = defineConfig({
export default defineConfig({
testDir: './tests',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
testDir: './tests',
testDir: "./tests",

fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,

// ⭐ NEW: Explicitly define the output directory for all Playwright artifacts
// This is where screenshots, visual diffs, and the main report structure will go.
outputDir: 'published-screenshots',

reporter: [
// ⭐ ADJUSTED: 'html' outputFolder is now relative to 'outputDir'
['html', { open: 'never', outputFolder: 'html' }],
// ⭐ ADJUSTED: 'json' outputFile is now relative to 'outputDir'
['json', { outputFile: 'results.json' }]
],
use: {
headless: true,
screenshot: 'on',
trace: 'on',
video: 'off',
ignoreHTTPSErrors: true,
trace: 'on-first-retry',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
trace: 'on-first-retry',
trace: "on-first-retry",

headless: true, // Playwright runs headless by default in CI
screenshot: 'on', // Takes screenshots on failure or specific steps, and also applies to toHaveScreenshot
},
reporter: [
['json', { outputFile: 'playwright-metrics.json' }],
['html', { outputFile: 'report.html', open: 'never' }],
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
Comment on lines +42 to +43
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
name: "chromium",
use: { ...devices["Desktop Chrome"] },

},
// You can add other projects for different browsers here if needed, e.g.:
// {
// name: 'firefox',
// use: { ...devices['Desktop Firefox'] },
// },
// {
// name: 'webkit',
// use: { ...devices['Desktop Safari'] },
// },
],
});
});
6 changes: 6 additions & 0 deletions published-screenshots/.last-run.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"status": "failed",
"failedTests": [
"849da1cee0c412ce5534-4ebb083191c59dda5f31"
]
}
Comment on lines +3 to +6
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
"failedTests": [
"849da1cee0c412ce5534-4ebb083191c59dda5f31"
]
}
"failedTests": ["849da1cee0c412ce5534-4ebb083191c59dda5f31"]
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Page snapshot

```yaml
- text: This is just a demo of TodoMVC for testing, not the
- link "real TodoMVC app.":
- /url: https://todomvc.com/
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
- /url: https://todomvc.com/
- /url: https://todomvc.com/

- heading "todos" [level=1]
- textbox "What needs to be done?"
- checkbox "❯Mark all as complete"
- text: ❯Mark all as complete
- list:
- listitem:
- checkbox "Toggle Todo"
- text: feed the cat
- listitem:
- checkbox "Toggle Todo"
- text: book a doctors appointment
Comment on lines +12 to +17
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
- listitem:
- checkbox "Toggle Todo"
- text: feed the cat
- listitem:
- checkbox "Toggle Todo"
- text: book a doctors appointment
- listitem:
- checkbox "Toggle Todo"
- text: feed the cat
- listitem:
- checkbox "Toggle Todo"
- text: book a doctors appointment

- strong: "2"
- text: items left
- list:
- listitem:
- link "All":
- /url: "#/"
- listitem:
- link "Active":
- /url: "#/active"
- listitem:
- link "Completed":
- /url: "#/completed"
Comment on lines +21 to +29
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
- listitem:
- link "All":
- /url: "#/"
- listitem:
- link "Active":
- /url: "#/active"
- listitem:
- link "Completed":
- /url: "#/completed"
- listitem:
- link "All":
- /url: "#/"
- listitem:
- link "Active":
- /url: "#/active"
- listitem:
- link "Completed":
- /url: "#/completed"

- contentinfo:
- paragraph: Double-click to edit a todo
- paragraph:
- text: Created by
- link "Remo H. Jansen":
- /url: http://github.com/remojansen/
- paragraph:
- text: Part of
- link "TodoMVC":
- /url: http://todomvc.com
```
Comment on lines +31 to +40
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[prettier] reported by reviewdog 🐶

Suggested change
- paragraph: Double-click to edit a todo
- paragraph:
- text: Created by
- link "Remo H. Jansen":
- /url: http://github.com/remojansen/
- paragraph:
- text: Part of
- link "TodoMVC":
- /url: http://todomvc.com
```
- paragraph: Double-click to edit a todo
- paragraph:
- text: Created by
- link "Remo H. Jansen":
- /url: http://github.com/remojansen/
- paragraph:
- text: Part of
- link "TodoMVC":
- /url: http://todomvc.com
```

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading