tme

Toggl like Time Manager
git clone git://gtms.dev/tme
Log | Files | Refs

tme_test.go (4069B)


      1 package main
      2 
      3 import (
      4 	"os"
      5 )
      6 
      7 // func TestAdd(t *testing.T) {
      8 // 	rootPath := setUp()
      9 // 	t.Cleanup(func() { tearDown(rootPath) })
     10 // 	entryTime := NewTimeToday()
     11 // 	group := createAndCheckGroup(t, rootPath, "project")
     12 
     13 // 	start, _ := entryTime.ParseArg("10:00")
     14 // 	stop, _ := entryTime.ParseArgRight("11:00")
     15 // 	tme, err := NewCompleted(start, stop)
     16 // 	if err != nil {
     17 // 		t.Error(err)
     18 // 	}
     19 
     20 // 	group.Add(tme)
     21 // 	if data, err := os.ReadFile(tme.FullPath(group)); err != nil {
     22 // 		fmt.Printf("%v", err)
     23 // 	} else {
     24 // 		checkEntryFile(start, stop, data, entryTime, t)
     25 // 	}
     26 
     27 // }
     28 
     29 // func TestStart(t *testing.T) {
     30 // 	basePath := setUp()
     31 // 	t.Cleanup(func() { tearDown(basePath) })
     32 // 	entryDir := "project"
     33 // 	fullEntryDir := strings.Join([]string{basePath, entryDir}, "/")
     34 // 	entryTime := NewTimeToday()
     35 
     36 // 	group := createAndCheckGroup(t, basePath, "project")
     37 
     38 // 	start, _ := entryTime.ParseArg("10:00")
     39 // 	entry := NewRunningEntry(start)
     40 
     41 // 	group.Add(entry)
     42 // 	if _, err := os.Stat(fullEntryDir); os.IsNotExist(err) {
     43 // 		t.Fatalf(`want "%v" to exist`, entryDir)
     44 // 	}
     45 
     46 // 	if data, err := os.ReadFile(entry.FullPath(group)); err != nil {
     47 // 		fmt.Printf("%v", err)
     48 // 	} else {
     49 // 		checkStartEntryFile(start, data, entryTime, t)
     50 // 	}
     51 // }
     52 
     53 // func TestStop(t *testing.T) {
     54 // 	basePath := setUp()
     55 // 	t.Cleanup(func() { tearDown(basePath) })
     56 // 	entryTime := NewTimeToday()
     57 
     58 // 	group := NewGroup(basePath, "project")
     59 // 	group.Create()
     60 
     61 // 	start, _ := entryTime.ParseArg("10:00")
     62 // 	startEntry := NewRunningEntry(start)
     63 // 	group.Add(startEntry)
     64 
     65 // 	stop, _ := entryTime.ParseArg("11:00")
     66 // 	entry, err := NewCompletedEntry(startEntry.Start, stop)
     67 // 	if err != nil {
     68 // 		t.Error(err)
     69 // 	}
     70 
     71 // 	group.Add(entry)
     72 // 	if data, err := os.ReadFile(entry.FullPath(group)); err != nil {
     73 // 		t.Errorf("%v", err)
     74 // 	} else {
     75 // 		checkEntryFile(start, stop, data, entryTime, t)
     76 // 	}
     77 // }
     78 
     79 // // func ExampleList() {
     80 // // 	basePath := setUp()
     81 // // 	entryTime := NewTime()
     82 
     83 // // 	group := NewGroup(basePath, "tme")
     84 // // 	group.Create()
     85 
     86 // // 	start, _ := entryTime.ParseArg("10:00")
     87 // // 	stop, _ := entryTime.ParseArg("11:00")
     88 // // 	entry, _ := NewCompletedEntry(start, stop)
     89 // // 	group.Add(entry)
     90 
     91 // // 	lines, err := group.FormatList(entryTime)
     92 // // 	if err != nil {
     93 // // 		fmt.Print(err)
     94 // // 	}
     95 
     96 // // 	for _, line := range lines {
     97 // // 		fmt.Println(line)
     98 // // 	}
     99 
    100 // // 	// Output:
    101 // // 	// tme 10:00 11:00
    102 
    103 // // 	tearDown(basePath)
    104 // // }
    105 
    106 // func checkEntryFile(start time.Time, stop time.Time, data []byte, entryTime *TimeContext, t *testing.T) {
    107 // 	lines := strings.Split(string(data), "\n")
    108 // 	expectLines := 3
    109 // 	if len(lines) != expectLines {
    110 // 		t.Fatalf("want %d lines, got %d lines", expectLines, len(lines))
    111 // 	}
    112 
    113 // 	startLine := lines[0]
    114 // 	lineStart, _ := entryTime.ParseEntry(startLine)
    115 // 	if start != lineStart {
    116 // 		t.Fatalf("time mismatch! %v != %v", start, lineStart)
    117 // 	}
    118 
    119 // 	stopLine := lines[1]
    120 // 	lineStop, _ := entryTime.ParseEntry(stopLine)
    121 // 	if stop != lineStop {
    122 // 		t.Fatalf("time mismatch! %v != %v", stop, lineStop)
    123 // 	}
    124 // }
    125 
    126 // func checkStartEntryFile(start time.Time, data []byte, entryTime *TimeContext, t *testing.T) {
    127 // 	lines := strings.Split(string(data), "\n")
    128 // 	expectLines := 2
    129 // 	if len(lines) != expectLines {
    130 // 		t.Fatalf("want %d lines, got %d lines", expectLines, len(lines))
    131 // 	}
    132 
    133 // 	startLine := lines[0]
    134 // 	lineStart, _ := entryTime.ParseEntry(startLine)
    135 // 	if start != lineStart {
    136 // 		t.Fatalf("time mismatch! %v != %v", start, lineStart)
    137 // 	}
    138 // }
    139 
    140 // func createAndCheckGroup(t *testing.T, basePath, groupName string) Group {
    141 // 	group := NewGroup(basePath, groupName)
    142 // 	group.Create()
    143 // 	if _, err := os.Stat(group.FullPath()); os.IsNotExist(err) {
    144 // 		t.Fatalf(`want %q to exist`, group.Path)
    145 // 	}
    146 // 	return group
    147 // }
    148 
    149 func setUp() string {
    150 	tempDir, err := os.MkdirTemp("", "tme_*")
    151 	if err != nil {
    152 		panic(err)
    153 	}
    154 
    155 	os.Setenv("TME_DIR", tempDir)
    156 	return tempDir
    157 }
    158 
    159 func tearDown(tempDir string) {
    160 	os.RemoveAll(tempDir)
    161 }