summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/handlers/tabs.go6
-rw-r--r--internal/handlers/template_test.go40
2 files changed, 44 insertions, 2 deletions
diff --git a/internal/handlers/tabs.go b/internal/handlers/tabs.go
index 448dfbe..b8e7bcb 100644
--- a/internal/handlers/tabs.go
+++ b/internal/handlers/tabs.go
@@ -152,9 +152,11 @@ func (h *TabsHandler) HandleNotes(w http.ResponseWriter, r *http.Request) {
}
data := struct {
- Notes []models.Note
+ Notes []models.Note
+ Errors []string
}{
- Notes: notes,
+ Notes: notes,
+ Errors: nil,
}
// Check HX-Target header for partial update
diff --git a/internal/handlers/template_test.go b/internal/handlers/template_test.go
new file mode 100644
index 0000000..b0b2378
--- /dev/null
+++ b/internal/handlers/template_test.go
@@ -0,0 +1,40 @@
+package handlers_test
+
+import (
+ "html/template"
+ "io"
+ "testing"
+ "task-dashboard/internal/models"
+)
+
+func TestNotesTemplateRendering(t *testing.T) {
+ // Parse templates (adjust paths relative to where test runs, usually package root)
+ // Since we run 'go test ./...', paths might need to be absolute or relative to project root if we use a helper.
+ // But standard 'go test' in a subdir uses that subdir as CWD.
+ // We will assume the test runs from 'internal/handlers'.
+ // So paths are "../../web/templates/..."
+
+ tmpl, err := template.ParseGlob("../../web/templates/*.html")
+ if err != nil {
+ t.Fatalf("Failed to parse templates: %v", err)
+ }
+ tmpl, err = tmpl.ParseGlob("../../web/templates/partials/*.html")
+ if err != nil {
+ t.Fatalf("Failed to parse partials: %v", err)
+ }
+
+ // Define the data structure we EXPECT to use (with Errors)
+ data := struct {
+ Notes []models.Note
+ Errors []string
+ }{
+ Notes: []models.Note{},
+ Errors: []string{"Test Error"},
+ }
+
+ // Execute
+ err = tmpl.ExecuteTemplate(io.Discard, "notes-tab", data)
+ if err != nil {
+ t.Errorf("Failed to render notes-tab with corrected data: %v", err)
+ }
+}