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  }