Skip to content

test: generate golden exports inside installed artifacts - #101

Merged
qisoft merged 1 commit into
mainfrom
test/40-installed-export-projections
Oct 8, 2026
Merged

qisoft merged 1 commit into
mainfrom
test/40-installed-export-projections

Conversation

@qisoft

@qisoft qisoft commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

The installed export test previously reopened Receipts generated by the host checkout, so it did not exercise the ZIP executable’s bundled export code or fonts. The explicit export proof now runs the production publication service inside the installed executable with fixed synthetic-fixture targets, then a normal installed launch reopens the results through named IPC and renderer controls.

The journey checks picker cancellation without a new revision/Receipt, canonical JSON, golden ChordPro and LRC, the deterministic PDF hash and embedded fonts/tags, archive machine-local authority stripping, durable output hashes and loss reports, and private-marker exclusion from compatibility outputs and diagnostics. Both application launches use an OS-only environment. Fixed targets remain outside protected user data and an existing output directory is refused.

Validation: 27 targeted service/projection/archive tests passed; types, lint, format, contract schemas, main build and discovery of all 23 packaged tests passed. Native installed execution is GitHub CI only and remains pending. Fixed targets do not establish native Save-dialog, consumer-installation or screen-reader acceptance.

Refs #40, #36.

Summary by CodeRabbit

  • Tests
    • Expanded export verification to cover JSON, archive, ChordPro, LRC, and PDF outputs, including saved receipts and generated-file integrity.
    • Added checks that cancelling a save does not create a revision or export receipt, and that private data is not included in exports.
  • Documentation
    • Clarified how installed export checks are run and what evidence is required to confirm compatibility.

@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: e2c2c159-ef82-4a78-a374-b9e13445a321
📥 Commits

Reviewing files that changed from the base of the PR and between 47ae468 and 30295e0.

📒 Files selected for processing (5)
  • apps/desktop/src/main/index.ts
  • apps/desktop/src/main/packaged-export-proof.ts
  • docs/development/compatibility-exports.md
  • tests/export-proof.test.ts
  • tests/packaged/exports.spec.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The desktop app now runs a packaged export proof when given its proof argument. The proof checks cancellation behavior, exports five formats, and verifies durable receipts. Tests validate the proof and its generated artifacts. The compatibility documentation describes the installed proof journey and its limits.

Changes

Packaged export proof

Layer / File(s) Summary
Proof execution and startup dispatch
apps/desktop/src/main/packaged-export-proof.ts, apps/desktop/src/main/index.ts
The new proof validates the fixture and cancellation behavior, performs five exports, and checks receipts after reopening the library. The main process dispatches the export-proof argument and writes the report to stdout.
Installed export verification
tests/export-proof.test.ts, tests/packaged/exports.spec.ts, docs/development/compatibility-exports.md
Tests check the proof report, generated files, output hashes, archive contents, and receipts. Packaged-test startup polling handles early process exits. The compatibility description states that the proof does not test native Save dialog interaction.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Other

Sequence Diagram(s)

sequenceDiagram
  participant ElectronStartup
  participant runPackagedExportProof
  participant BundledPublicationService
  participant ProjectLibrary
  ElectronStartup->>runPackagedExportProof: Pass user-data path
  runPackagedExportProof->>ProjectLibrary: Check fixture and cancellation state
  runPackagedExportProof->>BundledPublicationService: Export five formats to fixed targets
  runPackagedExportProof->>ProjectLibrary: Reopen library and verify receipts
  runPackagedExportProof-->>ElectronStartup: Return proof report
Loading

Merge Risk: ⚪ Minimal · up to 30295

No merge-blocking issue was established. Complete the pending native CI run before claiming installed-export evidence.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: testing golden export generation within installed application artifacts.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 4 files. (1 skipped: 1 …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@qisoft

qisoft commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@qisoft
qisoft merged commit 90a5377 into main Oct 8, 2026
4 checks passed
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