Skip to content

Commit 059000a

Browse files
committed
CCM-11228: Add test for letter list warning on invalid data
1 parent 04bbd4c commit 059000a

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

internal/datastore/src/__test__/letter-repository.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { LetterRepository } from '../letter-repository';
33
import { Letter } from '../types';
44
import { Logger } from 'pino';
55
import { createTestLogger, LogStream } from './logs';
6+
import { PutCommand } from '@aws-sdk/lib-dynamodb';
67

78
function createLetter(supplierId: string, letterId: string, status: Letter['status'] = 'PENDING'): Letter {
89
return {
@@ -143,4 +144,29 @@ describe('LetterRepository', () => {
143144
expect(secondPage.letters[0].id).toBe('letter051');
144145
expect(secondPage.letters[48].id).toBe('letter099');
145146
});
147+
148+
test('letter list should warn about invalid data', async () => {
149+
await letterRepository.putLetter(createLetter('supplier1', 'letter1'));
150+
await db.docClient.send(new PutCommand({
151+
TableName: db.config.lettersTableName,
152+
Item: {
153+
supplierId: 'supplier1',
154+
id: 'invalid-letter',
155+
// specificationId: 'specification1', // Missing required field
156+
groupId: 'group1',
157+
url: 's3://bucket/invalid-letter.pdf',
158+
status: 'PENDING',
159+
supplierStatus: 'supplier1#PENDING',
160+
createdAt: new Date().toISOString(),
161+
updatedAt: new Date().toISOString()
162+
}
163+
}));
164+
165+
const pendingLetters = await letterRepository.getLettersByStatus('supplier1', 'PENDING');
166+
expect(pendingLetters.letters).toHaveLength(1);
167+
expect(pendingLetters.letters[0].id).toBe('letter1');
168+
169+
expect(logStream.logs).toContainEqual(expect.stringMatching(/.*Invalid letter data:.*/));
170+
expect(logStream.logs).toContainEqual(expect.stringMatching(/.*specificationId.*Invalid input: expected string.*/));
171+
});
146172
});

0 commit comments

Comments
 (0)