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  }