71 lines
1.4 KiB
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))
|
|
}
|
|
}
|