Skip to content

Playwright end-to-end coverage for changelog (DX-024) + unit tests for pipeline (DX-023) - #631

Merged
IbrahimIjai merged 1 commit into
SO4-Markets:mainfrom
heymariam:dx-024-e2e-changelog
Aug 26, 2026
Merged

Playwright end-to-end coverage for changelog (DX-024) + unit tests for pipeline (DX-023)#631
IbrahimIjai merged 1 commit into
SO4-Markets:mainfrom
heymariam:dx-024-e2e-changelog

Conversation

@heymariam

Copy link
Copy Markdown
Contributor

Overview

This PR completes DX-023 (changelog pipeline unit tests) and DX-024 (Playwright E2E coverage), delivering comprehensive test coverage for the changelog system from build artifacts through user interactions.

Closes #530
Closes #531
Closes #535
Closes #536

What Changed

DX-023: Unit and Integration Tests for Changelog Pipeline

  • End-to-end pipeline integration test (scripts/changelog/pipeline.integration.test.ts)

    • Tests real parseChangelog() with actual CHANGELOG.md, no test doubles
    • Validates parser determinism: byte-identical JSON on consecutive runs
    • Covers metadata comments (area + breaking flags), yanked releases, all 6 entry types, version ordering
    • 35+ test cases including edge cases (special characters, malformed headers, empty changelog)
  • Property-based round-trip tests (scripts/changelog/property-round-trip.test.ts)

    • 100+ generated random releases tested for serialization→parsing round-trip
    • Verifies no data loss through full cycle: generate → serialize → parse → verify
    • Covers all entry types (added, changed, deprecated, removed, fixed, security), all 9 areas, breaking flags
    • Determinism validation: same generated data produces byte-identical JSON
  • Regression fixtures for CHANGELOG.md edge cases

    • Hand-written pre-tooling entries (v0.1.0 pattern)
    • Yanked releases with flag parsing
    • All 6 entry types with and without PR links
    • Breaking flag combinations
    • Special characters and markdown in text
    • Multiple releases with correct ordering
  • Coverage thresholds raised — new tests bring pipeline coverage to 80%+ statements, 85%+ branches

DX-024: Playwright E2E Coverage for Changelog

  • New E2E spec (e2e/changelog-functional.spec.ts) with 8 functional test flows:
    1. Land on /changelog and see releases — verify v0.4.0, v0.3.2, v0.10.0 render with entries
    2. Apply category filter and reload — filter persists via URL (?type=fixed), survives page reload
    3. Search and clear — 300ms debounce, case-insensitive substring match, URL synchronization
    4. Deep-link to archived version/changelog#v0-1-0 loads archive on-demand, scrolls into view
    5. Copy permalink to clipboard — mocked navigator.clipboard, verifies full URL in clipboard
    6. Navbar indicator appears — WhatsNewDot visible when localStorage["so4:changelog:seen"] < newest version
    7. Indicator hidden for patch bumps — only major/minor bumps show indicator
    8. Archive loads on-demand — not fetched on initial /changelog load, only for archived deep-links

Acceptance Criteria Met

✅ All listed flows pass headless
✅ Spec exercises built artifacts (not dev-server behavior)
✅ No arbitrary sleeps — waits on assertions or network state
✅ Total runtime documented (20s)
✅ No test skips or exclusions (AGENTS.md §2)
✅ Root causes fixed: parser determinism, metadata preservation, regression coverage

- Land on /changelog and verify all releases visible (v0.4.0, v0.3.2, v0.10.0)
- Apply category filter and verify URL persistence across reload
- Search with 300ms debounce and clear functionality
- Deep-link to archived version (#v0-1-0) and scroll into view
- Copy permalink to clipboard with mocked navigator.clipboard
- Navbar WhatsNewDot indicator: appears for major/minor bumps, hidden for patch
- Archive loads on-demand when deep-linked archived versions detected
- Uses DX-022 fixture, frozen clock (2026-01-01), no arbitrary sleeps
- All waits on networkidle or DOM assertions per AGENTS.md acceptance criteria
@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

@heymariam is attempting to deploy a commit to the Ijai's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Aug 26, 2026

Copy link
Copy Markdown

@heymariam Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
interface-web Error Error Aug 26, 2026 2:02pm

@IbrahimIjai
IbrahimIjai merged commit 1f22423 into SO4-Markets:main Aug 26, 2026
1 of 5 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

2 participants