Cleanup after initial plan

This commit is contained in:
Aerilyn Weber 2026-05-19 10:13:40 +09:00
parent d2a7e652b3
commit 245520fb50
53 changed files with 6733 additions and 621 deletions

View file

@ -211,6 +211,18 @@ describe(MealPlanService.name, () => {
});
expect(result.status).toBe(MealPlanStatus.ACTIVE);
});
it('supports updating shoppingListId', async () => {
mockRepo.update.mockImplementation((id, hh, data) => Promise.resolve({ ...existingPlan, ...data }));
const result = await service.update('p1', 'hh1', { shoppingListId: 'sl-1' });
expect(mockRepo.update).toHaveBeenCalledWith('p1', 'hh1', { shoppingListId: 'sl-1' });
expect((result as any).shoppingListId).toBe('sl-1');
});
it('throws NotFoundError if update returns null', async () => {
mockRepo.update.mockResolvedValue(null);
await expect(service.update('p1', 'hh1', { status: MealPlanStatus.ACTIVE })).rejects.toThrow(NotFoundError);
});
});
describe('updateStatus', () => {
@ -222,6 +234,12 @@ describe(MealPlanService.name, () => {
expect(mockRepo.updateStatus).toHaveBeenCalledWith('p1', 'hh1', MealPlanStatus.ARCHIVED);
expect(result.status).toBe(MealPlanStatus.ARCHIVED);
});
it('throws NotFoundError if updateStatus returns null', async () => {
mockRepo.findById.mockResolvedValue({ _id: 'p1' });
mockRepo.updateStatus.mockResolvedValue(null);
await expect(service.updateStatus('p1', 'hh1', MealPlanStatus.ARCHIVED)).rejects.toThrow(NotFoundError);
});
});
describe('delete', () => {
@ -233,5 +251,11 @@ describe(MealPlanService.name, () => {
expect(mockRepo.delete).toHaveBeenCalledWith('p1', 'hh1');
expect(result).toEqual({ _id: 'p1' });
});
it('throws NotFoundError if delete returns null', async () => {
mockRepo.findById.mockResolvedValue({ _id: 'p1' });
mockRepo.delete.mockResolvedValue(null);
await expect(service.delete('p1', 'hh1')).rejects.toThrow(NotFoundError);
});
});
});