test(server): cover the feature flag regex helpers - #1056
Open
mariazuheros wants to merge 1 commit into
Open
Conversation
Adds tests for validateFeatureFlagRegexPattern (empty, too long, invalid syntax, unsafe backtracking, and a safe pattern), the precompile cache, and the rule and condition set walkers that feed it. Each test uses a unique pattern so the shared compile cache does not couple them.
|
@mariazuheros is attempting to deploy a commit to the goldflag's projects Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds Vitest tests covering feature-flag regex validation, compilation caching, invalid-pattern handling, and precompilation across rules and condition sets. ChangesFeature flag regex tests
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
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.
The helpers in
server/src/services/featureFlags/regex.tshad no direct coverage, so I added tests for the whole module.What is covered:
validateFeatureFlagRegexPattern: an empty pattern, a pattern over the length limit, invalid syntax, a catastrophic backtracking pattern thatsafe-regex2flags as too complex, and a safe pattern that returns null.precompileFeatureFlagRegexPatternandgetCompiledFeatureFlagRegex: a valid pattern is compiled, cached, and returned on later lookups, the same instance comes back on a second call, and an invalid pattern returns undefined without being cached.precompileFeatureFlagRuleRegexesandprecompileFeatureFlagConditionSetRegexes: regex rules are precompiled (including array values), non regex operators are skipped, and a missing list is a no-op.The module keeps a process wide compile cache, so each test uses a unique pattern to stay independent. Run with
cd server && npx vitest run src/services/featureFlags/regex.test.ts(14 tests pass).Summary by CodeRabbit