Skip to main content

@finos/sail-conformance-harness

Playwright runner that drives the FINOS FDC3 conformance toolbox against Sail product hosts. This is the live-browser / WCP conformance signal.

It is not the Cucumber DACP suite in @finos/sail-headless-agent — that engine inventory lives on the BDD inventory page.

Location: packages/sail-conformance-harness/

Hosts under test​

Conformance applies to the Desktop Agent as shipped in product shells, not to sail-browser-agent alone:

HostPortPackageNotes
sail-one8090@finos/sail-oneDomain-neutral tab-and-grid shell
sail-finance3000@finos/sail-financeFinance workspace shell
sail-v2-web8090@finos/fdc3-sail-webPrevious Socket.IO Sail UI (packages/sail-v2-web)

Each host × FDC3 versions 2.2 and 3.0 (six CI cells, fail-fast: false). See Packages overview for how these shells relate to the engine.

Matrix (CI)​

GitHub Actions (.github/workflows/conformance.yml) runs the six cells above. Artifacts land in gitignored packages/sail-conformance-harness/artifacts/ (conformance-<host>-<version>.json / .png). The gate requires zero toolbox failures.

Toolbox sourcing​

Suite App Directory URLs are owned by @finos/sail-conformance-harness. Hosts receive a concrete directory via VITE_FDC3_DIRECTORY_URL / ?fdc3Directory= (see @finos/sail-env).

FDC3 versionToolboxApp Directory
3.0Local — Playwright starts @robmoffat/fdc3-conformance@3.0.0-beta.1 on :3001http://localhost:3001/directories/localhost-conformance.json
2.2Local — Playwright starts @robmoffat/fdc3-conformance@2.2.3-test.1 on :3001http://localhost:3001/directories/localhost-conformance.json

Hosts are started with VITE_AUTO_RESOLVE=1 (programmatic intent pick) and open Conformance1 via ?appId=Conformance1&fdc3Directory=<url>&noSplash=1.

Quick start (one cell)​

Install once from the monorepo root (npm install), then work from this package:

cd packages/sail-conformance-harness
npm run test:browser:sail-finance:3.0

Host × version scripts: test:browser:sail-one:2.2, test:browser:sail-v2-web:3.0, and so on. Or set env explicitly:

cd packages/sail-conformance-harness
CONFORMANCE_HOST=sail-one CONFORMANCE_FDC3_VERSION=2.2 npm run test:browser

Convenience aliases (default host sail-finance):

cd packages/sail-conformance-harness
npm run test:browser:2.2
npm run test:browser:3.0

Local toolbox host (debugging)​

cd packages/sail-conformance-harness
npm run dev:browser:2.2
npm run dev:browser:3.0
ScriptToolboxFDC3 target
dev:browser:2.2 / test:browser:2.2@robmoffat/fdc3-conformance-2.2 on http://localhost:30012.2
dev:browser:3.0 / test:browser:3.0@robmoffat/fdc3-conformance-3.0 on http://localhost:30013.0

The optional React app under src/ is for browser-agent debugging; CI uses the product shells as the system under test.

CI​

.github/workflows/conformance.yml runs the six-cell matrix on every pull request, nightly at 03:00 UTC, and on demand via workflow_dispatch. Any toolbox failure fails the job; artifacts upload either way.

note

GitHub only fires scheduled workflows from the repository default branch. On feature branches use the PR check or workflow_dispatch.

Architecture​

  • Runner — Playwright config + e2e/hosts.ts + mocha scrape (e2e/mocha-scrape.ts)
  • Hosts under test — sail-one, sail-finance, sail-v2-web
  • Intent resolution — createProgrammaticIntentResolver from @finos/sail-browser-agent when VITE_AUTO_RESOLVE=1