test: derive pluginsdk anchor version dynamically in plugin scaffolds
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
4f3636d66d
commit
338c41c3c8
45
lint_test.go
45
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 {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user