fix(sync): auto-register challenge tag routes in ROUTES_WITHOUT_FULL_COVERAGE - #222
Merged
Conversation
…COVERAGE When a new adventure is synced, its level topics generate /challenges/<tag>/ routes that the route-coverage drift gate (route-coverage.spec.ts) requires to be acknowledged in ROUTES_WITHOUT_FULL_COVERAGE. The script now upserts a GENERATED block per adventure alongside the existing smoke and a11y blocks. Signed-off-by: Sinduri Guntupalli <sinduri.guntupalli@dynatrace.com>
Contributor
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When a new adventure is synced, its level topics generate
/challenges/<tag>/routes at build time. The route-coverage drift gate (
route-coverage.spec.ts)requires every built route to appear in
A11Y_PAGES,SMOKE_ROUTES, orROUTES_WITHOUT_FULL_COVERAGE— but the sync script never added challenge tagroutes, so CI failed with "New routes are untested."
Fix
sync-adventure.mjsnow upserts a// GENERATED:<slug>-challengesblock inROUTES_WITHOUT_FULL_COVERAGEcontaining one entry per unique tag across alllive levels. Duplicates with the manual list or other adventure blocks are
harmless (the coverage gate uses a
Set).The
tagToSluglogic matchessrc/lib/challenges.tsexactly:tag.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/(^-|-$)/g, "").Checks