github.com/posener/gitfs@v1.2.2-0.20200410105819-ea4e48d73ab9/cmd/gitfs/templates/test.go.gotmpl (about)

     1  // Code generated by gitfs; DO NOT EDIT
     2  package {{.Package}}
     3  
     4  import (
     5  	"testing"
     6  	"context"
     7  
     8  	"github.com/posener/gitfs"
     9  	"github.com/posener/gitfs/fsutil"
    10  )
    11  
    12  // Test{{ .TestName }} checks that packed binary matches the local conent.
    13  // To skip generating this test run gitfs with -skip-test-gen flag.
    14  func Test{{ .TestName }}(t *testing.T) {
    15  	ctx := context.Background()
    16  	projects := []struct{
    17  		project string
    18  		glob []string
    19  	}{
    20  		{{ range $_, $config := .Calls -}}
    21  		{
    22  			project: "{{ $config.Project }}",
    23  			{{ if .GlobPatterns -}}
    24  			glob: []string{
    25  				{{ range $glob, $_ := .GlobPatterns -}}
    26  				"{{ $glob }}",
    27  				{{ end -}}
    28  			},
    29  			{{ end }}
    30  		},
    31  		{{ end -}}
    32  	}
    33  	for _, tt := range projects {
    34  		t.Run(tt.project, func(t *testing.T) {
    35  			binary, err := gitfs.New(ctx, tt.project, gitfs.OptGlob(tt.glob...))
    36  			if err != nil {
    37  				t.Fatalf("Failed loading binary project %q: %s", tt.project, err)
    38  			}
    39  			local, err := gitfs.New(ctx, tt.project, gitfs.OptLocal("."), gitfs.OptGlob(tt.glob...))
    40  			if err != nil {
    41  				t.Fatalf("Failed loading local project %q: %s", tt.project, err)
    42  			}
    43  			diff, err := fsutil.Diff(local, binary)
    44  			if err != nil {
    45  				t.Fatalf("Failed performing filesystem diff: %s", err)
    46  			}
    47  			diff.A = "local"
    48  			diff.B = "binary"
    49  
    50  			if d := diff.String(); d != "" {
    51  				t.Errorf("Filesystem was modified after last binary generated. Please regenerae.\nDiff:\n%s",d)
    52  			}
    53  		})
    54  	}
    55  }