refactor: check persisted json payload shape instead of double casts (#152) (#154)
Backend verify / commits (push) Skipped
Backend verify / security (push) Successful in 59s
Backend verify / verify (push) Failing after 6m3s

This commit was merged in pull request #154.
This commit is contained in:
2026-11-02 07:31:24 +03:00
parent a18d9dbdc8
commit a80bbbf1e2
6 changed files with 70 additions and 21 deletions
@@ -218,6 +218,18 @@ describe('persistent portfolio projection', () => {
expect(snapshot.structure.currencies[0].totalValue).toBe('121.49');
});
// Test intent: a corrupted Json payload must fail loudly instead of being spread into the API response.
it('rejects a stored snapshot payload without the persisted shape', async () => {
repository.read.mockResolvedValue({
membershipAt,
membershipRevision: 1,
accounts: [{ accountId: 'a', name: 'A', type: 'BROKERAGE', openedOn: null,
portfolio: { payload: { positions: 'broken' }, fetchedAt: membershipAt, dataRevision: 1 } }],
work: [],
});
await expect(service.read('user', 'all')).rejects.toThrow('Corrupted portfolio snapshot payload');
});
it('does not turn a missing account snapshot into aggregate zero; summaries stay independent', async () => {
const snapshot: PortfolioDto = {
lastSuccessfulAt: membershipAt.toISOString(),