package storage import ( "donniemarko/internal/note" "testing" ) var ns *NoteStorage var n1, n2 *note.Note func TestMain(m *testing.M) { ns = NewNoteStorage() n1 = note.NewNote() n1.Path = "test/note1.md" n1.ID = note.GenerateNoteID(n1.Path) n1.Content = "# hola amigo" n2 = note.NewNote() n2.Path = "note2.md" n2.ID = note.GenerateNoteID(n2.Path) n2.Content = "# ah si ?" m.Run() } func TestNoteStorageCreate(t *testing.T) { ns.Create(n1) ns.Create(n2) if len(ns.Index) < 2 { t.Errorf("Creating notes should add them to the storage. Wanted 2, got '%v'", len(ns.Index)) } } func TestNoteStorageDelete(t *testing.T) { ns.Delete(n1.ID) if len(ns.Index) > 1 { t.Errorf("Deleting notes should remove them from to the storage. Wanted 1, got '%v'", len(ns.Index)) } } func TestNoteStorageGetUpdate(t *testing.T) { ns.Update(n2.ID, n1) nn2, err := ns.Get(n2.ID) if err != nil { t.Errorf("Error retrieving note with id '%s': '%v'", n2.ID, err) } if nn2.Content != n1.Content { t.Errorf("Updating a note should reflect it in storage. Wanted '%s', got '%s'\n", n1.Content, nn2.Content) } } func TestNoteStorageSearch_Tags(t *testing.T) { ns = NewNoteStorage() n := note.NewNote() n.Path = "note3.md" n.ID = note.GenerateNoteID(n.Path) n.Content = "no tag here" n.Tags = []string{"devops", "go"} ns.Create(n) results := ns.Search("go") if len(results) != 1 { t.Fatalf("expected 1 result, got %d", len(results)) } }