diff --git a/src/lib/sw/cache-strategy.ts b/src/lib/sw/cache-strategy.ts index d755a72..f797eef 100644 --- a/src/lib/sw/cache-strategy.ts +++ b/src/lib/sw/cache-strategy.ts @@ -17,7 +17,8 @@ export function resolveStrategy(req: RequestShape): CacheStrategy { path === '/api/recipes/import' || path === '/api/recipes/preview' || path === '/api/recipes/extract-from-photo' || - path.startsWith('/api/recipes/search/web') + path.startsWith('/api/recipes/search/web') || + path.startsWith('/api/shopping-list') ) { return 'network-only'; } diff --git a/tests/unit/cache-strategy.test.ts b/tests/unit/cache-strategy.test.ts index 2c4202a..76aded3 100644 --- a/tests/unit/cache-strategy.test.ts +++ b/tests/unit/cache-strategy.test.ts @@ -30,6 +30,12 @@ describe('resolveStrategy', () => { expect(resolveStrategy({ url: '/api/recipes/search/web?q=x', method: 'GET' })).toBe('network-only'); }); + it('network-only for /api/shopping-list/*', () => { + expect(resolveStrategy({ url: '/api/shopping-list', method: 'GET' })).toBe('network-only'); + expect(resolveStrategy({ url: '/api/shopping-list/recipe/5', method: 'GET' })).toBe('network-only'); + expect(resolveStrategy({ url: '/api/shopping-list/check', method: 'GET' })).toBe('network-only'); + }); + it('shell bucket for build/static assets', () => { expect(resolveStrategy({ url: '/_app/immutable/chunks/x.js', method: 'GET' })).toBe('shell'); expect(resolveStrategy({ url: '/icon-192.png', method: 'GET' })).toBe('shell');