test: add comprehensive test coverage for command auto-approval functions #10412
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.
Related GitHub Issue
Relates to: #10226
Description
This PR adds comprehensive test coverage for the command auto-approval functions in
src/core/auto-approval/commands.tswhich previously had no dedicated tests.Key Findings from Investigation:
git add -Awithgit addallowed DOES work correctly - The prefix matching logic is working as expected. The tests confirm this behavior.joinQuotedLines()).Test Coverage Added:
containsDangerousSubstitution: 8 tests covering dangerous parameter expansions, indirect references, here-strings, zsh patternsfindLongestPrefixMatch: 10 tests covering prefix matching, case insensitivity, wildcards, edge casesgetSingleCommandDecision: 9 tests covering allowlist/denylist interactions, longest prefix match ruleisAutoApprovedSingleCommand: 6 tests covering single command approval logicisAutoDeniedSingleCommand: 6 tests covering single command denial logicgetCommandDecision: 18 tests covering command chains, pipes, redirections, dangerous patternsNote: One test for multiline git commit is skipped pending PR #10228 merge.
Test Procedure
Run the tests:
Expected: 57 tests pass, 1 skipped (multiline test pending #10228)
Pre-Submission Checklist
Documentation Updates
Additional Notes
This PR attempts to address Issue #10226 by:
git add -Awithgit addallowedFeedback and guidance are welcome!