Skip to content

test(conformance): run the TypeScript conformance suites from their own workspace - #3

Closed
louis-bompart wants to merge 1 commit into
feat/catalog-basic-packagefrom
feat/conformance-workspace
Closed

louis-bompart wants to merge 1 commit into
feat/catalog-basic-packagefrom
feat/conformance-workspace

Conversation

@louis-bompart

Copy link
Copy Markdown
Collaborator

Why

The TypeScript conformance runner lived in @a2ui/web_core (tests/conformance/). It runs the shared YAML suites under conformance/ and, for every v1.0 case, uses the v1 basic catalog. Since coveord/a2ui#2 moved that catalog to @a2ui/catalog-basic, which depends on web_core, web_core's test:conformance had to load the other package's build by relative path through a wireit edge.

The runner checks the TypeScript SDK as a whole, not web_core alone. This PR gives it a workspace of its own that depends on both packages, which removes the edge.

What changes

  • New private workspace @a2ui/conformance (typescript/conformance), not published, with the canonical build, lint, lint:fix, test, format and format:check targets.
    • tests/conformance_test.mjs: the runner, moved from web_core/tests/conformance/.
    • src/node_resolution.ts: the core/node_resolution.yaml handler, moved from web_core/tests/conformance/node-resolution.ts.
    • Both import the SDK through public entry points (@a2ui/web_core/v1_0, /semver, /v0_8/basic_catalog, /v0_9/basic_catalog, @a2ui/catalog-basic/v1) instead of ../../dist/src/... paths. Every symbol they use was already public.
  • @a2ui/web_core drops its test:conformance target and the wireit dependency on ../../catalogs/basic:build. yarn test no longer runs the suites; yarn workspace @a2ui/conformance test does. The timing cases stay in web_core's test:timing.
  • Docs: web_core's README and AGENTS.md point to the new workspace.

No published API changes, so no CHANGELOG entry.

CI

ci-renderers already runs test in every workspace under typescript/**, so the new workspace runs there with no workflow change.

Verification

This PR is stacked on #2 and targets its branch, so the diff shows only this change.

🤖 Generated with Claude Code

…wn workspace

Move the conformance runner out of @a2ui/web_core into a private
workspace, @a2ui/conformance (typescript/conformance), that depends on
@a2ui/web_core and @a2ui/catalog-basic. The runner checks the TypeScript
SDK as a whole, so neither package's tests depend on the other any more.

- web_core drops its test:conformance target and the wireit edge to
  catalogs/basic:build that loaded the v1 basic catalog's build.
- The runner and its node resolution handler import the SDK through public
  entry points instead of ../../dist/src paths.
- Case outcomes are unchanged: 561 passed, 654 skipped, 0 failed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@louis-bompart

Copy link
Copy Markdown
Collaborator Author

Closing: part of the earlier attempt at moving web_core off Zod 3, superseded by the regrouped series #45 to #54. The branch is kept for reference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant