@orkestrel/scaffold 0.0.29 → 0.0.30
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/dist/host/claude/rules/tests.md +18 -8
- package/dist/host/claude/rules/workspace.md +8 -8
- package/dist/src/core/index.cjs +4 -2
- package/dist/src/core/index.cjs.map +1 -1
- package/dist/src/core/index.d.cts +1 -1
- package/dist/src/core/index.d.ts +1 -1
- package/dist/src/core/index.js +4 -2
- package/dist/src/core/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -36,18 +36,28 @@ paths:
|
|
|
36
36
|
A proof that covers the workspace instead of one module has a fixed location, so no package invents
|
|
37
37
|
its own:
|
|
38
38
|
|
|
39
|
-
| Path | Proves
|
|
40
|
-
| ---------------------------- |
|
|
41
|
-
| `tests/policy.test.ts` | Every source file obeys the syntactic coding and placement law
|
|
42
|
-
| `tests/config.test.ts` | Root configuration resolves its aliases, projects, and outputs
|
|
43
|
-
| `tests/guides.test.ts` | Every documented API exists and every public API is documented
|
|
44
|
-
| `tests/conformance.test.ts` | Where this package drifts from the official tooling it tracks
|
|
45
|
-
| `tests/integration.test.ts` | The
|
|
46
|
-
| `tests/service/**/*.test.ts` | The live external services this package drives, driven for real
|
|
39
|
+
| Path | Proves |
|
|
40
|
+
| ---------------------------- | ------------------------------------------------------------------- |
|
|
41
|
+
| `tests/policy.test.ts` | Every source file obeys the syntactic coding and placement law |
|
|
42
|
+
| `tests/config.test.ts` | Root configuration resolves its aliases, projects, and outputs |
|
|
43
|
+
| `tests/guides.test.ts` | Every documented API exists and every public API is documented |
|
|
44
|
+
| `tests/conformance.test.ts` | Where this package drifts from the official tooling it tracks |
|
|
45
|
+
| `tests/integration.test.ts` | The package's features work together end to end across environments |
|
|
46
|
+
| `tests/service/**/*.test.ts` | The live external services this package drives, driven for real |
|
|
47
47
|
|
|
48
48
|
- `.claude/rules/workspace.md` names the Vitest project each location belongs to.
|
|
49
49
|
- `integration.test.ts` is a reserved filename at any level. It names a scope rather than a module,
|
|
50
50
|
so the mirror rule does not reach it; its scope is the directory it sits in.
|
|
51
|
+
- An integration test is an end-to-end test: it composes the package's own features and drives them
|
|
52
|
+
together, through the public API, with no part of the system under test replaced.
|
|
53
|
+
- Scope it by where the composition happens. `tests/integration.test.ts` drives features **across**
|
|
54
|
+
environments — core through server, core through browser, one environment's output consumed by
|
|
55
|
+
another. A nested `tests/src/<environment>/integration.test.ts` drives features **within** that one
|
|
56
|
+
environment.
|
|
57
|
+
- Do not put a packaging, install, or distribution check in an integration test. What the tarball
|
|
58
|
+
contains is a different question from whether the features compose.
|
|
59
|
+
- A test the mirror rule flags is a misplaced test until its placement is checked. Move it to the
|
|
60
|
+
location its scope names. Never widen the rule to accept it.
|
|
51
61
|
- Give every nested `integration.test.ts` its own exact-path project entry. A glob such as
|
|
52
62
|
`tests/src/**/integration.test.ts` double-claims a file another project already owns.
|
|
53
63
|
|
|
@@ -114,14 +114,14 @@ environment:
|
|
|
114
114
|
The second axis is cross-cutting workspace proofs. Each one covers the whole workspace rather than
|
|
115
115
|
one environment, so each is its own project:
|
|
116
116
|
|
|
117
|
-
| Project | Files | Proves
|
|
118
|
-
| ------------- | ---------------------------- |
|
|
119
|
-
| `policy` | `tests/policy.test.ts` | Every source file obeys the syntactic coding and placement law
|
|
120
|
-
| `config` | `tests/config.test.ts` | Root configuration resolves its aliases, projects, and outputs
|
|
121
|
-
| `guides` | `tests/guides.test.ts` | Every documented API exists and every public API is documented
|
|
122
|
-
| `conformance` | `tests/conformance.test.ts` | Where this package drifts from the official tooling it tracks
|
|
123
|
-
| `integration` | `tests/integration.test.ts` | The
|
|
124
|
-
| `service` | `tests/service/**/*.test.ts` | The live external services this package drives, driven for real
|
|
117
|
+
| Project | Files | Proves | In `test` |
|
|
118
|
+
| ------------- | ---------------------------- | ------------------------------------------------------------------- | --------- |
|
|
119
|
+
| `policy` | `tests/policy.test.ts` | Every source file obeys the syntactic coding and placement law | Yes |
|
|
120
|
+
| `config` | `tests/config.test.ts` | Root configuration resolves its aliases, projects, and outputs | Yes |
|
|
121
|
+
| `guides` | `tests/guides.test.ts` | Every documented API exists and every public API is documented | Yes |
|
|
122
|
+
| `conformance` | `tests/conformance.test.ts` | Where this package drifts from the official tooling it tracks | Yes |
|
|
123
|
+
| `integration` | `tests/integration.test.ts` | The package's features work together end to end across environments | No |
|
|
124
|
+
| `service` | `tests/service/**/*.test.ts` | The live external services this package drives, driven for real | No |
|
|
125
125
|
|
|
126
126
|
`conformance` and `service` are two subjects, not two names for one. `conformance` measures this
|
|
127
127
|
package against an official artifact it stays compatible with and drives nothing external: the
|
package/dist/src/core/index.cjs
CHANGED
|
@@ -290,7 +290,7 @@ var DEFAULT_ENGINES = `>=${MINIMUM_NODE_VERSION}`;
|
|
|
290
290
|
var BASE_DEV_DEPENDENCIES = Object.freeze({
|
|
291
291
|
"@microsoft/api-extractor": "^7.58.12",
|
|
292
292
|
"@orkestrel/guide": "^0.0.10",
|
|
293
|
-
"@orkestrel/scaffold": "^0.0.
|
|
293
|
+
"@orkestrel/scaffold": "^0.0.30",
|
|
294
294
|
"@types/node": "^26.2.0",
|
|
295
295
|
oxfmt: "^0.62.0",
|
|
296
296
|
oxlint: "^1.77.0",
|
|
@@ -482,6 +482,7 @@ const resolve = {
|
|
|
482
482
|
name: { label: 'src:browser', color: 'yellow' },
|
|
483
483
|
include: ['tests/src/browser/**/*.test.ts'],
|
|
484
484
|
{{exclude}} setupFiles: ['./tests/setup.ts', './tests/setupBrowser.ts'],
|
|
485
|
+
{{global}}
|
|
485
486
|
browser: {
|
|
486
487
|
enabled: true,
|
|
487
488
|
provider: playwright(browserOptions),
|
|
@@ -3374,7 +3375,8 @@ function blueprintToRootVite(blueprint) {
|
|
|
3374
3375
|
factories.push((0, _orkestrel_template.fillTemplate)(CONFIG_TEMPLATES.factories.src.browser, {
|
|
3375
3376
|
external: core ? "external: (id: string) => id === '@src/core' || id.startsWith('@orkestrel/')," : "external: (id: string) => id.startsWith('@orkestrel/'),",
|
|
3376
3377
|
output: core ? " output: { paths: { '@src/core': '../core/index.js' } }," : " output: {},",
|
|
3377
|
-
exclude: core ? " exclude: ['tests/src/core/**/*.test.ts'],\n" : ""
|
|
3378
|
+
exclude: core ? " exclude: ['tests/src/core/**/*.test.ts'],\n" : "",
|
|
3379
|
+
global: blueprint.global ? " globalSetup: ['./tests/setupGlobal.ts'],\n" : ""
|
|
3378
3380
|
}));
|
|
3379
3381
|
projects.push("srcBrowser");
|
|
3380
3382
|
}
|