diff --git a/cmd/publisher/commands/testutil_test.go b/cmd/publisher/commands/testutil_test.go index 416b192ce..c103f8299 100644 --- a/cmd/publisher/commands/testutil_test.go +++ b/cmd/publisher/commands/testutil_test.go @@ -95,9 +95,7 @@ func SetupTestToken(t *testing.T, registryURL, token string) string { func CreateTestServerJSON(t *testing.T, serverJSON apiv0.ServerJSON) (string, string) { t.Helper() - tempDir, err := os.MkdirTemp("", "mcp-publisher-test") - require.NoError(t, err) - t.Cleanup(func() { os.RemoveAll(tempDir) }) + tempDir := t.TempDir() jsonData, err := json.MarshalIndent(serverJSON, "", " ") require.NoError(t, err) diff --git a/cmd/publisher/commands/validate_test.go b/cmd/publisher/commands/validate_test.go index b56b22db2..1827ffe63 100644 --- a/cmd/publisher/commands/validate_test.go +++ b/cmd/publisher/commands/validate_test.go @@ -140,16 +140,13 @@ func TestValidateCommand_NoServerFile(t *testing.T) { server := SetupMockRegistryServer(t, nil, nil) SetupTestToken(t, server.URL, "test-token") - // Don't create server.json - tempDir, err := os.MkdirTemp("", "mcp-publisher-test") - require.NoError(t, err) - defer os.RemoveAll(tempDir) + tempDir := t.TempDir() originalDir, err := os.Getwd() require.NoError(t, err) defer func() { _ = os.Chdir(originalDir) }() - _ = os.Chdir(tempDir) + require.NoError(t, os.Chdir(tempDir)) err = commands.ValidateCommand([]string{}) @@ -161,15 +158,13 @@ func TestValidateCommand_InvalidJSON(t *testing.T) { server := SetupMockRegistryServer(t, nil, nil) SetupTestToken(t, server.URL, "test-token") - tempDir, err := os.MkdirTemp("", "mcp-publisher-test") - require.NoError(t, err) - defer os.RemoveAll(tempDir) + tempDir := t.TempDir() originalDir, err := os.Getwd() require.NoError(t, err) defer func() { _ = os.Chdir(originalDir) }() - _ = os.Chdir(tempDir) + require.NoError(t, os.Chdir(tempDir)) // Create invalid JSON file err = os.WriteFile("server.json", []byte("{ invalid json }"), 0600) diff --git a/internal/importer/importer_test.go b/internal/importer/importer_test.go index db0cc2a62..ed5ed0559 100644 --- a/internal/importer/importer_test.go +++ b/internal/importer/importer_test.go @@ -20,8 +20,7 @@ import ( ) func TestImportService_LocalFile(t *testing.T) { - // Create a temporary seed file - tempFile := filepath.Join(os.TempDir(), "test_import_seed.json") + tempFile := filepath.Join(t.TempDir(), "test_import_seed.json") seedData := []*apiv0.ServerJSON{ { Schema: model.CurrentSchemaURL, @@ -41,7 +40,6 @@ func TestImportService_LocalFile(t *testing.T) { err = os.WriteFile(tempFile, jsonData, 0600) require.NoError(t, err) - defer os.Remove(tempFile) // Create registry service testDB := database.NewTestDB(t) @@ -187,6 +185,14 @@ func TestImportService_ErrorHandling(t *testing.T) { registryService := service.NewRegistryService(testDB, &config.Config{EnableRegistryValidation: false}) importerService := importer.NewService(registryService) + errorDir := t.TempDir() + missingFile := filepath.Join(errorDir, "non-existent-file.json") + invalidFile := filepath.Join(errorDir, "invalid.json") + + invalidJSON := []byte("{invalid json}") + err := os.WriteFile(invalidFile, invalidJSON, 0600) + require.NoError(t, err) + tests := []struct { name string path string @@ -195,13 +201,13 @@ func TestImportService_ErrorHandling(t *testing.T) { }{ { name: "non-existent local file", - path: "/tmp/non-existent-file.json", + path: missingFile, expectError: true, errorMsg: "failed to read seed data", }, { name: "invalid JSON file", - path: "/tmp/invalid.json", + path: invalidFile, expectError: true, errorMsg: "failed to read seed data", }, @@ -213,22 +219,6 @@ func TestImportService_ErrorHandling(t *testing.T) { }, } - // Create invalid JSON file for testing - invalidJSON := []byte("{invalid json}") - tempFile, err := os.CreateTemp("", "invalid-*.json") - require.NoError(t, err) - defer os.Remove(tempFile.Name()) - err = os.WriteFile(tempFile.Name(), invalidJSON, 0600) - require.NoError(t, err) - - // Update test case to use temp file - for i := range tests { - if tests[i].path == "/tmp/invalid.json" { - tests[i].path = tempFile.Name() - break - } - } - for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := importerService.ImportFromPath(context.Background(), tt.path)