codeberg.org/slaxor/imagediff/cmd/imagediff@v0.0.0-20231206162245-7cdf37896847/main_test.go (about) 1 package main 2 3 import ( 4 "log" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestMain(m *testing.M) { 13 // call flag.Parse() here if TestMain uses flags 14 os.Exit(m.Run()) 15 } 16 17 func ls() []string { 18 entries, err := os.ReadDir("./") 19 if err != nil { 20 log.Fatal(err) 21 } 22 names := make([]string, len(entries)) 23 for _, entry := range entries { 24 names = append(names, entry.Name()) 25 } 26 return names 27 } 28 29 func TestImagediff(t *testing.T) { 30 abs, err := filepath.Abs("../../testdata") 31 assert.NoError(t, err) 32 testCases := []struct { 33 name string 34 file1 string 35 file2 string 36 expFile string 37 equalExp bool 38 }{ 39 { 40 name: "equal", 41 file1: abs + "/01_equal/a.png", 42 file2: abs + "/01_equal/b.png", 43 expFile: "a_png_b_png_diff.png", 44 equalExp: true, 45 }, 46 { 47 name: "different", 48 file1: abs + "/02_different/a.png", 49 file2: abs + "/02_different/b.png", 50 expFile: "a_png_b_png_diff.png", 51 equalExp: false, 52 }, 53 } 54 55 for _, tc := range testCases { 56 t.Run(tc.name, func(t *testing.T) { 57 os.Args = []string{"cmd", tc.file1, tc.file2} 58 tempDir := t.TempDir() 59 os.Chdir(tempDir) 60 main() 61 if tc.equalExp { 62 assert.NotContains(t, ls(), tc.expFile) 63 return 64 } 65 assert.Contains(t, ls(), tc.expFile) 66 }) 67 } 68 }