github.com/snyk/vervet/v4@v4.27.2/internal/scaffold/manifest_test.go (about) 1 package scaffold 2 3 import ( 4 "io/ioutil" 5 "path/filepath" 6 "testing" 7 8 qt "github.com/frankban/quicktest" 9 ) 10 11 var manifestTests = []struct { 12 desc string 13 version string 14 organize map[string]string 15 err string 16 }{{ 17 desc: "invalid version", 18 version: "nope", 19 organize: map[string]string{"foo": "foo"}, 20 err: `unsupported manifest version "nope"`, 21 }, { 22 desc: "empty manifest - nil map", 23 organize: map[string]string{}, 24 err: `empty manifest`, 25 }, { 26 desc: "empty manifest - empty map", 27 organize: map[string]string{}, 28 err: `empty manifest`, 29 }, { 30 desc: "missing file", 31 organize: map[string]string{"foo": "foo", "bar": "bar"}, 32 err: `.*cannot stat source item ".*/bar":.*`, 33 }, { 34 desc: "ok, default version", 35 organize: map[string]string{"foo": "foo"}, 36 }, { 37 desc: "ok, version 1", 38 version: "1", 39 organize: map[string]string{"foo": "foo"}, 40 }} 41 42 func TestManifestValidate(t *testing.T) { 43 c := qt.New(t) 44 fakeSrc := c.TempDir() 45 c.Assert(ioutil.WriteFile(filepath.Join(fakeSrc, "foo"), []byte("foo"), 0666), qt.IsNil) 46 for _, t := range manifestTests { 47 m := &Manifest{ 48 Version: t.version, 49 Organize: t.organize, 50 } 51 if t.err == "" { 52 c.Assert(m.validate(fakeSrc), qt.IsNil) 53 } else { 54 err := m.validate(fakeSrc) 55 c.Assert(err, qt.ErrorMatches, t.err) 56 } 57 } 58 }