diff --git a/schema_test.go b/schema_test.go new file mode 100644 index 0000000..82b69a8 --- /dev/null +++ b/schema_test.go @@ -0,0 +1,41 @@ +package squadron_test + +import ( + "encoding/json" + "errors" + "os" + "path" + "testing" + + testingx "github.com/foomo/go/testing" + tagx "github.com/foomo/go/testing/tag" + "github.com/foomo/squadron/internal/config" + "github.com/invopop/jsonschema" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestSchema(t *testing.T) { + t.Parallel() + testingx.Tags(t, tagx.Short) + + cwd, err := os.Getwd() + require.NoError(t, err) + + reflector := new(jsonschema.Reflector) + require.NoError(t, reflector.AddGoComments("github.com/foomo/squadron", "./")) + schema := reflector.Reflect(&config.Config{}) + schema.ID = "https://raw.githubusercontent.com/foomo/squadron/refs/heads/main/squadron.schema.json" + actual, err := json.MarshalIndent(schema, "", " ") + require.NoError(t, err) + + filename := path.Join(cwd, "squadron.schema.json") + expected, err := os.ReadFile(filename) + if !errors.Is(err, os.ErrNotExist) { + require.NoError(t, err) + } + + if !assert.Equal(t, string(expected), string(actual)) { + require.NoError(t, os.WriteFile(filename, actual, 0600)) + } +} diff --git a/squadron.schema.json b/squadron.schema.json index 132bd2a..3e27892 100644 --- a/squadron.schema.json +++ b/squadron.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/foomo/squadron/internal/config/config", + "$id": "https://raw.githubusercontent.com/foomo/squadron/refs/heads/main/squadron.schema.json", "$ref": "#/$defs/Config", "$defs": { "BakeTarget": { diff --git a/squadron_test.go b/squadron_test.go index 598631e..399a25e 100644 --- a/squadron_test.go +++ b/squadron_test.go @@ -1,48 +1,18 @@ package squadron_test import ( - "encoding/json" - "errors" - "os" "path" "testing" testingx "github.com/foomo/go/testing" tagx "github.com/foomo/go/testing/tag" "github.com/foomo/squadron" - "github.com/foomo/squadron/internal/config" "github.com/foomo/squadron/internal/testutils" "github.com/foomo/squadron/internal/util" - "github.com/invopop/jsonschema" "github.com/pterm/pterm" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) -func TestConfig(t *testing.T) { - t.Parallel() - testingx.Tags(t, tagx.Short) - - cwd, err := os.Getwd() - require.NoError(t, err) - - reflector := new(jsonschema.Reflector) - require.NoError(t, reflector.AddGoComments("github.com/foomo/squadron", "./")) - schema := reflector.Reflect(&config.Config{}) - actual, err := json.MarshalIndent(schema, "", " ") - require.NoError(t, err) - - filename := path.Join(cwd, "squadron.schema.json") - expected, err := os.ReadFile(filename) - if !errors.Is(err, os.ErrNotExist) { - require.NoError(t, err) - } - - if !assert.Equal(t, string(expected), string(actual)) { - require.NoError(t, os.WriteFile(filename, actual, 0600)) - } -} - func TestConfigSimpleSnapshot(t *testing.T) { testingx.Tags(t, tagx.Short)