go-recipe-book/pkg/db/recipe_test.go
2024-11-09 19:50:05 -08:00

45 lines
1.0 KiB
Go

package db_test
import (
"testing"
"github.com/go-test/deep"
"github.com/stretchr/testify/assert"
. "recipe_book/pkg/db"
)
func TestRecipeSaveAndLoad(t *testing.T) {
assert := assert.New(t)
db := get_test_db()
recipe := Recipe{
Name: "some Recipe",
Blurb: "Lorem Ispum dolor sit amet consquiter id blah blabh albha blahbla blahblahblh",
Instructions: RecipeInstructions{
"instr 1", "isntr 2", "instr3", "ins32gjkifw",
},
}
assert.Equal(recipe.ID, RecipeID(0))
db.SaveRecipe(&recipe)
assert.NotEqual(recipe.ID, RecipeID(0))
new_recipe, err := db.GetRecipeByID(recipe.ID)
assert.NoError(err)
if diff := deep.Equal(recipe, new_recipe); diff != nil {
t.Error(diff)
}
// Modify it
recipe.Name = "some recipe 2"
recipe.Blurb = "another blurb"
recipe.Instructions = RecipeInstructions{"i1", "i2", "i3"}
// Save it and reload
db.SaveRecipe(&recipe)
new_recipe, err = db.GetRecipeByID(recipe.ID)
assert.NoError(err)
if diff := deep.Equal(recipe, new_recipe); diff != nil {
t.Error(diff)
}
}