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) {
|
func TestCheckSafetySkipsRPCCheckForPluginWithoutRPCs(t *testing.T) {
|
||||||
pluginRoot := t.TempDir()
|
pluginRoot := t.TempDir()
|
||||||
sdkVersion, err := currentCMSCoreSDKVersion()
|
sdkVersion := scaffoldPluginSDKVersion(t)
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("currentCMSCoreSDKVersion: %v", err)
|
|
||||||
}
|
|
||||||
writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644)
|
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, "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)
|
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) {
|
func TestCheckSafetyTypechecksExternalPluginFrontendWithWorkspaceDeps(t *testing.T) {
|
||||||
pluginRoot := t.TempDir()
|
pluginRoot := t.TempDir()
|
||||||
pluginWebDir := filepath.Join(pluginRoot, "web")
|
pluginWebDir := filepath.Join(pluginRoot, "web")
|
||||||
sdkVersion, err := currentCMSCoreSDKVersion()
|
sdkVersion := scaffoldPluginSDKVersion(t)
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("currentCMSCoreSDKVersion: %v", err)
|
|
||||||
}
|
|
||||||
realRepoRoot := blockNinjaRepoRoot()
|
realRepoRoot := blockNinjaRepoRoot()
|
||||||
relESLintConfig, err := filepath.Rel(pluginWebDir, filepath.Join(realRepoRoot, "web", "eslint.config.js"))
|
relESLintConfig, err := filepath.Rel(pluginWebDir, filepath.Join(realRepoRoot, "web", "eslint.config.js"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -117,10 +111,7 @@ func Example() string {
|
|||||||
|
|
||||||
func TestCheckSafetyFailsStandalonePluginReplaceDirective(t *testing.T) {
|
func TestCheckSafetyFailsStandalonePluginReplaceDirective(t *testing.T) {
|
||||||
pluginRoot := t.TempDir()
|
pluginRoot := t.TempDir()
|
||||||
sdkVersion, err := currentCMSCoreSDKVersion()
|
sdkVersion := scaffoldPluginSDKVersion(t)
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("currentCMSCoreSDKVersion: %v", err)
|
|
||||||
}
|
|
||||||
writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644)
|
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, "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)
|
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) {
|
func TestCheckSafetyFailsStandalonePluginSQLCUUIDStringOverrides(t *testing.T) {
|
||||||
pluginRoot := t.TempDir()
|
pluginRoot := t.TempDir()
|
||||||
sdkVersion, err := currentCMSCoreSDKVersion()
|
sdkVersion := scaffoldPluginSDKVersion(t)
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("currentCMSCoreSDKVersion: %v", err)
|
|
||||||
}
|
|
||||||
writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644)
|
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, "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)
|
writeTestFile(t, filepath.Join(pluginRoot, "main.go"), "package example\n", 0644)
|
||||||
@ -193,10 +181,7 @@ sql:
|
|||||||
|
|
||||||
func TestCheckSafetyWarnsOnStandalonePluginGoAnyUsage(t *testing.T) {
|
func TestCheckSafetyWarnsOnStandalonePluginGoAnyUsage(t *testing.T) {
|
||||||
pluginRoot := t.TempDir()
|
pluginRoot := t.TempDir()
|
||||||
sdkVersion, err := currentCMSCoreSDKVersion()
|
sdkVersion := scaffoldPluginSDKVersion(t)
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("currentCMSCoreSDKVersion: %v", err)
|
|
||||||
}
|
|
||||||
writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644)
|
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, "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
|
writeTestFile(t, filepath.Join(pluginRoot, "main.go"), `package example
|
||||||
@ -231,10 +216,7 @@ type Payload struct {
|
|||||||
|
|
||||||
func TestCheckSafetyFailsStandalonePluginSQLCCompile(t *testing.T) {
|
func TestCheckSafetyFailsStandalonePluginSQLCCompile(t *testing.T) {
|
||||||
pluginRoot := t.TempDir()
|
pluginRoot := t.TempDir()
|
||||||
sdkVersion, err := currentCMSCoreSDKVersion()
|
sdkVersion := scaffoldPluginSDKVersion(t)
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("currentCMSCoreSDKVersion: %v", err)
|
|
||||||
}
|
|
||||||
writeTestFile(t, filepath.Join(pluginRoot, "plugin.mod"), "[plugin]\nname = \"example\"\nversion = \"1.0.0\"\n", 0644)
|
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, "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)
|
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
|
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) {
|
func writeTestFile(t *testing.T, path string, content string, mode os.FileMode) {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil {
|
if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user