tme

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

repository_test.go (1175B)


      1 package main
      2 
      3 import (
      4 	"testing"
      5 )
      6 
      7 func TestSave(t *testing.T) {
      8 	rootPath := setUp()
      9 	t.Cleanup(func() { tearDown(rootPath) })
     10 	timeContext := NewTimeToday()
     11 	repository := NewFSRepository(rootPath)
     12 
     13 	t.Run("save single entry", func(t *testing.T) {
     14 		group := NewGroup("test")
     15 		entry := createEntry(timeContext, "10:00", "11:00")
     16 
     17 		err := repository.Save(group, entry)
     18 		if err != nil {
     19 			t.Error(err)
     20 		}
     21 
     22 		if !repository.ExistsEntry(group, entry) {
     23 			t.Error(err)
     24 		}
     25 	})
     26 
     27 	t.Run("save single entry", func(t *testing.T) {
     28 		group := NewGroup("test")
     29 
     30 		for _, entry := range []Entry{
     31 			createEntry(timeContext, "10:00", "11:00"),
     32 			createEntry(timeContext, "11:00", "12:00"),
     33 			createEntry(timeContext, "13:00", "14:00"),
     34 		} {
     35 			err := repository.Save(group, entry)
     36 			if err != nil {
     37 				t.Error(err)
     38 			}
     39 		}
     40 
     41 		list, _ := repository.ListEntries(group, timeContext)
     42 
     43 		if len(list) != 3 {
     44 			t.Error("Expected 3 entries")
     45 		}
     46 	})
     47 }
     48 
     49 func createEntry(timeContext *TimeContext, s string, st string) Entry {
     50 	start, _ := timeContext.ParseArgDir(s, false)
     51 	stop, _ := timeContext.ParseArgDir(st, true)
     52 	entry, _ := NewCompletedEntry(start, stop)
     53 	return entry
     54 }