diff --git a/lint_test.go b/lint_test.go index 3745bae..2056804 100644 --- a/lint_test.go +++ b/lint_test.go @@ -11,10 +11,7 @@ import ( func TestCheckSafetySkipsRPCCheckForPluginWithoutRPCs(t *testing.T) { pluginRoot := t.TempDir() - sdkVersion, err := currentCMSCoreSDKVersion() - if err != nil { - t.Fatalf("currentCMSCoreSDKVersion: %v", err) - } + sdkVersion := scaffoldPluginSDKVersion(t) writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "go.mod"), "module example.com/plugin\n\ngo 1.26.2\n\nrequire git.dev.alexdunmow.com/block/pluginsdk "+sdkVersion+"\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "main.go"), "package example\n", 0644) @@ -43,10 +40,7 @@ func TestCheckSafetySkipsRPCCheckForPluginWithoutRPCs(t *testing.T) { func TestCheckSafetyTypechecksExternalPluginFrontendWithWorkspaceDeps(t *testing.T) { pluginRoot := t.TempDir() pluginWebDir := filepath.Join(pluginRoot, "web") - sdkVersion, err := currentCMSCoreSDKVersion() - if err != nil { - t.Fatalf("currentCMSCoreSDKVersion: %v", err) - } + sdkVersion := scaffoldPluginSDKVersion(t) realRepoRoot := blockNinjaRepoRoot() relESLintConfig, err := filepath.Rel(pluginWebDir, filepath.Join(realRepoRoot, "web", "eslint.config.js")) if err != nil { @@ -117,10 +111,7 @@ func Example() string { func TestCheckSafetyFailsStandalonePluginReplaceDirective(t *testing.T) { pluginRoot := t.TempDir() - sdkVersion, err := currentCMSCoreSDKVersion() - if err != nil { - t.Fatalf("currentCMSCoreSDKVersion: %v", err) - } + sdkVersion := scaffoldPluginSDKVersion(t) writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "go.mod"), "module example.com/plugin\n\ngo 1.26.2\n\nrequire git.dev.alexdunmow.com/block/pluginsdk "+sdkVersion+"\n\nreplace git.dev.alexdunmow.com/block/pluginsdk => ../block-pluginsdk\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "main.go"), "package example\n", 0644) @@ -145,10 +136,7 @@ func TestCheckSafetyFailsStandalonePluginReplaceDirective(t *testing.T) { func TestCheckSafetyFailsStandalonePluginSQLCUUIDStringOverrides(t *testing.T) { pluginRoot := t.TempDir() - sdkVersion, err := currentCMSCoreSDKVersion() - if err != nil { - t.Fatalf("currentCMSCoreSDKVersion: %v", err) - } + sdkVersion := scaffoldPluginSDKVersion(t) writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "go.mod"), "module example.com/plugin\n\ngo 1.26.2\n\nrequire git.dev.alexdunmow.com/block/pluginsdk "+sdkVersion+"\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "main.go"), "package example\n", 0644) @@ -193,10 +181,7 @@ sql: func TestCheckSafetyWarnsOnStandalonePluginGoAnyUsage(t *testing.T) { pluginRoot := t.TempDir() - sdkVersion, err := currentCMSCoreSDKVersion() - if err != nil { - t.Fatalf("currentCMSCoreSDKVersion: %v", err) - } + sdkVersion := scaffoldPluginSDKVersion(t) writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "go.mod"), "module example.com/plugin\n\ngo 1.26.2\n\nrequire git.dev.alexdunmow.com/block/pluginsdk "+sdkVersion+"\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "main.go"), `package example @@ -231,10 +216,7 @@ type Payload struct { func TestCheckSafetyFailsStandalonePluginSQLCCompile(t *testing.T) { pluginRoot := t.TempDir() - sdkVersion, err := currentCMSCoreSDKVersion() - if err != nil { - t.Fatalf("currentCMSCoreSDKVersion: %v", err) - } + sdkVersion := scaffoldPluginSDKVersion(t) writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "go.mod"), "module example.com/plugin\n\ngo 1.26.2\n\nrequire git.dev.alexdunmow.com/block/pluginsdk "+sdkVersion+"\n", 0644) writeTestFile(t, filepath.Join(pluginRoot, "main.go"), "package example\n", 0644) @@ -695,6 +677,21 @@ func writeExecutableFile(t *testing.T, path string, content string) string { return path } +// scaffoldPluginSDKVersion resolves the pluginsdk pin the same way check 2c's +// version anchor does (currentCMSPluginSDKVersion), so scaffolded go.mod fixtures +// track the CMS backend's pin instead of drifting against a hardcoded number. +func scaffoldPluginSDKVersion(t *testing.T) string { + t.Helper() + v, err := currentCMSPluginSDKVersion() + if err != nil { + t.Fatalf("currentCMSPluginSDKVersion: %v", err) + } + if v == "" { + return "v0.0.0" + } + return v +} + func writeTestFile(t *testing.T, path string, content string, mode os.FileMode) { t.Helper() if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil {