Files
donniemarko/internal/storage/storage_test.go

71 lines
1.4 KiB
Go

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))
}
}