23 lines
981 B
Go
23 lines
981 B
Go
package siteyaml
|
|
|
|
import "testing"
|
|
|
|
func TestAddEntry(t *testing.T) {
|
|
in := "name: Test\n\n# Collections.\ncollections:\n articles:\n layout: article\n # paginate: 20\n\nmenus:\n main: []\n"
|
|
got, err := AddEntry(in, "collections", "events", map[string]any{"layout": "event", "calendar": true})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
want := "name: Test\n\n# Collections.\ncollections:\n articles:\n layout: article\n # paginate: 20\n events:\n calendar: true\n layout: event\n\nmenus:\n main: []\n"
|
|
if got != want {
|
|
t.Errorf("got:\n%s\nwant:\n%s", got, want)
|
|
}
|
|
got, err = AddEntry("name: Test\n", "collections", "events", map[string]any{"calendar": true})
|
|
if err != nil || got != "name: Test\ncollections:\n events:\n calendar: true\n" {
|
|
t.Errorf("new block: %q %v", got, err)
|
|
}
|
|
if _, err := AddEntry("collections: {a: {}}\n", "collections", "events", map[string]any{"calendar": true}); err == nil {
|
|
t.Error("changed a one-line mapping")
|
|
}
|
|
}
|