diff --git a/templates/weeklymenu.html b/templates/weeklymenu.html
index 988fd68..557a95b 100644
--- a/templates/weeklymenu.html
+++ b/templates/weeklymenu.html
@@ -333,26 +333,28 @@ function loadWeeklyMenus(weeklyMenus) {
weeklyMenus.forEach(weeklyMenu => {
const row = document.createElement('tr');
- row.innerHTML = `
-
\${weeklyMenu.name} |
-
- \${weeklyMenu.weekly_menu_days && weeklyMenu.weekly_menu_days.length > 0 ?
- weeklyMenu.weekly_menu_days.map(wmd =>
- \`\${dayNames[wmd.day_of_week]}: \${wmd.template_name}\`
- ).join('') : 'No templates assigned'}
- |
-
-
-
-
- |
- `;
+ let templateBadges = '';
+ if (weeklyMenu.weekly_menu_days && weeklyMenu.weekly_menu_days.length > 0) {
+ templateBadges = weeklyMenu.weekly_menu_days.map(wmd =>
+ '' + dayNames[wmd.day_of_week] + ': ' + wmd.template_name + ''
+ ).join('');
+ } else {
+ templateBadges = 'No templates assigned';
+ }
+ row.innerHTML =
+ '' + weeklyMenu.name + ' | ' +
+ '' + templateBadges + ' | ' +
+ '' +
+ '' +
+ '' +
+ '' +
+ ' | ';
tbody.appendChild(row);
});
}
diff --git a/tests/test_weekly_menu.py b/tests/test_weekly_menu.py
index 7516f46..84c384a 100644
--- a/tests/test_weekly_menu.py
+++ b/tests/test_weekly_menu.py
@@ -24,15 +24,6 @@ class TestWeeklyMenuRoutes:
assert response.status_code == 200
assert response.json() == {"status": "success", "message": "Weekly menu created successfully"}
- def test_create_weekly_menu_route(self, client, sample_template):
- """Test POST /weeklymenu/create route"""
- form_data = {
- "name": "My New Weekly Menu",
- "template_assignments": f"0:{sample_template.id},1:{sample_template.id}"
- }
- response = client.post("/weeklymenu/create", data=form_data)
- assert response.status_code == 200
- assert response.json() == {"status": "success", "message": "Weekly menu created successfully"}
def test_apply_weekly_menu_route(self, client, db_session, sample_weekly_menu):
"""Test POST /weeklymenu/{weekly_menu_id}/apply route"""
@@ -89,7 +80,7 @@ class TestWeeklyMenuCRUD:
menu_day = WeeklyMenuDay(
weekly_menu_id=weekly_menu.id,
- day_of_week=0, # Monday
+ day_of_week=0, # Monday
template_id=sample_template.id
)
db_session.add(menu_day)
@@ -98,3 +89,67 @@ class TestWeeklyMenuCRUD:
# Verify relationships
assert menu_day.weekly_menu.id == weekly_menu.id
assert menu_day.template.id == sample_template.id
+
+
+class TestWeeklyMenuAPI:
+ """Test weekly menu API endpoints"""
+
+ def test_get_weekly_menu_detail(self, client, sample_weekly_menu):
+ """Test GET /weeklymenu/{id} endpoint"""
+ response = client.get(f"/weeklymenu/{sample_weekly_menu.id}")
+ assert response.status_code == 200
+
+ data = response.json()
+ assert "id" in data
+ assert "name" in data
+ assert "weekly_menu_days" in data
+ assert data["id"] == sample_weekly_menu.id
+ assert data["name"] == sample_weekly_menu.name
+
+ def test_get_weekly_menus_api(self, client, sample_weekly_menu):
+ """Test GET /api/weeklymenus endpoint"""
+ response = client.get("/api/weeklymenus")
+ assert response.status_code == 200
+
+ data = response.json()
+ assert isinstance(data, list)
+ assert len(data) >= 1 # Should include our sample weekly menu
+
+ # Find our sample menu in the response
+ sample_menu_found = False
+ for menu in data:
+ if menu["id"] == sample_weekly_menu.id:
+ sample_menu_found = True
+ assert menu["name"] == sample_weekly_menu.name
+ break
+ assert sample_menu_found, "Sample weekly menu should be in API response"
+
+ def test_update_weekly_menu(self, client, sample_weekly_menu, sample_template):
+ """Test PUT /weeklymenu/{id} endpoint"""
+ form_data = {
+ "name": "Updated Weekly Menu Name",
+ "template_assignments": f"0:{sample_template.id},1:{sample_template.id},2:{sample_template.id}"
+ }
+ response = client.put(f"/weeklymenu/{sample_weekly_menu.id}", data=form_data)
+ assert response.status_code == 200
+
+ data = response.json()
+ assert data["status"] == "success"
+
+ # Verify the update worked by getting the menu again
+ get_response = client.get(f"/weeklymenu/{sample_weekly_menu.id}")
+ assert get_response.status_code == 200
+ updated_data = get_response.json()
+ assert updated_data["name"] == "Updated Weekly Menu Name"
+
+ def test_delete_weekly_menu(self, client, sample_weekly_menu):
+ """Test DELETE /weeklymenu/{id} endpoint"""
+ response = client.delete(f"/weeklymenu/{sample_weekly_menu.id}")
+ assert response.status_code == 200
+
+ data = response.json()
+ assert data["status"] == "success"
+
+ # Verify the deletion worked by trying to get the menu again
+ get_response = client.get(f"/weeklymenu/{sample_weekly_menu.id}")
+ assert get_response.status_code == 404