fix: convert global command variables to local instances #566
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.
Fixes #556
Summary
Tests running with
-count=10would panic with "flag redefined" errors. Package-levelcobra.Commandglobal variables were reused across test runs, causing flag registration conflicts whenInitialiseRootCmdwas called multiple times in the same process.Changes
register*Cmdfunctions to create fresh command instances locally instead of relying on global variablesinternal/cmd, 4 ininternal/commands)TestMultipleInitialiseRootCmdto verify the fixTest Plan
go test -race -count=10 ./internal/cmdgo test -race -count=10 ./internal/commandsInitialiseRootCmdcan be called multiple timeszed version --help,zed schema --help)This ensures
InitialiseRootCmdis now idempotent and can be called multiple times without panicking.