diff --git a/pkg/cli/codemod_safe_output_merge_pr_constraints_test.go b/pkg/cli/codemod_safe_output_merge_pr_constraints_test.go index 83f4f3427b2..d3234aa58b0 100644 --- a/pkg/cli/codemod_safe_output_merge_pr_constraints_test.go +++ b/pkg/cli/codemod_safe_output_merge_pr_constraints_test.go @@ -10,6 +10,7 @@ import ( ) func TestSafeOutputMergePRConstraintsCodemod(t *testing.T) { + t.Parallel() codemod := getSafeOutputMergePRConstraintsCodemod() t.Run("renames allowed-labels to required-labels, leaves allowed-branches unchanged", func(t *testing.T) { diff --git a/pkg/cli/codemod_safe_output_require_title_prefix_test.go b/pkg/cli/codemod_safe_output_require_title_prefix_test.go index 9a2aae1eb96..7601d357a4c 100644 --- a/pkg/cli/codemod_safe_output_require_title_prefix_test.go +++ b/pkg/cli/codemod_safe_output_require_title_prefix_test.go @@ -10,6 +10,7 @@ import ( ) func TestSafeOutputRequireTitlePrefixCodemod(t *testing.T) { + t.Parallel() codemod := getSafeOutputRequireTitlePrefixCodemod() t.Run("renames close and push constraint keys", func(t *testing.T) { diff --git a/pkg/cli/codemod_sandbox_agent_false_removal_test.go b/pkg/cli/codemod_sandbox_agent_false_removal_test.go index 48729f188ef..8ac414cd686 100644 --- a/pkg/cli/codemod_sandbox_agent_false_removal_test.go +++ b/pkg/cli/codemod_sandbox_agent_false_removal_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetSandboxAgentFalseRemovalCodemod(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() assert.Equal(t, "sandbox-agent-false-removal", codemod.ID) @@ -20,6 +21,7 @@ func TestGetSandboxAgentFalseRemovalCodemod(t *testing.T) { } func TestSandboxAgentFalseRemoval_RemovesAgentFalse(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() content := `--- @@ -52,6 +54,7 @@ permissions: } func TestSandboxAgentFalseRemoval_PreservesOtherSandboxKeys(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() content := `--- @@ -84,6 +87,7 @@ sandbox: } func TestSandboxAgentFalseRemoval_NoSandboxKey(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() content := `--- @@ -109,6 +113,7 @@ permissions: } func TestSandboxAgentFalseRemoval_AgentNotFalse(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() content := `--- @@ -134,6 +139,7 @@ sandbox: } func TestSandboxAgentFalseRemoval_AgentObject(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() content := `--- @@ -162,6 +168,7 @@ sandbox: } func TestSandboxAgentFalseRemoval_AgentTrue(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() content := `--- @@ -187,6 +194,7 @@ sandbox: } func TestSandboxAgentFalseRemoval_SkipsWhenStrictFalse(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() content := `--- @@ -214,6 +222,7 @@ sandbox: } func TestSandboxAgentFalseRemoval_PreservesMarkdown(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() content := `--- @@ -242,6 +251,7 @@ This workflow was using the nosandbox escape hatch.` } func TestSandboxAgentFalseRemoval_NoAgentKey(t *testing.T) { + t.Parallel() codemod := getSandboxAgentFalseRemovalCodemod() content := `--- diff --git a/pkg/cli/codemod_sandbox_agent_test.go b/pkg/cli/codemod_sandbox_agent_test.go index 093e7583324..69670fa576c 100644 --- a/pkg/cli/codemod_sandbox_agent_test.go +++ b/pkg/cli/codemod_sandbox_agent_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetSandboxFalseToAgentFalseCodemod(t *testing.T) { + t.Parallel() codemod := getSandboxFalseToAgentFalseCodemod() assert.Equal(t, "sandbox-false-to-agent-false", codemod.ID) @@ -20,6 +21,7 @@ func TestGetSandboxFalseToAgentFalseCodemod(t *testing.T) { } func TestSandboxFalseToAgentFalseCodemod_ConvertsBooleanFalse(t *testing.T) { + t.Parallel() codemod := getSandboxFalseToAgentFalseCodemod() content := `--- @@ -49,6 +51,7 @@ permissions: } func TestSandboxFalseToAgentFalseCodemod_PreservesIndentation(t *testing.T) { + t.Parallel() codemod := getSandboxFalseToAgentFalseCodemod() content := `--- @@ -79,6 +82,7 @@ permissions: } func TestSandboxFalseToAgentFalseCodemod_NoSandboxField(t *testing.T) { + t.Parallel() codemod := getSandboxFalseToAgentFalseCodemod() content := `--- @@ -104,6 +108,7 @@ permissions: } func TestSandboxFalseToAgentFalseCodemod_SandboxTrue(t *testing.T) { + t.Parallel() codemod := getSandboxFalseToAgentFalseCodemod() content := `--- @@ -126,6 +131,7 @@ sandbox: true } func TestSandboxFalseToAgentFalseCodemod_SandboxObject(t *testing.T) { + t.Parallel() codemod := getSandboxFalseToAgentFalseCodemod() content := `--- @@ -151,6 +157,7 @@ sandbox: } func TestSandboxFalseToAgentFalseCodemod_PreservesMarkdown(t *testing.T) { + t.Parallel() codemod := getSandboxFalseToAgentFalseCodemod() content := `--- @@ -176,6 +183,7 @@ This workflow runs without a sandbox.` } func TestSandboxFalseToAgentFalseCodemod_WithStrictFalse(t *testing.T) { + t.Parallel() codemod := getSandboxFalseToAgentFalseCodemod() content := `--- diff --git a/pkg/cli/codemod_sandbox_mcp_internal_test.go b/pkg/cli/codemod_sandbox_mcp_internal_test.go index 741cbee9efa..7965f050491 100644 --- a/pkg/cli/codemod_sandbox_mcp_internal_test.go +++ b/pkg/cli/codemod_sandbox_mcp_internal_test.go @@ -12,6 +12,7 @@ import ( // ----- getSandboxMCPContainerRemovalCodemod tests ----- func TestGetSandboxMCPContainerRemovalCodemod(t *testing.T) { + t.Parallel() codemod := getSandboxMCPContainerRemovalCodemod() assert.Equal(t, "sandbox-mcp-container-removal", codemod.ID) @@ -22,6 +23,7 @@ func TestGetSandboxMCPContainerRemovalCodemod(t *testing.T) { } func TestSandboxMCPContainerRemoval_RemovesContainer(t *testing.T) { + t.Parallel() codemod := getSandboxMCPContainerRemovalCodemod() content := `--- @@ -59,6 +61,7 @@ permissions: } func TestSandboxMCPContainerRemoval_NoSandboxKey(t *testing.T) { + t.Parallel() codemod := getSandboxMCPContainerRemovalCodemod() content := `--- @@ -84,6 +87,7 @@ permissions: } func TestSandboxMCPContainerRemoval_NoMCPKey(t *testing.T) { + t.Parallel() codemod := getSandboxMCPContainerRemovalCodemod() content := `--- @@ -109,6 +113,7 @@ sandbox: } func TestSandboxMCPContainerRemoval_NoContainerField(t *testing.T) { + t.Parallel() codemod := getSandboxMCPContainerRemovalCodemod() content := `--- @@ -137,6 +142,7 @@ sandbox: } func TestSandboxMCPContainerRemoval_PreservesMarkdown(t *testing.T) { + t.Parallel() codemod := getSandboxMCPContainerRemovalCodemod() content := `--- @@ -171,6 +177,7 @@ This is a test workflow.` // ----- getSandboxMCPVersionRemovalCodemod tests ----- func TestGetSandboxMCPVersionRemovalCodemod(t *testing.T) { + t.Parallel() codemod := getSandboxMCPVersionRemovalCodemod() assert.Equal(t, "sandbox-mcp-version-removal", codemod.ID) @@ -181,6 +188,7 @@ func TestGetSandboxMCPVersionRemovalCodemod(t *testing.T) { } func TestSandboxMCPVersionRemoval_RemovesVersion(t *testing.T) { + t.Parallel() codemod := getSandboxMCPVersionRemovalCodemod() content := `--- @@ -218,6 +226,7 @@ permissions: } func TestSandboxMCPVersionRemoval_NoVersionField(t *testing.T) { + t.Parallel() codemod := getSandboxMCPVersionRemovalCodemod() content := `--- @@ -246,6 +255,7 @@ sandbox: } func TestSandboxMCPVersionRemoval_NoSandboxKey(t *testing.T) { + t.Parallel() codemod := getSandboxMCPVersionRemovalCodemod() content := `--- @@ -266,6 +276,7 @@ on: workflow_dispatch } func TestSandboxMCPContainerRemoval_SkipsWhenStrictFalse(t *testing.T) { + t.Parallel() codemod := getSandboxMCPContainerRemovalCodemod() content := `--- @@ -298,6 +309,7 @@ sandbox: } func TestSandboxMCPVersionRemoval_SkipsWhenStrictFalse(t *testing.T) { + t.Parallel() codemod := getSandboxMCPVersionRemovalCodemod() content := `--- @@ -330,6 +342,7 @@ sandbox: } func TestSandboxMCPVersionRemoval_BothContainerAndVersion(t *testing.T) { + t.Parallel() // Verify that version removal does not affect the container key. codemod := getSandboxMCPVersionRemovalCodemod() @@ -365,6 +378,7 @@ sandbox: } func TestSandboxMCPContainerRemoval_RemovesEmptySandboxGrandparent(t *testing.T) { + t.Parallel() // When container: is the only field under mcp:, and mcp: is the only field // under sandbox:, the codemod must remove all three levels to avoid a // dangling "sandbox:" key that YAML parses as null. @@ -404,6 +418,7 @@ permissions: } func TestSandboxMCPVersionRemoval_RemovesEmptySandboxGrandparent(t *testing.T) { + t.Parallel() // When version: is the only field under mcp:, and mcp: is the only field // under sandbox:, the codemod must remove all three levels to avoid a // dangling "sandbox:" key that YAML parses as null. @@ -443,6 +458,7 @@ permissions: } func TestSandboxMCPContainerRemoval_KeepsSandboxWhenOtherChildrenRemain(t *testing.T) { + t.Parallel() // When sandbox: has other children besides mcp:, it must be preserved even // after mcp: becomes empty and is removed. codemod := getSandboxMCPContainerRemovalCodemod() diff --git a/pkg/cli/codemod_sandbox_runtime_profile_test.go b/pkg/cli/codemod_sandbox_runtime_profile_test.go index c1934b53fcf..d92b76e6108 100644 --- a/pkg/cli/codemod_sandbox_runtime_profile_test.go +++ b/pkg/cli/codemod_sandbox_runtime_profile_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetSandboxRuntimeProfileCodemod(t *testing.T) { + t.Parallel() codemod := getSandboxRuntimeProfileCodemod() assert.Equal(t, "sandbox-runtime-profiles", codemod.ID) @@ -20,6 +21,7 @@ func TestGetSandboxRuntimeProfileCodemod(t *testing.T) { } func TestSandboxRuntimeProfileCodemod_Migrations(t *testing.T) { + t.Parallel() codemod := getSandboxRuntimeProfileCodemod() tests := []struct { @@ -210,6 +212,7 @@ sandbox: // only key under sandbox.agent also removes the now-empty parent mappings, which would // otherwise fail schema validation as a null value. func TestSandboxRuntimeProfileCodemod_RemovesEmptySandboxBlock(t *testing.T) { + t.Parallel() codemod := getSandboxRuntimeProfileCodemod() content := `--- diff --git a/pkg/cli/codemod_schedule_test.go b/pkg/cli/codemod_schedule_test.go index d047cd88096..f34dc000457 100644 --- a/pkg/cli/codemod_schedule_test.go +++ b/pkg/cli/codemod_schedule_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetScheduleAtToAroundCodemod(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() assert.Equal(t, "schedule-at-to-around-migration", codemod.ID) @@ -20,6 +21,7 @@ func TestGetScheduleAtToAroundCodemod(t *testing.T) { } func TestScheduleCodemod_DailyAt(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- @@ -47,6 +49,7 @@ on: } func TestScheduleCodemod_WeeklyOnAt(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- @@ -74,6 +77,7 @@ on: } func TestScheduleCodemod_MonthlyOn(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- @@ -101,6 +105,7 @@ on: } func TestScheduleCodemod_MonthlyOnAt(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- @@ -128,6 +133,7 @@ on: } func TestScheduleCodemod_DailyAround_NoChange(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- @@ -154,6 +160,7 @@ on: } func TestScheduleCodemod_StandardCron_NoChange(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- @@ -180,6 +187,7 @@ on: } func TestScheduleCodemod_PreservesIndentation(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- @@ -206,6 +214,7 @@ on: } func TestScheduleCodemod_MultipleSchedules(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- @@ -235,6 +244,7 @@ on: } func TestScheduleCodemod_ScheduleField(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- @@ -261,6 +271,7 @@ on: } func TestScheduleCodemod_PreservesMarkdown(t *testing.T) { + t.Parallel() codemod := getScheduleAtToAroundCodemod() content := `--- diff --git a/pkg/cli/codemod_schema_file_test.go b/pkg/cli/codemod_schema_file_test.go index 5213415a583..c779b5e12ea 100644 --- a/pkg/cli/codemod_schema_file_test.go +++ b/pkg/cli/codemod_schema_file_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetDeleteSchemaFileCodemod(t *testing.T) { + t.Parallel() codemod := getDeleteSchemaFileCodemod() // Verify codemod metadata @@ -21,6 +22,7 @@ func TestGetDeleteSchemaFileCodemod(t *testing.T) { } func TestDeleteSchemaFileCodemod_NoChanges(t *testing.T) { + t.Parallel() codemod := getDeleteSchemaFileCodemod() content := `--- @@ -48,6 +50,7 @@ This workflow doesn't need any changes.` } func TestDeleteSchemaFileCodemod_AlwaysReturnsUnchanged(t *testing.T) { + t.Parallel() // This codemod doesn't modify workflow files - the fix command handles the file deletion // Test various content to ensure it never makes changes diff --git a/pkg/cli/codemod_serena_import_test.go b/pkg/cli/codemod_serena_import_test.go index 43e0b359985..01d250fac83 100644 --- a/pkg/cli/codemod_serena_import_test.go +++ b/pkg/cli/codemod_serena_import_test.go @@ -12,6 +12,7 @@ import ( ) func TestSerenaToSharedImportCodemod(t *testing.T) { + t.Parallel() codemod := getSerenaToSharedImportCodemod() t.Run("migrates tools.serena short syntax to imports", func(t *testing.T) { diff --git a/pkg/cli/codemod_serena_mcp_location_test.go b/pkg/cli/codemod_serena_mcp_location_test.go index e8418666e21..87957e28bfb 100644 --- a/pkg/cli/codemod_serena_mcp_location_test.go +++ b/pkg/cli/codemod_serena_mcp_location_test.go @@ -10,6 +10,7 @@ import ( ) func TestSerenaMCPContainerLocationCodemod(t *testing.T) { + t.Parallel() codemod := getSerenaMCPContainerLocationCodemod() t.Run("updates legacy Serena MCP server container and entrypoint", func(t *testing.T) { diff --git a/pkg/cli/codemod_slash_command_test.go b/pkg/cli/codemod_slash_command_test.go index 31546b0bd15..5a6fc5c8247 100644 --- a/pkg/cli/codemod_slash_command_test.go +++ b/pkg/cli/codemod_slash_command_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetCommandToSlashCommandCodemod(t *testing.T) { + t.Parallel() codemod := getCommandToSlashCommandCodemod() assert.Equal(t, "command-to-slash-command-migration", codemod.ID) @@ -20,6 +21,7 @@ func TestGetCommandToSlashCommandCodemod(t *testing.T) { } func TestSlashCommandCodemod_BasicMigration(t *testing.T) { + t.Parallel() codemod := getCommandToSlashCommandCodemod() content := `--- @@ -49,6 +51,7 @@ permissions: } func TestSlashCommandCodemod_PreservesIndentation(t *testing.T) { + t.Parallel() codemod := getCommandToSlashCommandCodemod() content := `--- @@ -74,6 +77,7 @@ on: } func TestSlashCommandCodemod_PreservesComment(t *testing.T) { + t.Parallel() codemod := getCommandToSlashCommandCodemod() content := `--- @@ -102,6 +106,7 @@ permissions: } func TestSlashCommandCodemod_NoCommandField(t *testing.T) { + t.Parallel() codemod := getCommandToSlashCommandCodemod() content := `--- @@ -130,6 +135,7 @@ permissions: } func TestSlashCommandCodemod_NoOnField(t *testing.T) { + t.Parallel() codemod := getCommandToSlashCommandCodemod() content := `--- @@ -153,6 +159,7 @@ permissions: } func TestSlashCommandCodemod_PreservesMarkdown(t *testing.T) { + t.Parallel() codemod := getCommandToSlashCommandCodemod() content := `--- @@ -186,6 +193,7 @@ key: value } func TestSlashCommandCodemod_MultipleOnTriggers(t *testing.T) { + t.Parallel() codemod := getCommandToSlashCommandCodemod() content := `--- diff --git a/pkg/cli/codemod_steps_run_secrets_env_test.go b/pkg/cli/codemod_steps_run_secrets_env_test.go index 21450278626..9db4172d54b 100644 --- a/pkg/cli/codemod_steps_run_secrets_env_test.go +++ b/pkg/cli/codemod_steps_run_secrets_env_test.go @@ -12,6 +12,7 @@ import ( ) func TestStepsRunSecretsToEnvCodemod(t *testing.T) { + t.Parallel() codemod := getStepsRunSecretsToEnvCodemod() t.Run("moves inline run secret to env binding", func(t *testing.T) { diff --git a/pkg/cli/codemod_timeout_minutes_test.go b/pkg/cli/codemod_timeout_minutes_test.go index 359b97d8061..baee3a629ad 100644 --- a/pkg/cli/codemod_timeout_minutes_test.go +++ b/pkg/cli/codemod_timeout_minutes_test.go @@ -12,6 +12,7 @@ import ( ) func TestGetTimeoutMinutesCodemod(t *testing.T) { + t.Parallel() codemod := getTimeoutMinutesCodemod() // Verify codemod metadata @@ -23,6 +24,7 @@ func TestGetTimeoutMinutesCodemod(t *testing.T) { } func TestTimeoutMinutesCodemod_BasicMigration(t *testing.T) { + t.Parallel() codemod := getTimeoutMinutesCodemod() content := `--- @@ -51,6 +53,7 @@ permissions: } func TestTimeoutMinutesCodemod_PreservesIndentation(t *testing.T) { + t.Parallel() codemod := getTimeoutMinutesCodemod() content := `--- @@ -73,6 +76,7 @@ timeout_minutes: 45 } func TestTimeoutMinutesCodemod_PreservesComments(t *testing.T) { + t.Parallel() codemod := getTimeoutMinutesCodemod() content := `--- @@ -101,6 +105,7 @@ permissions: } func TestTimeoutMinutesCodemod_NoFieldPresent(t *testing.T) { + t.Parallel() codemod := getTimeoutMinutesCodemod() content := `--- @@ -128,6 +133,7 @@ permissions: } func TestTimeoutMinutesCodemod_PreservesMarkdownBody(t *testing.T) { + t.Parallel() codemod := getTimeoutMinutesCodemod() content := `--- @@ -162,6 +168,7 @@ key: value } func TestTimeoutMinutesCodemod_DifferentValues(t *testing.T) { + t.Parallel() tests := []struct { name string value int @@ -199,6 +206,7 @@ timeout_minutes: %d } func TestTimeoutMinutesCodemod_OnlyReplacesExactMatch(t *testing.T) { + t.Parallel() codemod := getTimeoutMinutesCodemod() content := `--- @@ -238,6 +246,7 @@ custom_timeout_minutes: 60 } func TestTimeoutMinutesCodemod_MultipleOccurrences(t *testing.T) { + t.Parallel() codemod := getTimeoutMinutesCodemod() content := `--- diff --git a/pkg/cli/codemod_toolset_singular_test.go b/pkg/cli/codemod_toolset_singular_test.go index 5308079c232..eeeeeeede91 100644 --- a/pkg/cli/codemod_toolset_singular_test.go +++ b/pkg/cli/codemod_toolset_singular_test.go @@ -10,6 +10,7 @@ import ( ) func TestToolsetSingularToToolsetsCodemod(t *testing.T) { + t.Parallel() codemod := getToolsetSingularToToolsetsCodemod() t.Run("metadata is populated", func(t *testing.T) { diff --git a/pkg/cli/codemod_top_level_env_secrets_test.go b/pkg/cli/codemod_top_level_env_secrets_test.go index 0799b232725..865b2d2460c 100644 --- a/pkg/cli/codemod_top_level_env_secrets_test.go +++ b/pkg/cli/codemod_top_level_env_secrets_test.go @@ -11,6 +11,7 @@ import ( ) func TestTopLevelEnvSecretsGuidedErrorCodemod(t *testing.T) { + t.Parallel() codemod := getTopLevelEnvSecretsGuidedErrorCodemod() t.Run("returns guided error when top-level env contains a secret", func(t *testing.T) { diff --git a/pkg/cli/codemod_upload_assets_test.go b/pkg/cli/codemod_upload_assets_test.go index 1757ae25042..2f88dcbe1b2 100644 --- a/pkg/cli/codemod_upload_assets_test.go +++ b/pkg/cli/codemod_upload_assets_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetUploadAssetsCodemod(t *testing.T) { + t.Parallel() codemod := getUploadAssetsCodemod() assert.Equal(t, "upload-assets-to-upload-asset-migration", codemod.ID) @@ -20,6 +21,7 @@ func TestGetUploadAssetsCodemod(t *testing.T) { } func TestUploadAssetsCodemod_BasicMigration(t *testing.T) { + t.Parallel() codemod := getUploadAssetsCodemod() content := `--- @@ -49,6 +51,7 @@ safe-outputs: } func TestUploadAssetsCodemod_PreservesIndentation(t *testing.T) { + t.Parallel() codemod := getUploadAssetsCodemod() content := `--- @@ -77,6 +80,7 @@ safe-outputs: } func TestUploadAssetsCodemod_PreservesComment(t *testing.T) { + t.Parallel() codemod := getUploadAssetsCodemod() content := `--- @@ -105,6 +109,7 @@ safe-outputs: } func TestUploadAssetsCodemod_NoSafeOutputsField(t *testing.T) { + t.Parallel() codemod := getUploadAssetsCodemod() content := `--- @@ -130,6 +135,7 @@ permissions: } func TestUploadAssetsCodemod_NoUploadAssetsField(t *testing.T) { + t.Parallel() codemod := getUploadAssetsCodemod() content := `--- @@ -158,6 +164,7 @@ safe-outputs: } func TestUploadAssetsCodemod_PreservesOtherFields(t *testing.T) { + t.Parallel() codemod := getUploadAssetsCodemod() content := `--- @@ -193,6 +200,7 @@ safe-outputs: } func TestUploadAssetsCodemod_PreservesMarkdown(t *testing.T) { + t.Parallel() codemod := getUploadAssetsCodemod() content := `--- diff --git a/pkg/cli/codemod_user_rate_limit_test.go b/pkg/cli/codemod_user_rate_limit_test.go index 9dac532b8d5..a500945a913 100644 --- a/pkg/cli/codemod_user_rate_limit_test.go +++ b/pkg/cli/codemod_user_rate_limit_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetRateLimitToUserRateLimitCodemod(t *testing.T) { + t.Parallel() codemod := getRateLimitToUserRateLimitCodemod() assert.Equal(t, "rate-limit-to-user-rate-limit", codemod.ID) @@ -20,6 +21,7 @@ func TestGetRateLimitToUserRateLimitCodemod(t *testing.T) { } func TestRateLimitToUserRateLimitCodemod_RenamesRateLimitAndMaxRuns(t *testing.T) { + t.Parallel() codemod := getRateLimitToUserRateLimitCodemod() content := `--- @@ -49,6 +51,7 @@ rate-limit: } func TestRateLimitToUserRateLimitCodemod_RenamesLegacyMaxKey(t *testing.T) { + t.Parallel() codemod := getRateLimitToUserRateLimitCodemod() content := `--- @@ -75,6 +78,7 @@ rate-limit: } func TestRateLimitToUserRateLimitCodemod_NoRateLimitField(t *testing.T) { + t.Parallel() codemod := getRateLimitToUserRateLimitCodemod() content := `--- @@ -96,6 +100,7 @@ engine: copilot } func TestRateLimitToUserRateLimitCodemod_SkipsWhenBothKeysPresent(t *testing.T) { + t.Parallel() codemod := getRateLimitToUserRateLimitCodemod() content := `--- @@ -121,6 +126,7 @@ user-rate-limit: } func TestRateLimitToUserRateLimitCodemod_DoesNotRenameOtherMaxRuns(t *testing.T) { + t.Parallel() codemod := getRateLimitToUserRateLimitCodemod() content := `--- @@ -150,6 +156,7 @@ concurrency: } func TestRateLimitToUserRateLimitCodemod_DoesNotRenameNestedMaxRuns(t *testing.T) { + t.Parallel() codemod := getRateLimitToUserRateLimitCodemod() content := `--- diff --git a/pkg/cli/codemod_workflow_dispatch_required_test.go b/pkg/cli/codemod_workflow_dispatch_required_test.go index f2f4e8e86cf..c3cab84877d 100644 --- a/pkg/cli/codemod_workflow_dispatch_required_test.go +++ b/pkg/cli/codemod_workflow_dispatch_required_test.go @@ -10,6 +10,7 @@ import ( ) func TestWorkflowDispatchRequiredFalseCodemod(t *testing.T) { + t.Parallel() codemod := getWorkflowDispatchRequiredFalseCodemod() t.Run("rewrites required: true to required: false for slash_command trigger", func(t *testing.T) { diff --git a/pkg/cli/codespace_test.go b/pkg/cli/codespace_test.go index fbe2044d9eb..30a25e9a00a 100644 --- a/pkg/cli/codespace_test.go +++ b/pkg/cli/codespace_test.go @@ -64,6 +64,7 @@ func TestIsRunningInCodespace(t *testing.T) { } func TestIs403PermissionError(t *testing.T) { + t.Parallel() tests := []struct { name string errorMsg string @@ -132,6 +133,7 @@ func TestIs403PermissionError(t *testing.T) { } func TestGetCodespacePermissionErrorMessage(t *testing.T) { + t.Parallel() msg := getCodespacePermissionErrorMessage() // Test that the message contains key information diff --git a/pkg/cli/commands_utils_test.go b/pkg/cli/commands_utils_test.go index b31cd751e2f..73417952670 100644 --- a/pkg/cli/commands_utils_test.go +++ b/pkg/cli/commands_utils_test.go @@ -13,6 +13,7 @@ import ( ) func TestExtractWorkflowNameFromFile(t *testing.T) { + t.Parallel() // Create temporary directory for test files tmpDir := testutil.TempDir(t, "test-*") @@ -142,6 +143,7 @@ Content here.`, } func TestExtractWorkflowNameFromFile_NonExistentFile(t *testing.T) { + t.Parallel() _, err := extractWorkflowNameFromFile("/nonexistent/file.md") if err == nil { t.Error("Expected error for nonexistent file, got nil") @@ -149,6 +151,7 @@ func TestExtractWorkflowNameFromFile_NonExistentFile(t *testing.T) { } func TestExtractWorkflowNameFromFile_LargeFrontmatterLine(t *testing.T) { + t.Parallel() tmpDir := testutil.TempDir(t, "test-*") filePath := filepath.Join(tmpDir, "large-frontmatter.md") content := "---\nblob: " + strings.Repeat("x", bufio.MaxScanTokenSize+1) + "\n---\n\n# Large Frontmatter Workflow\n" @@ -168,6 +171,7 @@ func TestExtractWorkflowNameFromFile_LargeFrontmatterLine(t *testing.T) { } func TestIsGitRepo(t *testing.T) { + t.Parallel() // Test in current directory (should be a git repo based on project setup) result := isGitRepo() @@ -180,6 +184,7 @@ func TestIsGitRepo(t *testing.T) { // TestFindGitRoot is already tested in gitroot_test.go, skipping duplicate func TestExtractWorkflowNameFromPath(t *testing.T) { + t.Parallel() tests := []struct { name string path string @@ -228,6 +233,7 @@ func TestExtractWorkflowNameFromPath(t *testing.T) { } func TestFindIncludesInContent(t *testing.T) { + t.Parallel() tests := []struct { name string content string @@ -342,6 +348,7 @@ More content. } func TestFindIncludesInContent_EmptyContentReturnsNonNilSlice(t *testing.T) { + t.Parallel() result, err := findIncludesInContent("") if err != nil { t.Fatalf("Unexpected error: %v", err) @@ -392,6 +399,7 @@ Final content.` } func TestIsRunnable(t *testing.T) { + t.Parallel() tests := []struct { name string mdContent string @@ -694,6 +702,7 @@ jobs: } func TestIsRunnable_FileErrors(t *testing.T) { + t.Parallel() tests := []struct { name string filePath string