@lakestoneai/dev-config 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -2
- package/package.json +34 -4
- package/playwright.d.ts +2 -0
- package/playwright.js +13 -0
package/README.md
CHANGED
|
@@ -1,3 +1,33 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @lakestoneai/dev-config
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Lakestone's house defaults for code config. Each client repo imports these and keeps only its own exceptions; a fix here reaches every repo as a Renovate bump PR that the repo's own CI proves.
|
|
4
|
+
|
|
5
|
+
Claude Code tooling lives in [`lakestoneai/claude-tools`](https://github.com/lakestoneai/claude-tools), not here. This package is for config that CI, Vercel and every developer machine read.
|
|
6
|
+
|
|
7
|
+
## Playwright
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
// playwright.config.ts
|
|
11
|
+
import { defineConfig } from '@playwright/test'
|
|
12
|
+
import { playwrightDefaults } from '@lakestoneai/dev-config/playwright'
|
|
13
|
+
|
|
14
|
+
export default defineConfig(playwrightDefaults, {
|
|
15
|
+
// this repo's own settings: testDir, webServer, projects, baseURL…
|
|
16
|
+
})
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
| Setting | Value | Playwright's own default |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `use.actionTimeout` | 10 s | 0 (wait forever) |
|
|
22
|
+
| `use.navigationTimeout` | 30 s | 0 (wait forever) |
|
|
23
|
+
|
|
24
|
+
Defaults go first: `defineConfig` merges `use` and `expect` key by key, so anything the repo sets wins, at config level or per project. A slow page needs a longer cap: set `actionTimeout` in that repo's `use`, that project's `use`, or one spec's `test.use()`.
|
|
25
|
+
|
|
26
|
+
Why: with no `actionTimeout`, a click on a missing element waits forever. A normal test run is still capped by the test timeout (with a vague "Test timeout exceeded" error); Playwright's planner/generator/healer agents and scripted runs have no test timeout and hang.
|
|
27
|
+
|
|
28
|
+
## Release
|
|
29
|
+
|
|
30
|
+
1. Bump `version` in `package.json`, merge to `main`.
|
|
31
|
+
2. Create a GitHub release tagged `v<version>`. `publish.yml` runs the tests, then publishes to npm with provenance via trusted publishing.
|
|
32
|
+
|
|
33
|
+
`bun run test` proves the defaults and both override paths against a real browser.
|
package/package.json
CHANGED
|
@@ -1,6 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lakestoneai/dev-config",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Lakestone house defaults for code config (Playwright first). Repos import these and keep only their own exceptions.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/lakestoneai/dev-config.git"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
"./playwright": {
|
|
13
|
+
"types": "./playwright.d.ts",
|
|
14
|
+
"default": "./playwright.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": ["playwright.js", "playwright.d.ts"],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"@playwright/test": ">=1.40"
|
|
23
|
+
},
|
|
24
|
+
"peerDependenciesMeta": {
|
|
25
|
+
"@playwright/test": {
|
|
26
|
+
"optional": true
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"scripts": {
|
|
30
|
+
"test": "playwright test -c test/playwright.config.ts && playwright test -c test/repo-override.config.ts"
|
|
31
|
+
},
|
|
32
|
+
"packageManager": "bun@1.4.4",
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@playwright/test": "1.63.0"
|
|
35
|
+
}
|
|
36
|
+
}
|
package/playwright.d.ts
ADDED
package/playwright.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Lakestone Playwright defaults. Merge first, repo config second:
|
|
2
|
+
// export default defineConfig(playwrightDefaults, { ...this repo's settings })
|
|
3
|
+
// defineConfig shallow-merges `use` and `expect`, so a repo keeps these unless it sets the same key.
|
|
4
|
+
// Playwright's own default for both timeouts is 0 = wait forever, which hangs agents and scripted runs
|
|
5
|
+
// (they have no per-test timeout).
|
|
6
|
+
|
|
7
|
+
/** @type {import('@playwright/test').PlaywrightTestConfig} */
|
|
8
|
+
export const playwrightDefaults = {
|
|
9
|
+
use: {
|
|
10
|
+
actionTimeout: 10_000, // one click/fill/etc.
|
|
11
|
+
navigationTimeout: 30_000, // goto, waitForURL, reload
|
|
12
|
+
},
|
|
13
|
+
}
|