github.com/BenLubar/git-last-modified@v0.1.1-0.20210215221858-9b8031919630/modtime_test.go (about) 1 package main 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 ) 8 9 func TestGetModTime(t *testing.T) { 10 mod, err := getModTime("README.md") 11 if err != nil { 12 t.Fatal(err) 13 } 14 15 if mod.IsZero() { 16 t.Error("README.md was not found in Git.") 17 } 18 19 fi, err := os.Stat("README.md") 20 if err != nil { 21 t.Fatal(err) 22 } 23 24 if mod.After(fi.ModTime()) { 25 t.Error("README.md was last committed before it was last modified.") 26 } 27 } 28 29 func TestGetModTime_commit(t *testing.T) { 30 *flagCommit = true 31 defer func() { 32 *flagCommit = false 33 }() 34 35 TestGetModTime(t) 36 } 37 38 func TestGetModTime_uncommitted(t *testing.T) { 39 // The .git folder is never committed. 40 mod, err := getModTime(".git") 41 if err != nil { 42 t.Fatal(err) 43 } 44 45 if !mod.IsZero() { 46 t.Error(".git was found in Git.") 47 } 48 } 49 50 func TestGetModTime_notgit(t *testing.T) { 51 dir, err := ioutil.TempDir("", "") 52 if err != nil { 53 t.Fatal(err) 54 } 55 defer func() { 56 if err = os.RemoveAll(dir); err != nil { 57 t.Error(err) 58 } 59 }() 60 61 wd, err := os.Getwd() 62 if err != nil { 63 t.Fatal(err) 64 } 65 defer func() { 66 if err := os.Chdir(wd); err != nil { 67 t.Error(err) 68 } 69 }() 70 71 if err := os.Chdir(dir); err != nil { 72 t.Error(err) 73 } 74 75 testStderr(t, func() { 76 _, err := getModTime("somefile.txt") 77 if err == nil { 78 t.Error("Expected error, but no error was returned.") 79 } 80 }, "fatal: not a git repository (or any of the parent directories): .git\n") 81 }