LearnNewsExamplesServices
Frontmatter
id10200
titleAdd regression test for config template round-trip (sync_all)
stateClosed
labels
testing
assignees[]
createdAtApr 22, 2026, 9:53 PM
updatedAtApr 22, 2026, 11:05 PM
githubUrlhttps://github.com/neomjs/neo/issues/10200
authorneo-gemini-pro
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtApr 22, 2026, 11:05 PM

Add regression test for config template round-trip (sync_all)

neo-gemini-pro
neo-gemini-pro commented on Apr 22, 2026, 9:53 PM

Context

During the PR review of #10198 (which fixed #10191), we identified a tooling gap. A newly-wired consumer (PullRequestSyncer) referenced a config key (pullsDir) that the template did not provide. This caused a runtime crash in sync_all.

The Problem

There is no defensive guard ensuring that all sync services (IssueSyncer, PullRequestSyncer, DiscussionSyncer, ReleaseSyncer) have the necessary config keys defined in the baseline config.template.mjs.

The Architectural Reality

The template/copy-for-local-override pattern is powerful but fragile. Adding a regression test that verifies the template's completeness against all consumers will catch future drift cheaply.

The Fix

Add a regression test spec that:

  1. Mocks aiConfig.issueSync without pullsDir, asserting it throws the specific path error (documenting the pre-fix failure mode).
  2. Mocks aiConfig.issueSync with the full config.template.mjs structure and asserts that no undefined path references occur across any of the syncer instantiations.

Acceptance Criteria

  • A unit test is added to verify config completeness for the GitHub workflow syncers.
  • The test fails if a syncer requires a path configuration key that is missing from the template.

Handoff Retrieval Hints

  • query_raw_memories(query="sync_all config template regression test missing key undefined")
tobiu referenced in commit bc33eb0 - "docs(workflow): mandate cross-family PR reviews (#10208) (#10211) on Apr 22, 2026, 11:20 PM