diff --git a/pkg/cli/codemod_allowed_repos_current_test.go b/pkg/cli/codemod_allowed_repos_current_test.go index 89d44958c3b..c061db8eeb4 100644 --- a/pkg/cli/codemod_allowed_repos_current_test.go +++ b/pkg/cli/codemod_allowed_repos_current_test.go @@ -10,9 +10,11 @@ import ( ) func TestAllowedReposCurrentToGitHubRepositoryCodemod(t *testing.T) { + t.Parallel() codemod := getAllowedReposCurrentToGitHubRepositoryCodemod() t.Run("metadata is populated", func(t *testing.T) { + t.Parallel() assert.Equal(t, "allowed-repos-current-to-github-repository", codemod.ID) assert.NotEmpty(t, codemod.Name) assert.NotEmpty(t, codemod.Description) @@ -21,6 +23,7 @@ func TestAllowedReposCurrentToGitHubRepositoryCodemod(t *testing.T) { }) t.Run("rewrites unquoted current value", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: @@ -49,6 +52,7 @@ tools: }) t.Run("rewrites quoted current value", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: @@ -74,6 +78,7 @@ tools: }) t.Run("rewrites single-quoted current value", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: @@ -99,6 +104,7 @@ tools: }) t.Run("no-op when allowed-repos is already an expression", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: @@ -124,6 +130,7 @@ tools: }) t.Run("no-op when allowed-repos is an array", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: @@ -150,6 +157,7 @@ tools: }) t.Run("no-op when allowed-repos is set to all", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: @@ -175,6 +183,7 @@ tools: }) t.Run("preserves trailing comments", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: @@ -200,6 +209,7 @@ tools: }) t.Run("only treats whitespace-preceded hash as a comment marker", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: @@ -225,6 +235,7 @@ tools: }) t.Run("does not rewrite nested non-top-level tools github allowed-repos", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot wrapper: @@ -262,6 +273,7 @@ tools: }) t.Run("does not rewrite nested custom github allowed-repos", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: diff --git a/pkg/cli/codemod_assign_to_agent_test.go b/pkg/cli/codemod_assign_to_agent_test.go index 40534f605fa..c15c561aa40 100644 --- a/pkg/cli/codemod_assign_to_agent_test.go +++ b/pkg/cli/codemod_assign_to_agent_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetAssignToAgentDefaultAgentCodemod(t *testing.T) { + t.Parallel() codemod := getAssignToAgentDefaultAgentCodemod() assert.Equal(t, "assign-to-agent-default-agent-to-name", codemod.ID) @@ -20,6 +21,7 @@ func TestGetAssignToAgentDefaultAgentCodemod(t *testing.T) { } func TestAssignToAgentCodemod_BasicMigration(t *testing.T) { + t.Parallel() codemod := getAssignToAgentDefaultAgentCodemod() content := `--- @@ -51,6 +53,7 @@ safe-outputs: } func TestAssignToAgentCodemod_PreservesIndentation(t *testing.T) { + t.Parallel() codemod := getAssignToAgentDefaultAgentCodemod() content := `--- @@ -82,6 +85,7 @@ safe-outputs: } func TestAssignToAgentCodemod_PreservesComment(t *testing.T) { + t.Parallel() codemod := getAssignToAgentDefaultAgentCodemod() content := `--- @@ -109,6 +113,7 @@ safe-outputs: } func TestAssignToAgentCodemod_NoSafeOutputs(t *testing.T) { + t.Parallel() codemod := getAssignToAgentDefaultAgentCodemod() content := `--- @@ -131,6 +136,7 @@ engine: copilot } func TestAssignToAgentCodemod_NoAssignToAgent(t *testing.T) { + t.Parallel() codemod := getAssignToAgentDefaultAgentCodemod() content := `--- @@ -158,6 +164,7 @@ safe-outputs: } func TestAssignToAgentCodemod_NoDefaultAgent(t *testing.T) { + t.Parallel() codemod := getAssignToAgentDefaultAgentCodemod() content := `--- @@ -185,6 +192,7 @@ safe-outputs: } func TestAssignToAgentCodemod_SkipsWhenNameAlreadyExists(t *testing.T) { + t.Parallel() codemod := getAssignToAgentDefaultAgentCodemod() content := `--- @@ -214,6 +222,7 @@ safe-outputs: } func TestAssignToAgentCodemod_PreservesOtherSafeOutputs(t *testing.T) { + t.Parallel() codemod := getAssignToAgentDefaultAgentCodemod() content := `--- @@ -248,6 +257,7 @@ safe-outputs: } func TestAssignToAgentCodemod_RegisteredInAllCodemods(t *testing.T) { + t.Parallel() codemods := GetAllCodemods() var found bool for _, c := range codemods { diff --git a/pkg/cli/codemod_bash_allowlist_unsupported_engine_test.go b/pkg/cli/codemod_bash_allowlist_unsupported_engine_test.go index 9eed4e52e1e..093cd23b232 100644 --- a/pkg/cli/codemod_bash_allowlist_unsupported_engine_test.go +++ b/pkg/cli/codemod_bash_allowlist_unsupported_engine_test.go @@ -12,6 +12,7 @@ import ( ) func TestBashAllowlistUnsupportedEngineCodemod_Metadata(t *testing.T) { + t.Parallel() codemod := getBashAllowlistUnsupportedEngineCodemod() assert.Equal(t, "bash-allowlist-unsupported-engine-guided-error", codemod.ID) @@ -24,6 +25,7 @@ func TestBashAllowlistUnsupportedEngineCodemod_Metadata(t *testing.T) { } func TestBashAllowlistUnsupportedEngineCodemod_Apply(t *testing.T) { + t.Parallel() codemod := getBashAllowlistUnsupportedEngineCodemod() content := `--- @@ -150,6 +152,7 @@ tools: for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() newContent, applied, err := codemod.Apply(content, tt.frontmatter) assert.False(t, applied, "guided codemod never modifies the workflow") assert.Equal(t, content, newContent, "content must be preserved") @@ -169,6 +172,7 @@ tools: // ApplyWithContext detects a bash restriction that originates solely from an imported file (not // the top-level workflow), which Apply cannot detect because it only sees raw frontmatter. func TestBashAllowlistUnsupportedEngineCodemod_ApplyWithContext_ImportedRestriction(t *testing.T) { + t.Parallel() codemod := getBashAllowlistUnsupportedEngineCodemod() dir := t.TempDir() @@ -210,6 +214,7 @@ imports: // TestBashAllowlistUnsupportedEngineCodemod_ApplyWithContext_NoImportedRestriction verifies that // ApplyWithContext is a no-op when no bash restriction exists in the top-level or imported tools. func TestBashAllowlistUnsupportedEngineCodemod_ApplyWithContext_NoImportedRestriction(t *testing.T) { + t.Parallel() codemod := getBashAllowlistUnsupportedEngineCodemod() content := `--- diff --git a/pkg/cli/codemod_bash_anonymous_test.go b/pkg/cli/codemod_bash_anonymous_test.go index bc80df91f13..e02d122d965 100644 --- a/pkg/cli/codemod_bash_anonymous_test.go +++ b/pkg/cli/codemod_bash_anonymous_test.go @@ -12,6 +12,7 @@ import ( ) func TestBashAnonymousRemovalCodemod(t *testing.T) { + t.Parallel() codemod := getBashAnonymousRemovalCodemod() tests := []struct { @@ -86,6 +87,7 @@ name: Test Workflow for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() // Parse frontmatter to get the map result, err := parser.ExtractFrontmatterFromContent(tt.input) require.NoError(t, err, "Failed to parse test input frontmatter") @@ -118,6 +120,7 @@ name: Test Workflow } func TestBashAnonymousCodemodWithComments(t *testing.T) { + t.Parallel() codemod := getBashAnonymousRemovalCodemod() input := `--- @@ -140,6 +143,7 @@ tools: } func TestBashAnonymousCodemodPreservesIndentation(t *testing.T) { + t.Parallel() codemod := getBashAnonymousRemovalCodemod() input := `--- @@ -172,6 +176,7 @@ tools: } func TestReplaceBashAnonymousWithTrue(t *testing.T) { + t.Parallel() tests := []struct { name string lines []string @@ -230,6 +235,7 @@ func TestReplaceBashAnonymousWithTrue(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() result, modified := replaceBashAnonymousWithTrue(tt.lines) assert.Equal(t, tt.modified, modified, "Modified status mismatch") assert.Equal(t, tt.expectLines, result, "Output lines mismatch") diff --git a/pkg/cli/codemod_bash_single_quoted_args_test.go b/pkg/cli/codemod_bash_single_quoted_args_test.go index 5f08b7321e7..56714dc19a6 100644 --- a/pkg/cli/codemod_bash_single_quoted_args_test.go +++ b/pkg/cli/codemod_bash_single_quoted_args_test.go @@ -11,6 +11,7 @@ import ( ) func TestGetBashSingleQuotedArgsCodemod(t *testing.T) { + t.Parallel() codemod := getBashSingleQuotedArgsCodemod() assert.Equal(t, "bash-single-quoted-args-rewrite", codemod.ID) @@ -21,6 +22,7 @@ func TestGetBashSingleQuotedArgsCodemod(t *testing.T) { } func TestBashSingleQuotedArgsCodemod_RewritesSimpleSingleQuotedArg(t *testing.T) { + t.Parallel() codemod := getBashSingleQuotedArgsCodemod() content := `--- name: test @@ -50,6 +52,7 @@ Test workflow body` } func TestBashSingleQuotedArgsCodemod_RewritesGlobPatterns(t *testing.T) { + t.Parallel() codemod := getBashSingleQuotedArgsCodemod() content := `--- name: test @@ -78,6 +81,7 @@ body` } func TestBashSingleQuotedArgsCodemod_NoOpForAlreadySafeEntry(t *testing.T) { + t.Parallel() codemod := getBashSingleQuotedArgsCodemod() content := `--- name: test @@ -101,6 +105,7 @@ body` } func TestBashSingleQuotedArgsCodemod_UnmatchedQuoteLeftUnchanged(t *testing.T) { + t.Parallel() codemod := getBashSingleQuotedArgsCodemod() content := `--- name: test @@ -124,6 +129,7 @@ body` } func TestRewriteSingleQuotedBashArgs(t *testing.T) { + t.Parallel() tests := []struct { name string input string @@ -184,6 +190,7 @@ func TestRewriteSingleQuotedBashArgs(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() got, safe, changed := rewriteSingleQuotedBashArgs(tt.input) assert.Equal(t, tt.want, got) assert.Equal(t, tt.wantSafe, safe) diff --git a/pkg/cli/codemod_bots_test.go b/pkg/cli/codemod_bots_test.go index cfc534b1213..8878724799c 100644 --- a/pkg/cli/codemod_bots_test.go +++ b/pkg/cli/codemod_bots_test.go @@ -12,6 +12,7 @@ import ( ) func TestGetBotsToOnBotsCodemod(t *testing.T) { + t.Parallel() codemod := getBotsToOnBotsCodemod() assert.Equal(t, "bots-to-on-bots", codemod.ID) @@ -22,6 +23,7 @@ func TestGetBotsToOnBotsCodemod(t *testing.T) { } func TestBotsToOnBotsCodemod_SingleLineArray(t *testing.T) { + t.Parallel() codemod := getBotsToOnBotsCodemod() content := `--- @@ -68,6 +70,7 @@ bots: [dependabot, renovate] } func TestBotsToOnBotsCodemod_MultiLineArray(t *testing.T) { + t.Parallel() codemod := getBotsToOnBotsCodemod() content := `--- @@ -103,6 +106,7 @@ bots: } func TestBotsToOnBotsCodemod_NoOnBlock(t *testing.T) { + t.Parallel() codemod := getBotsToOnBotsCodemod() content := `--- @@ -130,6 +134,7 @@ engine: copilot } func TestBotsToOnBotsCodemod_NoChange_NoBots(t *testing.T) { + t.Parallel() codemod := getBotsToOnBotsCodemod() content := `--- @@ -158,6 +163,7 @@ engine: copilot } func TestBotsToOnBotsCodemod_NoChange_OnBotsExists(t *testing.T) { + t.Parallel() codemod := getBotsToOnBotsCodemod() content := `--- diff --git a/pkg/cli/codemod_byok_copilot_test.go b/pkg/cli/codemod_byok_copilot_test.go index 904e32060b5..2c88d714c66 100644 --- a/pkg/cli/codemod_byok_copilot_test.go +++ b/pkg/cli/codemod_byok_copilot_test.go @@ -11,6 +11,7 @@ import ( ) func TestByokCopilotFeatureRemovalCodemod(t *testing.T) { + t.Parallel() codemod := getByokCopilotFeatureRemovalCodemod() tests := []struct { @@ -56,6 +57,7 @@ features: for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() result, err := parser.ExtractFrontmatterFromContent(tt.input) require.NoError(t, err, "Failed to parse test input frontmatter") diff --git a/pkg/cli/codemod_checkout_persist_credentials_false_test.go b/pkg/cli/codemod_checkout_persist_credentials_false_test.go index 33505b399e0..4e9b28b59a0 100644 --- a/pkg/cli/codemod_checkout_persist_credentials_false_test.go +++ b/pkg/cli/codemod_checkout_persist_credentials_false_test.go @@ -11,10 +11,12 @@ import ( ) func TestCheckoutPersistCredentialsFalseCodemod(t *testing.T) { + t.Parallel() codemod := getCheckoutPersistCredentialsFalseCodemod() assert.Equal(t, "1.0.44", codemod.IntroducedIn) t.Run("adds with block when checkout step has none", func(t *testing.T) { + t.Parallel() content := `--- on: push steps: @@ -39,6 +41,7 @@ steps: }) t.Run("adds persist-credentials under existing with block", func(t *testing.T) { + t.Parallel() content := `--- on: push steps: @@ -68,6 +71,7 @@ steps: }) t.Run("does not mutate explicit persist-credentials true", func(t *testing.T) { + t.Parallel() content := `--- on: push steps: @@ -97,6 +101,7 @@ steps: }) t.Run("supports pre-steps and post-steps sections", func(t *testing.T) { + t.Parallel() content := `--- on: pull_request pre-steps: @@ -127,6 +132,7 @@ post-steps: }) t.Run("applies to jobs.agent but not custom jobs", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch jobs: @@ -163,6 +169,7 @@ jobs: }) t.Run("applies to jobs.agent with wider indentation", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch jobs: @@ -189,6 +196,7 @@ jobs: }) t.Run("does not apply to checkout in non-agent custom job only", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch jobs: diff --git a/pkg/cli/codemod_cli_proxy_mode_test.go b/pkg/cli/codemod_cli_proxy_mode_test.go index 1d32fa440d9..a05a898652d 100644 --- a/pkg/cli/codemod_cli_proxy_mode_test.go +++ b/pkg/cli/codemod_cli_proxy_mode_test.go @@ -10,9 +10,11 @@ import ( ) func TestCliProxyFeatureToGitHubModeCodemod(t *testing.T) { + t.Parallel() codemod := getCliProxyFeatureToGitHubModeCodemod() t.Run("migrates features.cli-proxy true and adds tools.github.mode gh-proxy", func(t *testing.T) { + t.Parallel() content := `--- features: cli-proxy: true @@ -36,6 +38,7 @@ features: }) t.Run("does not apply when cli-proxy is false", func(t *testing.T) { + t.Parallel() content := `--- features: cli-proxy: false @@ -56,6 +59,7 @@ features: }) t.Run("removes legacy flag but preserves existing github mode", func(t *testing.T) { + t.Parallel() content := `--- features: cli-proxy: true @@ -86,6 +90,7 @@ tools: }) t.Run("adds github block under existing tools block", func(t *testing.T) { + t.Parallel() content := `--- features: cli-proxy: true diff --git a/pkg/cli/codemod_copilot_requests_feature_test.go b/pkg/cli/codemod_copilot_requests_feature_test.go index cab98d0974e..cceab93cefe 100644 --- a/pkg/cli/codemod_copilot_requests_feature_test.go +++ b/pkg/cli/codemod_copilot_requests_feature_test.go @@ -10,9 +10,11 @@ import ( ) func TestCopilotRequestsFeatureToPermissionsCodemod(t *testing.T) { + t.Parallel() codemod := getCopilotRequestsFeatureToPermissionsCodemod() t.Run("migrates enabled feature to permissions", func(t *testing.T) { + t.Parallel() content := `--- features: copilot-requests: true @@ -39,6 +41,7 @@ permissions: }) t.Run("adds permissions block when missing", func(t *testing.T) { + t.Parallel() content := `--- features: copilot-requests: true @@ -65,6 +68,7 @@ on: }) t.Run("removes disabled feature without adding permission", func(t *testing.T) { + t.Parallel() content := `--- features: copilot-requests: false @@ -86,6 +90,7 @@ features: }) t.Run("skips migration when permissions shorthand is not safely updatable", func(t *testing.T) { + t.Parallel() content := `--- features: copilot-requests: true @@ -108,6 +113,7 @@ permissions: read-all }) t.Run("handles empty permissions object with inline comment", func(t *testing.T) { + t.Parallel() content := `--- features: copilot-requests: true diff --git a/pkg/cli/codemod_dependabot_permissions_test.go b/pkg/cli/codemod_dependabot_permissions_test.go index d25f6b92729..59c9ac5071d 100644 --- a/pkg/cli/codemod_dependabot_permissions_test.go +++ b/pkg/cli/codemod_dependabot_permissions_test.go @@ -10,9 +10,11 @@ import ( ) func TestDependabotPermissionsCodemod(t *testing.T) { + t.Parallel() codemod := getDependabotPermissionsCodemod() t.Run("adds missing vulnerability-alerts permission", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch: @@ -44,6 +46,7 @@ permissions: }) t.Run("adds missing issues permission for issues toolset", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch: @@ -75,6 +78,7 @@ permissions: }) t.Run("does not modify when permission already present", func(t *testing.T) { + t.Parallel() content := `--- tools: github: diff --git a/pkg/cli/codemod_difc_proxy_test.go b/pkg/cli/codemod_difc_proxy_test.go index bf6bad32968..a66f00be914 100644 --- a/pkg/cli/codemod_difc_proxy_test.go +++ b/pkg/cli/codemod_difc_proxy_test.go @@ -10,9 +10,11 @@ import ( ) func TestDIFCProxyToIntegrityProxyCodemod(t *testing.T) { + t.Parallel() codemod := getDIFCProxyToIntegrityProxyCodemod() t.Run("removes features.difc-proxy: true (no-op since proxy is now default)", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot features: @@ -45,6 +47,7 @@ tools: }) t.Run("removes features.difc-proxy: false and adds tools.github.integrity-proxy: false", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot features: @@ -77,6 +80,7 @@ tools: }) t.Run("removes features.difc-proxy: false but does NOT add integrity-proxy when tools.github is absent", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot features: @@ -100,6 +104,7 @@ features: }) t.Run("removes features.difc-proxy: false but does NOT add integrity-proxy when tools.github is boolean true", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot features: @@ -128,6 +133,7 @@ tools: }) t.Run("does not modify workflows without features.difc-proxy", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot tools: @@ -153,6 +159,7 @@ tools: }) t.Run("does not modify workflows without features section", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot --- @@ -170,6 +177,7 @@ engine: copilot }) t.Run("preserves other features when removing difc-proxy", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot features: @@ -203,6 +211,7 @@ tools: }) t.Run("integrity-proxy: false is added inside tools.github block", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot features: @@ -244,6 +253,7 @@ tools: }) t.Run("string 'false' value treated as false (adds integrity-proxy: false)", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot features: diff --git a/pkg/cli/codemod_discussion_flag_test.go b/pkg/cli/codemod_discussion_flag_test.go index 5d52b289a48..ebf66684b66 100644 --- a/pkg/cli/codemod_discussion_flag_test.go +++ b/pkg/cli/codemod_discussion_flag_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetDiscussionFlagRemovalCodemod(t *testing.T) { + t.Parallel() codemod := getDiscussionFlagRemovalCodemod() assert.Equal(t, "add-comment-discussion-removal", codemod.ID) @@ -20,6 +21,7 @@ func TestGetDiscussionFlagRemovalCodemod(t *testing.T) { } func TestDiscussionFlagCodemod_RemovesDiscussionFlag(t *testing.T) { + t.Parallel() codemod := getDiscussionFlagRemovalCodemod() content := `--- @@ -60,6 +62,7 @@ safe-outputs: } func TestDiscussionFlagCodemod_NoSafeOutputsField(t *testing.T) { + t.Parallel() codemod := getDiscussionFlagRemovalCodemod() content := `--- @@ -85,6 +88,7 @@ permissions: } func TestDiscussionFlagCodemod_NoAddCommentField(t *testing.T) { + t.Parallel() codemod := getDiscussionFlagRemovalCodemod() content := `--- @@ -113,6 +117,7 @@ safe-outputs: } func TestDiscussionFlagCodemod_NoDiscussionField(t *testing.T) { + t.Parallel() codemod := getDiscussionFlagRemovalCodemod() content := `--- @@ -143,6 +148,7 @@ safe-outputs: } func TestDiscussionFlagCodemod_PreservesIndentation(t *testing.T) { + t.Parallel() codemod := getDiscussionFlagRemovalCodemod() content := `--- @@ -183,6 +189,7 @@ safe-outputs: } func TestDiscussionFlagCodemod_PreservesComments(t *testing.T) { + t.Parallel() codemod := getDiscussionFlagRemovalCodemod() content := `--- @@ -217,6 +224,7 @@ safe-outputs: } func TestDiscussionFlagCodemod_PreservesMarkdown(t *testing.T) { + t.Parallel() codemod := getDiscussionFlagRemovalCodemod() content := `--- @@ -248,6 +256,7 @@ This workflow uses add-comment with discussion support.` } func TestDiscussionFlagCodemod_MultipleFields(t *testing.T) { + t.Parallel() codemod := getDiscussionFlagRemovalCodemod() content := `--- diff --git a/pkg/cli/codemod_discussion_trigger_categories_test.go b/pkg/cli/codemod_discussion_trigger_categories_test.go index 207c21ad5cd..cceb264f39e 100644 --- a/pkg/cli/codemod_discussion_trigger_categories_test.go +++ b/pkg/cli/codemod_discussion_trigger_categories_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetDiscussionTriggerCategoriesLowercaseCodemod(t *testing.T) { + t.Parallel() codemod := getDiscussionTriggerCategoriesLowercaseCodemod() assert.Equal(t, "discussion-trigger-categories-lowercase", codemod.ID) @@ -20,6 +21,7 @@ func TestGetDiscussionTriggerCategoriesLowercaseCodemod(t *testing.T) { } func TestDiscussionTriggerCategoriesCodemod_LowercasesMixedCaseValues(t *testing.T) { + t.Parallel() codemod := getDiscussionTriggerCategoriesLowercaseCodemod() content := `--- @@ -55,6 +57,7 @@ on: } func TestDiscussionTriggerCategoriesCodemod_NoOpWhenAlreadyLowercase(t *testing.T) { + t.Parallel() codemod := getDiscussionTriggerCategoriesLowercaseCodemod() content := `--- @@ -87,6 +90,7 @@ on: } func TestDiscussionTriggerCategoriesCodemod_LowercasesQuotedOnAndTriggerKeys(t *testing.T) { + t.Parallel() codemod := getDiscussionTriggerCategoriesLowercaseCodemod() content := `--- @@ -122,6 +126,7 @@ func TestDiscussionTriggerCategoriesCodemod_LowercasesQuotedOnAndTriggerKeys(t * } func TestGetBlockMappingKey(t *testing.T) { + t.Parallel() tests := []struct { name string line string @@ -137,6 +142,7 @@ func TestGetBlockMappingKey(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() gotKey, gotOK := getBlockMappingKey(tt.line) assert.Equal(t, tt.wantKey, gotKey) assert.Equal(t, tt.wantOK, gotOK) diff --git a/pkg/cli/codemod_effective_tokens_to_ai_credits_test.go b/pkg/cli/codemod_effective_tokens_to_ai_credits_test.go index 616255b21b7..4e0fa7100a1 100644 --- a/pkg/cli/codemod_effective_tokens_to_ai_credits_test.go +++ b/pkg/cli/codemod_effective_tokens_to_ai_credits_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetEffectiveTokensToAICreditsCodemod(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() assert.Equal(t, "effective-tokens-to-ai-credits", codemod.ID) @@ -20,6 +21,7 @@ func TestGetEffectiveTokensToAICreditsCodemod(t *testing.T) { } func TestEffectiveTokensToAICreditsCodemod_MigratesNumericValues(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -47,6 +49,7 @@ on: workflow_dispatch } func TestEffectiveTokensToAICreditsCodemod_NoOpWhenLegacyFieldsAbsent(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -66,6 +69,7 @@ max-daily-ai-credits: 5000 } func TestEffectiveTokensToAICreditsCodemod_IdempotentAfterMigration(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -85,6 +89,7 @@ max-daily-ai-credits: 1 } func TestEffectiveTokensToAICreditsCodemod_SkipsExpressionValues(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -106,6 +111,7 @@ max-daily-effective-tokens: 4M } func TestEffectiveTokensToAICreditsCodemod_SkipsWhenTargetFieldExists(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -125,6 +131,7 @@ max-ai-credits: 2500 } func TestEffectiveTokensToAICreditsCodemod_MigratesDailyNegativeOne(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -143,6 +150,7 @@ max-daily-effective-tokens: -1 # disabled } func TestEffectiveTokensToAICreditsCodemod_MigratesRunNegativeOne(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -161,6 +169,7 @@ max-effective-tokens: -1 # disabled } func TestEffectiveTokensToAICreditsCodemod_SkipsValuesBelowOneCredit(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -180,6 +189,7 @@ max-daily-effective-tokens: 5000 } func TestEffectiveTokensToAICreditsCodemod_PartialMigrationWhenOnlyOneValueConverts(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -201,6 +211,7 @@ max-daily-effective-tokens: 10k } func TestEffectiveTokensToAICreditsCodemod_PartialMigrationWhenOnlyRunValueConverts(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- @@ -222,6 +233,7 @@ max-daily-effective-tokens: 5000 } func TestEffectiveTokensToAICreditsCodemod_MigratesThresholdValue(t *testing.T) { + t.Parallel() codemod := getEffectiveTokensToAICreditsCodemod() content := `--- diff --git a/pkg/cli/codemod_engine_driver_test.go b/pkg/cli/codemod_engine_driver_test.go index 96c173e2e42..1e3a8982927 100644 --- a/pkg/cli/codemod_engine_driver_test.go +++ b/pkg/cli/codemod_engine_driver_test.go @@ -10,9 +10,11 @@ import ( ) func TestEngineCopilotSDKDriverToDriverCodemod(t *testing.T) { + t.Parallel() codemod := getEngineCopilotSDKDriverToDriverCodemod() t.Run("renames copilot-sdk-driver to driver in engine block", func(t *testing.T) { + t.Parallel() content := `--- engine: id: copilot @@ -36,6 +38,7 @@ engine: }) t.Run("does not apply when engine has no copilot-sdk-driver field", func(t *testing.T) { + t.Parallel() content := `--- engine: id: copilot @@ -56,6 +59,7 @@ engine: }) t.Run("does not apply when driver field already present", func(t *testing.T) { + t.Parallel() content := `--- engine: id: copilot @@ -80,6 +84,7 @@ engine: }) t.Run("does not apply when no engine block", func(t *testing.T) { + t.Parallel() content := `--- name: My Workflow --- @@ -97,6 +102,7 @@ name: My Workflow }) t.Run("does not apply when engine is a scalar", func(t *testing.T) { + t.Parallel() content := `--- engine: copilot --- @@ -114,6 +120,7 @@ engine: copilot }) t.Run("preserves indentation when renaming", func(t *testing.T) { + t.Parallel() content := `--- engine: id: copilot diff --git a/pkg/cli/codemod_engine_env_secrets_test.go b/pkg/cli/codemod_engine_env_secrets_test.go index 4a88e6d03c4..be1c6c7d1e1 100644 --- a/pkg/cli/codemod_engine_env_secrets_test.go +++ b/pkg/cli/codemod_engine_env_secrets_test.go @@ -10,9 +10,11 @@ import ( ) func TestEngineEnvSecretsCodemod(t *testing.T) { + t.Parallel() codemod := getEngineEnvSecretsCodemod() t.Run("removes unsafe secret-bearing engine env keys and keeps allowed override", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch engine: @@ -41,6 +43,7 @@ engine: }) t.Run("removes empty env block after deleting unsafe entries", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch engine: @@ -67,6 +70,7 @@ engine: }) t.Run("no-op when only allowed engine secret override is used", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch engine: @@ -92,6 +96,7 @@ engine: }) t.Run("no-op when COPILOT_PROVIDER_API_KEY is used (BYOK)", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch engine: @@ -121,6 +126,7 @@ engine: }) t.Run("no-op when COPILOT_PROVIDER_BEARER_TOKEN is used (BYOK)", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch engine: @@ -148,6 +154,7 @@ engine: }) t.Run("supports inline engine runtime.id for allowlist", func(t *testing.T) { + t.Parallel() content := `--- on: workflow_dispatch engine: diff --git a/pkg/cli/codemod_engine_max_runs_test.go b/pkg/cli/codemod_engine_max_runs_test.go index 78966475870..fd37220e0ae 100644 --- a/pkg/cli/codemod_engine_max_runs_test.go +++ b/pkg/cli/codemod_engine_max_runs_test.go @@ -10,6 +10,7 @@ import ( ) func TestEngineMaxRunsToTopLevelCodemod_Metadata(t *testing.T) { + t.Parallel() codemod := getEngineMaxRunsToTopLevelCodemod() assert.Equal(t, "engine-max-runs-to-top-level", codemod.ID) @@ -20,6 +21,7 @@ func TestEngineMaxRunsToTopLevelCodemod_Metadata(t *testing.T) { } func TestEngineMaxRunsToTopLevelCodemod_NoOp(t *testing.T) { + t.Parallel() codemod := getEngineMaxRunsToTopLevelCodemod() content := `--- @@ -42,6 +44,7 @@ engine: } func TestEngineMaxRunsToTopLevelCodemod_MigratesField(t *testing.T) { + t.Parallel() codemod := getEngineMaxRunsToTopLevelCodemod() content := `--- @@ -68,6 +71,7 @@ engine: } func TestEngineMaxRunsToTopLevelCodemod_RespectsExistingTopLevel(t *testing.T) { + t.Parallel() codemod := getEngineMaxRunsToTopLevelCodemod() content := `--- @@ -94,6 +98,7 @@ engine: } func TestEngineMaxRunsToTopLevelCodemod_InlineEngineMapNoOp(t *testing.T) { + t.Parallel() codemod := getEngineMaxRunsToTopLevelCodemod() content := `--- diff --git a/pkg/cli/codemod_engine_max_turns_test.go b/pkg/cli/codemod_engine_max_turns_test.go index 8190edd4950..9abab7e5671 100644 --- a/pkg/cli/codemod_engine_max_turns_test.go +++ b/pkg/cli/codemod_engine_max_turns_test.go @@ -10,6 +10,7 @@ import ( ) func TestEngineMaxTurnsToTopLevelCodemod_Metadata(t *testing.T) { + t.Parallel() codemod := getEngineMaxTurnsToTopLevelCodemod() assert.Equal(t, "engine-max-turns-to-top-level", codemod.ID) @@ -20,6 +21,7 @@ func TestEngineMaxTurnsToTopLevelCodemod_Metadata(t *testing.T) { } func TestEngineMaxTurnsToTopLevelCodemod_NoOp(t *testing.T) { + t.Parallel() codemod := getEngineMaxTurnsToTopLevelCodemod() content := `--- @@ -42,6 +44,7 @@ engine: } func TestEngineMaxTurnsToTopLevelCodemod_IdempotentWhenAlreadyMigrated(t *testing.T) { + t.Parallel() codemod := getEngineMaxTurnsToTopLevelCodemod() content := `--- @@ -64,6 +67,7 @@ engine: } func TestEngineMaxTurnsToTopLevelCodemod_MigratesField(t *testing.T) { + t.Parallel() codemod := getEngineMaxTurnsToTopLevelCodemod() content := `--- @@ -98,6 +102,7 @@ engine: } func TestEngineMaxTurnsToTopLevelCodemod_PreservesExpressionCommentsAndBody(t *testing.T) { + t.Parallel() codemod := getEngineMaxTurnsToTopLevelCodemod() content := `--- @@ -134,6 +139,7 @@ Keep this content.` } func TestEngineMaxTurnsToTopLevelCodemod_RespectsExistingTopLevel(t *testing.T) { + t.Parallel() codemod := getEngineMaxTurnsToTopLevelCodemod() content := `--- @@ -160,6 +166,7 @@ engine: } func TestEngineMaxTurnsToTopLevelCodemod_InlineEngineMapNoOp(t *testing.T) { + t.Parallel() codemod := getEngineMaxTurnsToTopLevelCodemod() content := `--- diff --git a/pkg/cli/codemod_engine_model_test.go b/pkg/cli/codemod_engine_model_test.go index 205e5e9be64..ed2837b66a2 100644 --- a/pkg/cli/codemod_engine_model_test.go +++ b/pkg/cli/codemod_engine_model_test.go @@ -10,6 +10,7 @@ import ( ) func TestEngineModelToTopLevelCodemod_Metadata(t *testing.T) { + t.Parallel() codemod := getEngineModelToTopLevelCodemod() assert.Equal(t, "engine-model-to-top-level", codemod.ID) @@ -20,6 +21,7 @@ func TestEngineModelToTopLevelCodemod_Metadata(t *testing.T) { } func TestEngineModelToTopLevelCodemod_NoOp(t *testing.T) { + t.Parallel() codemod := getEngineModelToTopLevelCodemod() content := `--- @@ -42,6 +44,7 @@ engine: } func TestEngineModelToTopLevelCodemod_IdempotentWhenAlreadyMigrated(t *testing.T) { + t.Parallel() codemod := getEngineModelToTopLevelCodemod() content := `--- @@ -64,6 +67,7 @@ engine: } func TestEngineModelToTopLevelCodemod_MigratesField(t *testing.T) { + t.Parallel() codemod := getEngineModelToTopLevelCodemod() content := `--- @@ -98,6 +102,7 @@ engine: } func TestEngineModelToTopLevelCodemod_PreservesCommentsAndBody(t *testing.T) { + t.Parallel() codemod := getEngineModelToTopLevelCodemod() content := `--- @@ -134,6 +139,7 @@ Keep this content.` } func TestEngineModelToTopLevelCodemod_RespectsExistingTopLevel(t *testing.T) { + t.Parallel() codemod := getEngineModelToTopLevelCodemod() content := `--- @@ -160,6 +166,7 @@ engine: } func TestEngineModelToTopLevelCodemod_InlineEngineMapNoOp(t *testing.T) { + t.Parallel() codemod := getEngineModelToTopLevelCodemod() content := `--- diff --git a/pkg/cli/codemod_engine_steps_test.go b/pkg/cli/codemod_engine_steps_test.go index c66ab40d545..5dd7aa64285 100644 --- a/pkg/cli/codemod_engine_steps_test.go +++ b/pkg/cli/codemod_engine_steps_test.go @@ -11,6 +11,7 @@ import ( ) func TestGetEngineStepsToTopLevelCodemod_Metadata(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() assert.Equal(t, "engine-steps-to-top-level", codemod.ID) @@ -22,6 +23,7 @@ func TestGetEngineStepsToTopLevelCodemod_Metadata(t *testing.T) { // TestEngineStepsToTopLevelCodemod_NoOp tests cases where the codemod should not apply func TestEngineStepsToTopLevelCodemod_NoOp(t *testing.T) { + t.Parallel() tests := []struct { name string content string @@ -73,6 +75,7 @@ engine: for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() result, applied, err := codemod.Apply(tt.content, tt.frontmatter) require.NoError(t, err) @@ -84,6 +87,7 @@ engine: // TestEngineStepsToTopLevelCodemod_SingleStep tests moving a single engine step to top level func TestEngineStepsToTopLevelCodemod_SingleStep(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- @@ -121,6 +125,7 @@ engine: // TestEngineStepsToTopLevelCodemod_MultipleSteps tests moving multiple steps preserves order func TestEngineStepsToTopLevelCodemod_MultipleSteps(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- @@ -183,6 +188,7 @@ engine: // TestEngineStepsToTopLevelCodemod_UsesStep tests a step that uses an action (not run:) func TestEngineStepsToTopLevelCodemod_UsesStep(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- @@ -231,6 +237,7 @@ engine: // TestEngineStepsToTopLevelCodemod_EngineFieldsAfterSteps tests that engine fields after steps // are preserved correctly in the engine block func TestEngineStepsToTopLevelCodemod_EngineFieldsAfterSteps(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- @@ -270,6 +277,7 @@ engine: // TestEngineStepsToTopLevelCodemod_MergeWithExistingSteps tests appending engine steps // after existing top-level steps func TestEngineStepsToTopLevelCodemod_MergeWithExistingSteps(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- @@ -325,6 +333,7 @@ steps: // TestEngineStepsToTopLevelCodemod_NoMarkdownBody tests a workflow without a body section func TestEngineStepsToTopLevelCodemod_NoMarkdownBody(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- @@ -358,6 +367,7 @@ engine: // TestEngineStepsToTopLevelCodemod_Idempotent tests that applying the codemod twice // (simulated by running on output with updated frontmatter) does not change the content func TestEngineStepsToTopLevelCodemod_Idempotent(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() // After codemod is applied, engine no longer has steps in frontmatter @@ -393,6 +403,7 @@ steps: // TestEngineStepsToTopLevelCodemod_StepsBeforeEngine tests when top-level steps field // comes before the engine field in the YAML func TestEngineStepsToTopLevelCodemod_StepsBeforeEngine(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- @@ -442,6 +453,7 @@ engine: // TestEngineStepsToTopLevelCodemod_PreservesMarkdownBody tests that the markdown body // is preserved after the frontmatter when applying the codemod func TestEngineStepsToTopLevelCodemod_PreservesMarkdownBody(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- @@ -488,6 +500,7 @@ Follow these steps carefully.` // TestEngineStepsToTopLevelCodemod_TableDriven is a comprehensive table-driven test func TestEngineStepsToTopLevelCodemod_TableDriven(t *testing.T) { + t.Parallel() tests := []struct { name string content string @@ -584,6 +597,7 @@ Review this PR`, for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() result, applied, err := codemod.Apply(tt.content, tt.frontmatter) @@ -603,6 +617,7 @@ Review this PR`, // TestEngineStepsToTopLevelCodemod_EmptyEngineBlockRemoved tests that a dangling // engine: block (containing only steps) is removed after migration func TestEngineStepsToTopLevelCodemod_EmptyEngineBlockRemoved(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- @@ -639,6 +654,7 @@ engine: // TestEngineStepsToTopLevelCodemod_NonSequenceTopLevelSteps tests that when // top-level steps exists but is not a sequence, a fresh steps block is inserted func TestEngineStepsToTopLevelCodemod_NonSequenceTopLevelSteps(t *testing.T) { + t.Parallel() codemod := getEngineStepsToTopLevelCodemod() content := `--- diff --git a/pkg/cli/codemod_expires_integer_test.go b/pkg/cli/codemod_expires_integer_test.go index f5291312ee4..98fca114b16 100644 --- a/pkg/cli/codemod_expires_integer_test.go +++ b/pkg/cli/codemod_expires_integer_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetExpiresIntegerToStringCodemod(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() assert.Equal(t, "expires-integer-to-string", codemod.ID) @@ -20,6 +21,7 @@ func TestGetExpiresIntegerToStringCodemod(t *testing.T) { } func TestExpiresIntegerCodemod_ConvertsCreateIssue(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() content := `--- @@ -48,6 +50,7 @@ safe-outputs: } func TestExpiresIntegerCodemod_ConvertsCreateDiscussion(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() content := `--- @@ -76,6 +79,7 @@ safe-outputs: } func TestExpiresIntegerCodemod_ConvertsCreatePullRequest(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() content := `--- @@ -104,6 +108,7 @@ safe-outputs: } func TestExpiresIntegerCodemod_AlreadyStringFormat_NoChange(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() content := `--- @@ -132,6 +137,7 @@ safe-outputs: } func TestExpiresIntegerCodemod_HourStringFormat_NoChange(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() content := `--- @@ -160,6 +166,7 @@ safe-outputs: } func TestExpiresIntegerCodemod_NoSafeOutputs_NoChange(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() content := `--- @@ -185,6 +192,7 @@ permissions: } func TestExpiresIntegerCodemod_PreservesComment(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() content := `--- @@ -213,6 +221,7 @@ safe-outputs: } func TestExpiresIntegerCodemod_PreservesOtherFields(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() content := `--- @@ -248,6 +257,7 @@ safe-outputs: } func TestExpiresIntegerCodemod_MultipleOutputTypes(t *testing.T) { + t.Parallel() codemod := getExpiresIntegerToDayStringCodemod() content := `--- @@ -282,6 +292,7 @@ safe-outputs: } func TestConvertExpiresLineToString_Integer(t *testing.T) { + t.Parallel() tests := []struct { name string input string @@ -334,6 +345,7 @@ func TestConvertExpiresLineToString_Integer(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() result, changed := convertExpiresIntegerLineToDayString(tt.input) assert.Equal(t, tt.changed, changed, "changed flag should match") assert.Equal(t, tt.expected, result, "converted line should match") diff --git a/pkg/cli/codemod_factory_test.go b/pkg/cli/codemod_factory_test.go index 00bff3c0710..49f691e9bc0 100644 --- a/pkg/cli/codemod_factory_test.go +++ b/pkg/cli/codemod_factory_test.go @@ -27,6 +27,7 @@ func baseFieldRemovalConfig() fieldRemovalCodemodConfig { } func TestNewFieldRemovalCodemod_Metadata(t *testing.T) { + t.Parallel() cfg := baseFieldRemovalConfig() codemod := newFieldRemovalCodemod(cfg) @@ -38,6 +39,7 @@ func TestNewFieldRemovalCodemod_Metadata(t *testing.T) { } func TestNewFieldRemovalCodemod_ParentKeyMissing(t *testing.T) { + t.Parallel() codemod := newFieldRemovalCodemod(baseFieldRemovalConfig()) content := `--- @@ -60,6 +62,7 @@ other: value } func TestNewFieldRemovalCodemod_ParentKeyWrongType(t *testing.T) { + t.Parallel() codemod := newFieldRemovalCodemod(baseFieldRemovalConfig()) content := `--- @@ -82,6 +85,7 @@ parent: simple_string } func TestNewFieldRemovalCodemod_FieldKeyMissing(t *testing.T) { + t.Parallel() codemod := newFieldRemovalCodemod(baseFieldRemovalConfig()) content := `--- @@ -107,6 +111,7 @@ parent: } func TestNewFieldRemovalCodemod_SuccessfulRemoval(t *testing.T) { + t.Parallel() codemod := newFieldRemovalCodemod(baseFieldRemovalConfig()) content := `--- @@ -135,6 +140,7 @@ parent: } func TestNewFieldRemovalCodemod_PostTransformInvoked(t *testing.T) { + t.Parallel() var postTransformCalled bool var capturedFieldValue any @@ -173,6 +179,7 @@ parent: } func TestNewFieldRemovalCodemod_PostTransformNotCalledWhenFieldAbsent(t *testing.T) { + t.Parallel() var postTransformCalled bool cfg := baseFieldRemovalConfig() @@ -206,6 +213,7 @@ parent: } func TestNewFieldRemovalCodemod_TableDriven(t *testing.T) { + t.Parallel() tests := []struct { name string content string @@ -253,6 +261,7 @@ func TestNewFieldRemovalCodemod_TableDriven(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + t.Parallel() codemod := newFieldRemovalCodemod(baseFieldRemovalConfig()) result, applied, err := codemod.Apply(tt.content, tt.frontmatter) diff --git a/pkg/cli/codemod_github_app_client_id_test.go b/pkg/cli/codemod_github_app_client_id_test.go index 9863800128b..125c50ee203 100644 --- a/pkg/cli/codemod_github_app_client_id_test.go +++ b/pkg/cli/codemod_github_app_client_id_test.go @@ -10,9 +10,11 @@ import ( ) func TestGitHubAppClientIDCodemod(t *testing.T) { + t.Parallel() codemod := getGitHubAppClientIDCodemod() t.Run("renames app-id under github-app blocks", func(t *testing.T) { + t.Parallel() content := `--- github-app: app-id: ${{ vars.TOP_LEVEL_APP_ID }} @@ -60,6 +62,7 @@ checkout: }) t.Run("does not modify content without github-app.app-id", func(t *testing.T) { + t.Parallel() content := `--- github-app: client-id: ${{ vars.APP_ID }} @@ -80,6 +83,7 @@ github-app: }) t.Run("does not rename app-id outside github-app blocks", func(t *testing.T) { + t.Parallel() content := `--- engine: provider: