package handlers import ( "context" "html/template" "net/http" "net/http/httptest" "testing" "time" "custom-start-page/internal/middleware" "custom-start-page/internal/models" ) // mockPageService is a mock implementation of PageService for testing type mockPageService struct { pages []*models.Page err error } func (m *mockPageService) GetPages(ctx context.Context, userID string) ([]*models.Page, error) { if m.err != nil { return nil, m.err } return m.pages, nil } func (m *mockPageService) CreatePage(ctx context.Context, userID, name string) (*models.Page, error) { if m.err != nil { return nil, m.err } page := &models.Page{ ID: "new-page-id", UserID: userID, Name: name, Order: len(m.pages), CreatedAt: time.Now(), UpdatedAt: time.Now(), } m.pages = append(m.pages, page) return page, nil } func (m *mockPageService) CreateDefaultPage(ctx context.Context, userID string) (*models.Page, error) { return m.CreatePage(ctx, userID, "Home") } func (m *mockPageService) UpdatePage(ctx context.Context, userID, pageID, name string) (*models.Page, error) { if m.err != nil { return nil, m.err } for _, page := range m.pages { if page.ID == pageID && page.UserID == userID { page.Name = name page.UpdatedAt = time.Now() return page, nil } } return nil, nil } func (m *mockPageService) DeletePage(ctx context.Context, userID, pageID string) error { return m.err } func (m *mockPageService) ReorderPages(ctx context.Context, userID string, pageOrder []string) error { return m.err } // createMockDashboardTemplate creates a simple mock template for testing func createMockDashboardTemplate() *template.Template { tmpl := template.New("dashboard.html") template.Must(tmpl.Parse(`