cuelang.org/go@v0.10.1/internal/mod/modload/update_test.go (about) 1 package modload 2 3 import ( 4 "context" 5 "fmt" 6 "io/fs" 7 "path/filepath" 8 "strings" 9 "testing" 10 11 "github.com/go-quicktest/qt" 12 "github.com/google/go-cmp/cmp" 13 "golang.org/x/tools/txtar" 14 ) 15 16 func TestUpdateVersions(t *testing.T) { 17 files, err := filepath.Glob("testdata/updateversions/*.txtar") 18 qt.Assert(t, qt.IsNil(err)) 19 for _, f := range files { 20 t.Run(f, func(t *testing.T) { 21 ar, err := txtar.ParseFile(f) 22 qt.Assert(t, qt.IsNil(err)) 23 tfs, err := txtar.FS(ar) 24 qt.Assert(t, qt.IsNil(err)) 25 reg := newRegistry(t, tfs) 26 27 want, err := fs.ReadFile(tfs, "want") 28 qt.Assert(t, qt.IsNil(err)) 29 30 versionsData, _ := fs.ReadFile(tfs, "versions") 31 versions := strings.Fields(string(versionsData)) 32 33 var out strings.Builder 34 mf, err := UpdateVersions(context.Background(), tfs, ".", reg, versions) 35 if err != nil { 36 fmt.Fprintf(&out, "error: %v\n", err) 37 } else { 38 data, err := mf.Format() 39 qt.Assert(t, qt.IsNil(err)) 40 out.Write(data) 41 } 42 if diff := cmp.Diff(string(want), out.String()); diff != "" { 43 t.Log("actual result:\n", out.String()) 44 t.Fatalf("unexpected results (-want +got):\n%s", diff) 45 } 46 }) 47 } 48 }