Skip to content

test(pipeline): commit InDesign sample fixtures exercised in CI — closes epic #61#94

Merged
PAMulligan merged 1 commit into
mainfrom
61-indesign-fixtures-ci
May 31, 2026
Merged

test(pipeline): commit InDesign sample fixtures exercised in CI — closes epic #61#94
PAMulligan merged 1 commit into
mainfrom
61-indesign-fixtures-ci

Conversation

@PAMulligan
Copy link
Copy Markdown
Collaborator

Closes the InDesign-to-WordPress epic (#61). All sub-issues (#62#66) are already merged to main; this PR resolves the one remaining epic acceptance criterion:

Sample fixtures (.idml and exported PDF) are committed under tests/fixtures/indesign/ and exercised in CI.

Approach — fixtures as code, not blobs

Per the pipeline's standing convention (and the parser/smoke tests), the canonical sample document — a two-spread Spring Brochure (text-heavy cover + image-heavy hero with master-spread footer chrome) — is a readable spec materialized into both input formats on demand, rather than committed binaries:

File Purpose
tests/fixtures/indesign/brochure.mjs The spec + buildBrochureIdml() / buildBrochurePdf()
tests/fixtures/indesign/emit.mjs CLI: writes brochure.idml + brochure.pdf to disk
tests/fixtures/indesign/fixtures.test.mjs End-to-end test (runs in CI)
tests/fixtures/indesign/README.md Documents the fixtures + no-blobs rationale

What's exercised in CI

fixtures.test.mjs runs the full pipeline (parse → map tokens → generate) for both formats and asserts each yields:

  • a schema-valid theme.json (version 3, populated palette + typography scale)
  • one block pattern per spread under the InDesign Imports category
  • both report files (.md + .json)

Plus a source-agnostic check that the .idml and PDF import the same logical brochure (same spread/pattern count). Wired into pipeline-tests.yml (test-indesign-pkg job) with tests/fixtures/indesign/** added to the path filter.

Verification

pnpm --filter @flavian/pipeline test          → 100 passing
node --test tests/fixtures/indesign/fixtures.test.mjs → 3 passing (IDML + PDF + equivalence)
node scripts/indesign-fse/smoke-test.mjs      → ✓ valid theme

Also verified the emitted files run through the real CLI end-to-end:
node tests/fixtures/indesign/emit.mjsflavian pipeline indesign brochure.idml / brochure.pdf → valid themes.

Epic acceptance criteria — all met

  • .idml → working FSE theme (≥1 pattern/spread + theme.json)
  • PDF → equivalent output with documented fidelity caveats
  • Patterns render in the Site Editor on the happy path
  • indesign-to-wordpress agent in README + .claude/agents/
  • flavian pipeline indesign <input> documented in docs/
  • Sample fixtures committed under tests/fixtures/indesign/ and exercised in CI ← this PR

Once merged, #61 can be closed.

🤖 Generated with Claude Code

Closes the last epic acceptance criterion: a representative .idml and an
exported PDF committed under tests/fixtures/indesign/ and exercised in CI.

Honors the pipeline's "fixtures are code, not blobs" convention — the
canonical two-spread "Spring Brochure" is a readable spec materialized into
both formats on demand rather than checked-in binaries:

- brochure.mjs   — the spec + buildBrochureIdml()/buildBrochurePdf()
- emit.mjs       — CLI to write brochure.idml/brochure.pdf to disk
- fixtures.test.mjs — end-to-end: both formats → a valid FSE theme (one
  pattern per spread, populated theme.json); asserts the IDML and PDF import
  the same logical brochure
- README.md      — documents the fixtures and the no-blobs rationale

CI: pipeline-tests.yml runs the fixture test in the test-indesign-pkg job and
adds tests/fixtures/indesign/** to the path filter. docs/pipelines/indesign.md
gains a "Sample fixtures" section.

With this, every #61 acceptance criterion is met and the InDesign epic can be
closed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@PAMulligan PAMulligan self-assigned this May 31, 2026
@PAMulligan PAMulligan added enhancement New feature or request pipeline Figma/Canva-to-WordPress conversion pipeline labels May 31, 2026
@PAMulligan PAMulligan moved this from Todo to Done in PMDS Open Source Roadmap May 31, 2026
@PAMulligan PAMulligan merged commit a0c0798 into main May 31, 2026
6 checks passed
@PAMulligan PAMulligan deleted the 61-indesign-fixtures-ci branch May 31, 2026 05:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request pipeline Figma/Canva-to-WordPress conversion pipeline

Projects

Development

Successfully merging this pull request may close these issues.

1 participant