package messages import ( "os" "path/filepath" "strings" "testing" ) func TestRender_Defaults(t *testing.T) { t.Setenv("HOME", t.TempDir()) tpl, err := Load(filepath.Join(t.TempDir(), "missing.yaml")) if err != nil { t.Fatalf("load defaults: %v", err) } out, err := tpl.Render("welcome", map[string]string{ "username": "alice", "domain": "azzamo.net", "expires_at": "2027-01-01", "npub": "npub1xxx", "frontend_url": "https://azzamo.net/nip05", }) if err != nil { t.Fatalf("render: %v", err) } if !strings.Contains(out, "alice@azzamo.net") { t.Errorf("rendered: %q", out) } } func TestRender_EmptyDisables(t *testing.T) { dir := t.TempDir() path := filepath.Join(dir, "messages.yaml") if err := os.WriteFile(path, []byte("welcome: \"\"\nextended: hi {username}\n"), 0o644); err != nil { t.Fatal(err) } tpl, err := Load(path) if err != nil { t.Fatal(err) } out, err := tpl.Render("welcome", map[string]string{"username": "bob"}) if err != nil { t.Fatalf("render welcome: %v", err) } if out != "" { t.Errorf("empty template should render empty, got %q", out) } out2, _ := tpl.Render("extended", map[string]string{"username": "bob"}) if out2 != "hi bob" { t.Errorf("extended got %q", out2) } } func TestRender_UnknownEvent(t *testing.T) { tpl, err := Load(filepath.Join(t.TempDir(), "missing.yaml")) if err != nil { t.Fatal(err) } if _, err := tpl.Render("does_not_exist", nil); err == nil { t.Error("expected error for unknown event") } }