@@ -5,7 +5,7 @@ import { Logger } from 'pino';
55import { createTestLogger , LogStream } from './logs' ;
66import { PutCommand } from '@aws-sdk/lib-dynamodb' ;
77
8- function createLetter ( supplierId : string , letterId : string , status : Letter [ 'status' ] = 'PENDING' ) : Omit < Letter , 'ttl' | 'supplierStatus' > {
8+ function createLetter ( supplierId : string , letterId : string , status : Letter [ 'status' ] = 'PENDING' ) : Omit < Letter , 'ttl' | 'supplierStatus' | 'supplierStatusSk' > {
99 return {
1010 id : letterId ,
1111 supplierId : supplierId ,
@@ -79,7 +79,7 @@ describe('LetterRepository', () => {
7979 } ) ) ;
8080 } ) ;
8181
82- test ( 'throws an error when fetching a letter that does not exist ' , async ( ) => {
82+ test ( 'throws an error when fetching a letter that does not e ist ' , async ( ) => {
8383 await expect ( letterRepository . getLetterById ( 'supplier1' , 'letter1' ) )
8484 . rejects . toThrow ( 'Letter with id letter1 not found for supplier supplier1' ) ;
8585 } ) ;
@@ -205,6 +205,7 @@ describe('LetterRepository', () => {
205205 url : 's3://bucket/invalid-letter.pdf' ,
206206 status : 'PENDING' ,
207207 supplierStatus : 'supplier1#PENDING' ,
208+ supplierStatusSk : 'supplier1' ,
208209 createdAt : new Date ( ) . toISOString ( ) ,
209210 updatedAt : new Date ( ) . toISOString ( )
210211 }
@@ -218,30 +219,45 @@ describe('LetterRepository', () => {
218219 expect ( logStream . logs ) . toContainEqual ( expect . stringMatching ( / .* s p e c i f i c a t i o n I d .* I n v a l i d i n p u t : e x p e c t e d s t r i n g .* / ) ) ;
219220 } ) ;
220221
221- test ( 'should return all letter ids for a supplier' , async ( ) => {
222- await letterRepository . putLetter ( createLetter ( 'supplier1' , 'letter1' ) ) ;
223- await letterRepository . putLetter ( createLetter ( 'supplier1' , 'letter2' ) ) ;
224- await letterRepository . putLetter ( createLetter ( 'supplier1' , 'letter3' ) ) ;
225- await letterRepository . putLetter ( createLetter ( 'supplier2' , 'letter4' ) ) ;
226- await letterRepository . putLetter ( createLetter ( 'supplier2' , 'letter5' ) ) ;
227-
228- const letters = await letterRepository . getLetterIdsBySupplier ( 'supplier1' ) ;
229- expect ( letters ) . toEqual ( [ 'letter1' , 'letter2' , 'letter3' ] ) ;
230- } ) ;
231-
232- test ( 'should return empty if no letters exist for a supplier' , async ( ) => {
233- await letterRepository . putLetter ( createLetter ( 'supplier1' , 'letter1' ) ) ;
234- await letterRepository . putLetter ( createLetter ( 'supplier1' , 'letter2' ) ) ;
222+ test ( "should return all letters for a supplier a status" , async ( ) => {
223+ await letterRepository . putLetter ( createLetter ( "supplier1" , "letter1" ) ) ;
224+ await letterRepository . putLetter ( createLetter ( "supplier1" , "letter2" ) ) ;
225+ await letterRepository . putLetter ( createLetter ( "supplier1" , "letter3" ) ) ;
226+ await letterRepository . putLetter (
227+ createLetter ( "supplier1" , "letter4" , "REJECTED" ) ,
228+ ) ;
229+ await letterRepository . putLetter ( createLetter ( "supplier2" , "letter1" ) ) ;
230+ await letterRepository . putLetter ( createLetter ( "supplier2" , "letter2" ) ) ;
235231
236- const letters = await letterRepository . getLetterIdsBySupplier ( 'supplier2' ) ;
237- expect ( letters ) . toEqual ( [ ] ) ;
232+ const letters = await letterRepository . getLettersBySupplier (
233+ "supplier1" ,
234+ "PENDING" ,
235+ 10 ,
236+ ) ;
237+ expect ( letters ) . toEqual ( [
238+ {
239+ id : "letter1" ,
240+ specificationId : "specification1" ,
241+ status : "PENDING" ,
242+ } ,
243+ {
244+ id : "letter2" ,
245+ specificationId : "specification1" ,
246+ status : "PENDING" ,
247+ } ,
248+ {
249+ id : "letter3" ,
250+ specificationId : "specification1" ,
251+ status : "PENDING" ,
252+ } ,
253+ ] ) ;
238254 } ) ;
239255
240256 test ( 'should return empty if no letters exist for a supplier' , async ( ) => {
241257 await letterRepository . putLetter ( createLetter ( 'supplier1' , 'letter1' ) ) ;
242258 await letterRepository . putLetter ( createLetter ( 'supplier1' , 'letter2' ) ) ;
243259
244- const letters = await letterRepository . getLetterIdsBySupplier ( 'supplier2' ) ;
260+ const letters = await letterRepository . getLettersBySupplier ( 'supplier2' , 'PENDING' , 10 ) ;
245261 expect ( letters ) . toEqual ( [ ] ) ;
246262 } ) ;
247263
@@ -252,7 +268,7 @@ describe('LetterRepository', () => {
252268 const mockDdbClient = { send : mockSend } as any ;
253269 const repo = new LetterRepository ( mockDdbClient , { debug : jest . fn ( ) } as any , { lettersTableName : 'letters' , ttlHours : 1 } ) ;
254270
255- const result = await repo . getLetterIdsBySupplier ( 'supplier1' ) ;
256- expect ( result ) . toEqual ( [ ] ) ;
271+ const letters = await repo . getLettersBySupplier ( 'supplier1' , 'PENDING' , 10 ) ;
272+ expect ( letters ) . toEqual ( [ ] ) ;
257273 } ) ;
258274} ) ;
0 commit comments