Skip to content

chore: prepare fast-test-harness package for publishing#7506

Merged
radium-v merged 11 commits intomainfrom
users/radium-v/test-harness-prepublish-preparation
May 1, 2026
Merged

chore: prepare fast-test-harness package for publishing#7506
radium-v merged 11 commits intomainfrom
users/radium-v/test-harness-prepublish-preparation

Conversation

@radium-v
Copy link
Copy Markdown
Collaborator

Pull Request

📖 Description

Prepares @microsoft/fast-test-harness for npm publishing by cleaning up the package layout and exports.

  • Excluded test files (.test.ts, .spec.ts) from the build output via tsconfig.build.json
  • Simplified the files array to use wildcards (*.mjs, *.d.ts) instead of enumerating each root-level file
  • Added ./fixtures/*.js to the package exports map so fixture classes can be imported directly
  • Exported setTemplate and updateTemplate option types from CSRFixture and SSRFixture
  • Updated README exports table to match the current public API surface
  • Updated package scripts (test:node, test:playwright)

📑 Test Plan

All existing tests pass:

npm run test    # runs test:node && test:playwright

96 Node.js unit tests and 129 Playwright E2E tests across Chromium, Firefox, and WebKit.

Verified npm pack --dry-run produces a clean tarball with 42 files (no test artifacts).

✅ Checklist

General

  • I have included a change request file using $ npm run change
  • I have added tests for my changes.
  • I have tested my changes.
  • I have updated the project documentation to reflect my changes.
  • I have read the CONTRIBUTING documentation and followed the standards for this project.

Comment thread change/@microsoft-fast-test-harness-87ac85bb-3986-4dbc-b9c8-16fecdf194b3.json Outdated
@radium-v radium-v force-pushed the users/radium-v/test-harness-prepublish-preparation branch from eb920f6 to 4a1d62d Compare May 1, 2026 04:35
@radium-v radium-v merged commit 7383168 into main May 1, 2026
14 checks passed
@radium-v radium-v deleted the users/radium-v/test-harness-prepublish-preparation branch May 1, 2026 17:10
@janechu janechu mentioned this pull request May 1, 2026
5 tasks
janechu added a commit that referenced this pull request May 1, 2026
# Pull Request

## 📖 Description

Brings `releases/fast-element-v3` up to date with `main`. Cherry-picks every commit landed on `main` after PR #7477 was merged (the last v3↔main sync) and adds an adaptation commit so the changes work with the v3 architecture (where `@microsoft/fast-html` was merged into `@microsoft/fast-element` under `src/declarative/`).

Cherry-picked (in chronological order):

- #7479 — feat: change default attribute-name-strategy from none to camelCase
- #7494 — chore(deps): bump liquidjs 10.25.6 → 10.25.7
- #7501 — chore: migrate TypeScript compilation to `typescript/native-preview` (`tsgo`)
- #7502 — feat: allow `fast-build` rendering without state
- #7503 — docs: per-package documentation reorg (DESIGN.md/README.md and `docs/architecture/*`)
- #7504 — feat: propagate shadowroot attributes
- #7505 — chore: bump packages after failed publish (`fast-build` → 0.5.0)
- #7469 — feat: add build utilities and SSR renderer to `@microsoft/fast-test-harness`
- #7506 — chore: prepare `@microsoft/fast-test-harness` package for publishing

The "applying package updates" beachball commit (`aad6f5481`) was intentionally skipped — v3 maintains its own versioning track (`fast-element@3.0.0-rc.1`, `fast-test-harness@0.0.1`) and runs its own publish.

Adaptation commit highlights:

- Adds a new `./declarative-syntax.js` subpath export to `@microsoft/fast-element` so tooling consumers (e.g. `fast-test-harness` build utilities) can access declarative HTML syntax constants from fast-element directly. Mirrors the existing `./declarative-utilities.js` subpath.
- Re-points `fast-test-harness/src/build/generate-templates.ts` and `generate-webui-templates.ts` from `@microsoft/fast-html/syntax.js` to the new subpath.
- Replaces the removed `RenderableFASTElement(...).defineAsync({ templateOptions })` pattern with v3's `Element.define()` in test fixtures and the README example.
- Drops `@microsoft/fast-html` from the harness Vite optimizer exclude list.
- Excludes `*.spec.ts` from the fast-element TS build (the declarative `.spec.ts` files import `@playwright/test`, whose `.d.ts` files are incompatible with `tsgo`'s stricter parser; these specs are still type-checked when run via the declarative Playwright config).
- Adapted hydration marker handling in `crates/microsoft-fast-build/src/node.rs` for #7502 (kept v3's `inject_count_marker` / `data-fe="N"` style while merging in main's `Option<&mut HydrationScope>` flow).
- All `packages/fast-html/*` paths from cherry-picks were dropped (the package no longer exists on v3); related `change/@microsoft-fast-html-*.json` files were either converted to `@microsoft-fast-element-*.json` or dropped where they no longer apply.

## 📑 Test Plan

Run from the monorepo root on this branch:

- `npm run build` — all 6 packages build successfully (fast-build, fast-element, fast-router, fast-test-harness, fast-site, fast-todo-app-example).
- `@microsoft/fast-element` — 1410 chromium playwright tests + 176 declarative chromium tests pass.
- `@microsoft/fast-test-harness` — 96 node unit tests + 43 chromium playwright tests pass.
- `npm run biome:check` — clean.
- `npm run checkchange` — passes.

## ✅ Checklist

### General

- [x] I have included a change request file using `$ npm run change`
- [ ] I have added tests for my changes.
- [x] I have tested my changes.
- [x] I have updated the project documentation to reflect my changes.
- [x] I have read the [CONTRIBUTING](https://github.com/microsoft/fast/blob/main/CONTRIBUTING.md) documentation and followed the [standards](https://github.com/microsoft/fast/blob/main/CODE_OF_CONDUCT.md#our-standards) for this project.
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.

2 participants