summaryrefslogtreecommitdiff
path: root/status_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'status_test.go')
-rw-r--r--status_test.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/status_test.go b/status_test.go
new file mode 100644
index 0000000..4be4824
--- /dev/null
+++ b/status_test.go
@@ -0,0 +1,58 @@
+package git
+
+import (
+ "io/ioutil"
+ "os"
+ "path"
+ "testing"
+)
+
+func TestStatusFile(t *testing.T) {
+ repo := createTestRepo(t)
+ defer repo.Free()
+ defer os.RemoveAll(repo.Workdir())
+
+ err := ioutil.WriteFile(path.Join(path.Dir(repo.Workdir()), "hello.txt"), []byte("Hello, World"), 0644)
+ checkFatal(t, err)
+
+ status, err := repo.StatusFile("hello.txt")
+ checkFatal(t, err)
+
+ if status != StatusWtNew {
+ t.Fatal("Incorrect status flags: ", status)
+ }
+}
+
+func TestStatusList(t *testing.T) {
+ repo := createTestRepo(t)
+ // This commits the test repo README, so it doesn't show up in the status list and there's a head to compare to
+ seedTestRepo(t, repo)
+ defer repo.Free()
+ defer os.RemoveAll(repo.Workdir())
+
+ err := ioutil.WriteFile(path.Join(path.Dir(repo.Workdir()), "hello.txt"), []byte("Hello, World"), 0644)
+ checkFatal(t, err)
+
+ opts := &StatusOptions{}
+ opts.Show = StatusShowIndexAndWorkdir
+ opts.Flags = StatusOptIncludeUntracked | StatusOptRenamesHeadToIndex | StatusOptSortCaseSensitively
+
+ statusList, err := repo.StatusList(opts)
+ checkFatal(t, err)
+
+ entryCount, err := statusList.EntryCount()
+ checkFatal(t, err)
+
+ if entryCount != 1 {
+ t.Fatal("Incorrect number of status entries: ", entryCount)
+ }
+
+ entry, err := statusList.ByIndex(0)
+ checkFatal(t, err)
+ if entry.Status != StatusWtNew {
+ t.Fatal("Incorrect status flags: ", entry.Status)
+ }
+ if entry.IndexToWorkdir.NewFile.Path != "hello.txt" {
+ t.Fatal("Incorrect entry path: ", entry.IndexToWorkdir.NewFile.Path)
+ }
+}