diff --git a/apps/web/lib/product-store-persistence-source.test.ts b/apps/web/lib/product-store-persistence-source.test.ts new file mode 100644 index 0000000..4223b4c --- /dev/null +++ b/apps/web/lib/product-store-persistence-source.test.ts @@ -0,0 +1,13 @@ +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; +import { join } from 'node:path'; +import test from 'node:test'; + +test('product store save helper does not swallow AppData save failures', () => { + const source = readFileSync(join(process.cwd(), 'stores/useProductStore.ts'), 'utf8'); + + assert.match( + source, + /async function saveStoredOverview\(data: ProductOverview\[\]\) \{\s+await saveServerData\('products-overview', data\);\s+\}/, + ); +}); diff --git a/apps/web/stores/useProductStore.ts b/apps/web/stores/useProductStore.ts index fc2f086..3a2c075 100644 --- a/apps/web/stores/useProductStore.ts +++ b/apps/web/stores/useProductStore.ts @@ -110,7 +110,7 @@ export const useProductStore = create((set, get) => ({ const overview = await api.get('/products/overview'); set({ overview, loading: false, overviewLoaded: true }); if (shouldPersistRemoteOverview(overview)) { - saveStoredOverview(overview); + void saveStoredOverview(overview).catch(() => {}); } } catch { set({ overview: MOCK_OVERVIEW, error: null, loading: false, overviewLoaded: true }); @@ -328,7 +328,7 @@ export const useProductStore = create((set, get) => ({ })); async function saveStoredOverview(data: ProductOverview[]) { - await saveServerData('products-overview', data).catch(() => {}); + await saveServerData('products-overview', data); } async function loadStoredOverview(): Promise {