github.com/exercism/v2-configlet@v3.9.2+incompatible/cmd/fmt_test.go (about) 1 package cmd 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestFmtCommand(t *testing.T) { 13 trackCfg, err := ioutil.ReadFile(filepath.FromSlash("../fixtures/format/formatted/config.json")) 14 if err != nil { 15 t.Fatal(err) 16 } 17 18 maintainerCfg, err := ioutil.ReadFile(filepath.FromSlash("../fixtures/format/formatted/config/maintainers.json")) 19 if err != nil { 20 t.Fatal(err) 21 } 22 23 // The fmt command does not rewrite a correctly formatted file. 24 formattedDir, err := ioutil.TempDir("", "formatted") 25 if err != nil { 26 t.Fatal(err) 27 } 28 defer os.Remove(formattedDir) 29 runFmt("../fixtures/format/formatted/", formattedDir, false) 30 31 _, err = os.Stat(filepath.Join(formattedDir, "config.json")) 32 assert.True(t, os.IsNotExist(err)) 33 34 _, err = os.Stat(filepath.Join(formattedDir, "config", "maintainers.json")) 35 assert.True(t, os.IsNotExist(err)) 36 37 // It rewrites an incorrectly formatted file. 38 malformedDir, err := ioutil.TempDir("", "malformed") 39 if err != nil { 40 t.Fatal(err) 41 } 42 defer os.Remove(malformedDir) 43 runFmt("../fixtures/format/malformed/", malformedDir, false) 44 45 track, err := ioutil.ReadFile(filepath.Join(malformedDir, "config.json")) 46 if err != nil { 47 t.Fatal(err) 48 } 49 assert.Equal(t, track, trackCfg) 50 51 maintainer, err := ioutil.ReadFile(filepath.Join(malformedDir, "config", "maintainers.json")) 52 if err != nil { 53 t.Fatal(err) 54 } 55 assert.Equal(t, maintainer, maintainerCfg) 56 } 57 58 func TestSemanticsOfMissingTopics(t *testing.T) { 59 semanticsDir, err := ioutil.TempDir("", "semantics") 60 if err != nil { 61 t.Fatal(err) 62 } 63 defer os.Remove(semanticsDir) 64 runFmt("../fixtures/format/semantics/", semanticsDir, false) 65 66 // No change; nothing should be written to out dir. 67 _, err = os.Stat(filepath.Join(semanticsDir, "config.json")) 68 assert.True(t, os.IsNotExist(err)) 69 }