Skip to content

Commit 6a54252

Browse files
CCM-13752 Added specificationBillingId
1 parent ebf8c67 commit 6a54252

11 files changed

Lines changed: 48 additions & 7 deletions

File tree

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ function createLetter(
3030
source: "/data-plane/letter-rendering/pdf",
3131
subject: `client/1/letter-request/${letterId}`,
3232
billingRef: "specification1",
33+
specificationBillingId: "specification1",
3334
};
3435
}
3536

internal/datastore/src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export const LetterSchema = LetterSchemaBase.extend({
5353
source: z.string(),
5454
subject: z.string(),
5555
billingRef: z.string(),
56+
specificationBillingId: z.string(),
5657
}).describe("Letter");
5758

5859
/**

lambdas/api-handler/src/mappers/__tests__/letter-mapper.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ describe("letter-mapper", () => {
2828
ttl: 123,
2929
source: "/data-plane/letter-rendering/pdf",
3030
subject: "letter-rendering/source/letter/letter-id",
31+
specificationBillingId: "billing123",
3132
};
3233

3334
const result: PatchLetterResponse = mapToPatchLetterResponse(letter);
@@ -64,6 +65,7 @@ describe("letter-mapper", () => {
6465
reasonText: "Reason text",
6566
source: "/data-plane/letter-rendering/pdf",
6667
subject: "letter-rendering/source/letter/letter-id",
68+
specificationBillingId: "billing123",
6769
};
6870

6971
const result: PatchLetterResponse = mapToPatchLetterResponse(letter);
@@ -100,6 +102,7 @@ describe("letter-mapper", () => {
100102
ttl: 123,
101103
source: "/data-plane/letter-rendering/pdf",
102104
subject: "letter-rendering/source/letter/letter-id",
105+
specificationBillingId: "billing123",
103106
};
104107

105108
const result: GetLetterResponse = mapToGetLetterResponse(letter);
@@ -136,6 +139,7 @@ describe("letter-mapper", () => {
136139
reasonText: "Reason text",
137140
source: "/data-plane/letter-rendering/pdf",
138141
subject: "letter-rendering/source/letter/letter-id",
142+
specificationBillingId: "billing123",
139143
};
140144

141145
const result: GetLetterResponse = mapToGetLetterResponse(letter);
@@ -174,6 +178,7 @@ describe("letter-mapper", () => {
174178
reasonText: "Reason text",
175179
source: "/data-plane/letter-rendering/pdf",
176180
subject: "letter-rendering/source/letter/letter-id",
181+
specificationBillingId: "billing123",
177182
};
178183

179184
const result: GetLettersResponse = mapToGetLettersResponse([

lambdas/api-handler/src/services/__tests__/letter-operations.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ function makeLetter(id: string, status: Letter["status"]): Letter {
4141
reasonText: "Reason text",
4242
source: "/data-plane/letter-rendering/pdf",
4343
subject: "letter-rendering/source/letter/letter-id",
44+
specificationBillingId: "billing123",
4445
};
4546
}
4647

lambdas/letter-updates-transformer/src/__tests__/letter-updates-transformer.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,7 @@ function generateLetter(status: LetterStatus, id?: string): Letter {
339339
supplierStatus: `supplier1#${status}`,
340340
supplierStatusSk: "2025-12-10T11:12:54Z#1",
341341
ttl: 1_234_567_890,
342+
specificationBillingId: "billing1",
342343
};
343344
}
344345

lambdas/supplier-allocator/src/handler/__tests__/allocate-handler.test.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,14 @@ function makeDeps(overrides: Partial<Deps> = {}): Deps {
2626

2727
const env = {
2828
VARIANT_MAP: {
29-
"variant-1": { supplierId: "supplier-1", specId: "spec-1" },
30-
"variant-2": { supplierId: "supplier-2", specId: "spec-2" },
29+
"variant-1": {
30+
supplierId: "supplier-1",
31+
specId: "spec-1",
32+
},
33+
"variant-2": {
34+
supplierId: "supplier-2",
35+
specId: "spec-2",
36+
},
3137
},
3238
};
3339

lambdas/update-letter-queue/src/__tests__/update-letter-queue.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ function generateLetter(status: LetterStatus, id?: string): Letter {
4646
source: "test-source",
4747
subject: "test-subject",
4848
billingRef: "billing-ref-1",
49+
specificationBillingId: "billing1",
4950
};
5051
}
5152

lambdas/upsert-letter/src/handler/__tests__/upsert-handler.test.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ function createSupplierStatusChangeEventWithoutSupplier(
9797
billingRef: "1y3q9v1zzzz",
9898
status: "RETURNED",
9999
supplierId: "",
100+
specificationBillingId: "billing1",
100101
},
101102
datacontenttype: "application/json",
102103
dataschema:
@@ -151,6 +152,7 @@ function createSupplierStatusChangeEvent(
151152
billingRef: "1y3q9v1zzzz",
152153
status: "RETURNED",
153154
supplierId: "supplier1",
155+
specificationBillingId: "billing1",
154156
},
155157
datacontenttype: "application/json",
156158
dataschema:
@@ -211,11 +213,17 @@ describe("createUpsertLetterHandler", () => {
211213
test("processes all records successfully and returns no batch failures", async () => {
212214
const v2message = {
213215
letterEvent: createPreparedV2Event(),
214-
supplierSpec: { supplierId: "supplier1", specId: "spec1" },
216+
supplierSpec: {
217+
supplierId: "supplier1",
218+
specId: "spec1",
219+
},
215220
};
216221
const v1message = {
217222
letterEvent: createPreparedV1Event(),
218-
supplierSpec: { supplierId: "supplier1", specId: "spec1" },
223+
supplierSpec: {
224+
supplierId: "supplier1",
225+
specId: "spec1",
226+
},
219227
};
220228

221229
const evt: SQSEvent = createSQSEvent([
@@ -249,6 +257,7 @@ describe("createUpsertLetterHandler", () => {
249257
expect(insertedV2Letter.status).toBe("PENDING");
250258
expect(insertedV2Letter.groupId).toBe("client1campaign1template1");
251259
expect(insertedV2Letter.source).toBe("/data-plane/letter-rendering/test");
260+
expect(insertedV2Letter.specificationBillingId).toBe("spec1");
252261

253262
const insertedV1Letter = (mockedDeps.letterRepo.putLetter as jest.Mock).mock
254263
.calls[1][0];
@@ -260,6 +269,7 @@ describe("createUpsertLetterHandler", () => {
260269
expect(insertedV1Letter.status).toBe("PENDING");
261270
expect(insertedV1Letter.groupId).toBe("client1campaign1template1");
262271
expect(insertedV1Letter.source).toBe("/data-plane/letter-rendering/test");
272+
expect(insertedV1Letter.specificationBillingId).toBe("spec1");
263273

264274
const updatedLetter = (
265275
mockedDeps.letterRepo.updateLetterStatus as jest.Mock
@@ -472,14 +482,20 @@ describe("createUpsertLetterHandler", () => {
472482
id: "7b9a03ca-342a-4150-b56b-989109c45615",
473483
domainId: "ok",
474484
}),
475-
supplierSpec: { supplierId: "supplier1", specId: "spec1" },
485+
supplierSpec: {
486+
supplierId: "supplier1",
487+
specId: "spec1",
488+
},
476489
};
477490
const message2 = {
478491
letterEvent: createPreparedV2Event({
479492
id: "7b9a03ca-342a-4150-b56b-989109c45616",
480493
domainId: "fail",
481494
}),
482-
supplierSpec: { supplierId: "supplier1", specId: "spec1" },
495+
supplierSpec: {
496+
supplierId: "supplier1",
497+
specId: "spec1",
498+
},
483499
};
484500
const evt: SQSEvent = createSQSEvent([
485501
createSqsRecord("ok-msg", JSON.stringify(message1)),

lambdas/upsert-letter/src/handler/upsert-handler.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ function mapToInsertLetter(
117117
createdAt: now,
118118
updatedAt: now,
119119
billingRef,
120+
specificationBillingId: spec,
120121
};
121122
}
122123

@@ -235,7 +236,10 @@ export default function createUpsertLetterHandler(deps: Deps): SQSHandler {
235236
await runUpsert(
236237
operation,
237238
letterEvent,
238-
supplierSpec ?? { supplierId: "unknown", specId: "unknown" },
239+
supplierSpec ?? {
240+
supplierId: "unknown",
241+
specId: "unknown",
242+
},
239243
deps,
240244
);
241245

scripts/utilities/letter-test-data/src/__test__/helpers/create-letter-helpers.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ describe("Create letter helpers", () => {
6262
source: "/data-plane/letter-rendering/letter-test-data",
6363
subject: "supplier-api/letter-test-data/letterId",
6464
billingRef: "specificationId",
65+
specificationBillingId: "specificationId",
6566
});
6667
});
6768

@@ -110,6 +111,7 @@ describe("Create letter helpers", () => {
110111
billingRef: "specificationId",
111112
source: "/data-plane/letter-rendering/letter-test-data",
112113
subject: "supplier-api/letter-test-data/letterId",
114+
specificationBillingId: "specificationId",
113115
});
114116
});
115117

@@ -140,6 +142,7 @@ describe("Create letter helpers", () => {
140142
source: "/data-plane/letter-rendering/letter-test-data",
141143
subject: "supplier-api/letter-test-data/testLetterId",
142144
billingRef: "testSpecId",
145+
specificationBillingId: "testSpecId",
143146
});
144147
});
145148
});

0 commit comments

Comments
 (0)