This repository has been archived on 2022-05-06. You can view files and clone it, but cannot push or open issues/pull-requests.
chromajson/schema/schema_test.go

44 lines
852 B
Go

package schema
import (
"embed"
"fmt"
"testing"
"github.com/matryer/is"
)
//go:embed testdata
var testdata embed.FS
func TestLint(t *testing.T) {
tt := []struct {
Name string
NumErr int
}{
{Name: "catppuccin"},
{Name: "minimal"},
{Name: "bad", NumErr: 8},
}
for _, tc := range tt {
t.Run(tc.Name, func(t *testing.T) {
assert := is.New(t)
fi, err := testdata.Open(fmt.Sprintf("testdata/%s.json", tc.Name))
assert.NoErr(err) // Should open file
defer fi.Close()
ok, err := Lint(fi)
if tc.NumErr > 0 {
assert.True(!ok) // Linter should fail
errs, ok := err.(ResultErrors)
assert.True(ok) // err should be of type ResultErrors
assert.Equal(tc.NumErr, len(errs)) // Number of errors should be consistent
} else {
assert.NoErr(err) // Linter should pass
}
})
}
}