github.com/andresbott/yamlfmt@v0.1.0/internal/filematch/filematch_test.go (about)

     1  package filematch
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/google/go-cmp/cmp"
     8  )
     9  
    10  func TestParseGlob(t *testing.T) {
    11  
    12  	tcs := []struct {
    13  		name   string
    14  		in     string
    15  		expect []string
    16  	}{
    17  		{
    18  			name: "assert alias ./",
    19  			in:   "./",
    20  			expect: []string{
    21  				"main.yaml",
    22  				"other.yml",
    23  			},
    24  		},
    25  		{
    26  			name: "assert default to  ./",
    27  			in:   "",
    28  			expect: []string{
    29  				"main.yaml",
    30  				"other.yml",
    31  			},
    32  		},
    33  		{
    34  			name: "assert alias ./..",
    35  			in:   "./..",
    36  			expect: []string{
    37  				"main.yaml",
    38  				"fruits/banana/banana.yaml",
    39  				"other.yml",
    40  				"sub1/sub2/sub.yml",
    41  			},
    42  		},
    43  		{
    44  			name: "assert single file",
    45  			in:   "fruits/banana/banana.yaml",
    46  			expect: []string{
    47  				"fruits/banana/banana.yaml",
    48  			},
    49  		},
    50  		{
    51  			name: "assert directory",
    52  			in:   "fruits/banana/",
    53  			expect: []string{
    54  				"fruits/banana/banana.yaml",
    55  			},
    56  		},
    57  	}
    58  
    59  	for _, tc := range tcs {
    60  		t.Run(tc.name, func(t *testing.T) {
    61  
    62  			os.Chdir("./sampledata")
    63  			got, err := FindFiles(tc.in)
    64  			if err != nil {
    65  				t.Fatalf("unexpected error %v", err)
    66  			}
    67  			os.Chdir("..")
    68  			if diff := cmp.Diff(got, tc.expect); diff != "" {
    69  				t.Errorf("unexpected value (-got +want)\n%s", diff)
    70  			}
    71  		})
    72  	}
    73  }