Skip to content

Commit 76d2eff

Browse files
committed
Refactor test fixture creation to reduce repeat
1 parent 46971df commit 76d2eff

15 files changed

+232
-239
lines changed

tools/client-subscriptions-management/src/__tests__/domain/client-config-validator.test.ts

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,7 @@
11
import { validateClientConfig } from "src/domain/client-config-validator";
2+
import { createPopulatedClientSubscriptionConfig } from "src/__tests__/helpers/client-subscription-fixtures";
23

3-
const TARGET_ID = "00000000-0000-4000-8000-000000000001";
4-
5-
const createValidConfig = () => ({
6-
clientId: "client-1",
7-
subscriptions: [
8-
{
9-
subscriptionId: "00000000-0000-0000-0000-000000000001",
10-
subscriptionType: "MessageStatus",
11-
messageStatuses: ["DELIVERED"],
12-
targetIds: [TARGET_ID],
13-
},
14-
],
15-
targets: [
16-
{
17-
targetId: TARGET_ID,
18-
type: "API",
19-
invocationEndpoint: "https://example.com/webhook",
20-
invocationMethod: "POST",
21-
invocationRateLimit: 10,
22-
apiKey: { headerName: "x-api-key", headerValue: "secret" },
23-
},
24-
],
25-
});
4+
const createValidConfig = () => createPopulatedClientSubscriptionConfig();
265

276
describe("validateClientConfig", () => {
287
it("returns the config unchanged when parsing succeeds", () => {

tools/client-subscriptions-management/src/__tests__/entrypoint/cli/clients-get.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,9 @@ jest.mock("src/entrypoint/cli/helper", () => ({
99
}));
1010

1111
import * as cli from "src/entrypoint/cli/clients-get";
12+
import { createClientSubscriptionConfig } from "src/__tests__/helpers/client-subscription-fixtures";
1213

13-
const validConfig = {
14-
clientId: "client-1",
15-
subscriptions: [],
16-
targets: [],
17-
};
14+
const validConfig = createClientSubscriptionConfig();
1815

1916
describe("clients-get CLI", () => {
2017
const originalLog = console.log;

tools/client-subscriptions-management/src/__tests__/entrypoint/cli/clients-put.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,9 @@ jest.mock("node:fs", () => ({
1919
}));
2020

2121
import * as cli from "src/entrypoint/cli/clients-put";
22+
import { createClientSubscriptionConfig } from "src/__tests__/helpers/client-subscription-fixtures";
2223

23-
const validConfig = {
24-
clientId: "client-1",
25-
subscriptions: [],
26-
targets: [],
27-
};
24+
const validConfig = createClientSubscriptionConfig();
2825

2926
describe("clients-put CLI", () => {
3027
const originalLog = console.log;

tools/client-subscriptions-management/src/__tests__/entrypoint/cli/helper.test.ts

Lines changed: 16 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
import type {
2-
CallbackTarget,
3-
ChannelStatusSubscriptionConfiguration,
4-
ClientSubscriptionConfiguration,
5-
MessageStatusSubscriptionConfiguration,
6-
} from "@nhs-notify-client-callbacks/models";
71
import {
82
createRepository,
93
deriveBucketName,
@@ -16,6 +10,13 @@ import {
1610
resolveRegion,
1711
runTerraformApply,
1812
} from "src/entrypoint/cli/helper";
13+
import {
14+
DEFAULT_TARGET_ID as TARGET_ID,
15+
createChannelStatusSubscription,
16+
createClientSubscriptionConfig,
17+
createMessageStatusSubscription,
18+
createTarget,
19+
} from "src/__tests__/helpers/client-subscription-fixtures";
1920

2021
jest.mock("src/container", () => ({
2122
createClientSubscriptionRepository: jest.fn(),
@@ -32,39 +33,16 @@ jest.mock("@aws-sdk/client-sts", () => ({
3233
GetCallerIdentityCommand: jest.fn(),
3334
}));
3435

35-
const TARGET_ID = "00000000-0000-4000-8000-000000000001";
36-
3736
describe("cli helper", () => {
38-
const target: CallbackTarget = {
39-
targetId: TARGET_ID,
40-
type: "API",
41-
invocationEndpoint: "https://example.com/webhook",
42-
invocationMethod: "POST",
43-
invocationRateLimit: 10,
44-
apiKey: { headerName: "x-api-key", headerValue: "secret" },
45-
};
37+
const target = createTarget();
38+
const messageSubscription = createMessageStatusSubscription();
39+
const channelSubscription = createChannelStatusSubscription();
4640

47-
const messageSubscription: MessageStatusSubscriptionConfiguration = {
48-
subscriptionId: "sub-001",
49-
subscriptionType: "MessageStatus",
50-
messageStatuses: ["DELIVERED"],
51-
targetIds: [TARGET_ID],
52-
};
53-
54-
const channelSubscription: ChannelStatusSubscriptionConfiguration = {
55-
subscriptionId: "sub-002",
56-
subscriptionType: "ChannelStatus",
57-
channelType: "SMS",
58-
channelStatuses: ["DELIVERED"],
59-
supplierStatuses: ["delivered"],
60-
targetIds: [TARGET_ID],
61-
};
62-
63-
const config: ClientSubscriptionConfiguration = {
41+
const config = createClientSubscriptionConfig({
6442
clientId: "client-a",
6543
subscriptions: [messageSubscription, channelSubscription],
6644
targets: [target],
67-
};
45+
});
6846

6947
it("formats subscriptions as a table string", () => {
7048
const result = formatSubscriptionsTable(config.subscriptions);
@@ -96,21 +74,19 @@ describe("cli helper", () => {
9674
});
9775

9876
it("shows (none) when subscriptions is empty", () => {
99-
const empty: ClientSubscriptionConfiguration = {
77+
const empty = createClientSubscriptionConfig({
10078
clientId: "empty-client",
101-
subscriptions: [],
10279
targets: [target],
103-
};
80+
});
10481

10582
expect(formatClientConfig(empty)).toContain("Subscriptions: (none)");
10683
});
10784

10885
it("shows (none) when targets is empty", () => {
109-
const empty: ClientSubscriptionConfiguration = {
86+
const empty = createClientSubscriptionConfig({
11087
clientId: "empty-client",
11188
subscriptions: [messageSubscription],
112-
targets: [],
113-
};
89+
});
11490

11591
expect(formatClientConfig(empty)).toContain("Targets: (none)");
11692
});

tools/client-subscriptions-management/src/__tests__/entrypoint/cli/subscriptions-add.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ jest.mock("src/entrypoint/cli/helper", () => ({
1818
}));
1919

2020
import * as cli from "src/entrypoint/cli/subscriptions-add";
21+
import { createClientSubscriptionConfig } from "src/__tests__/helpers/client-subscription-fixtures";
2122

22-
const resultConfig = { clientId: "client-1", subscriptions: [], targets: [] };
23+
const resultConfig = createClientSubscriptionConfig();
2324

2425
describe("subscriptions-add CLI", () => {
2526
const originalLog = console.log;

tools/client-subscriptions-management/src/__tests__/entrypoint/cli/subscriptions-del.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ jest.mock("src/entrypoint/cli/helper", () => ({
1111
}));
1212

1313
import * as cli from "src/entrypoint/cli/subscriptions-del";
14+
import { createClientSubscriptionConfig } from "src/__tests__/helpers/client-subscription-fixtures";
1415

15-
const resultConfig = { clientId: "client-1", subscriptions: [], targets: [] };
16+
const resultConfig = createClientSubscriptionConfig();
1617

1718
describe("subscriptions-del CLI", () => {
1819
const originalLog = console.log;

tools/client-subscriptions-management/src/__tests__/entrypoint/cli/subscriptions-list.test.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,18 @@ jest.mock("src/entrypoint/cli/helper", () => ({
1111
}));
1212

1313
import * as cli from "src/entrypoint/cli/subscriptions-list";
14+
import {
15+
createClientSubscriptionConfig,
16+
createMessageStatusSubscription,
17+
} from "src/__tests__/helpers/client-subscription-fixtures";
1418

15-
const validConfig = {
16-
clientId: "client-1",
19+
const validConfig = createClientSubscriptionConfig({
1720
subscriptions: [
18-
{
19-
subscriptionId: "sub-001",
20-
subscriptionType: "MessageStatus",
21-
messageStatuses: ["DELIVERED"],
21+
createMessageStatusSubscription({
2222
targetIds: ["target-001"],
23-
},
23+
}),
2424
],
25-
targets: [],
26-
};
25+
});
2726

2827
describe("subscriptions-list CLI", () => {
2928
const originalLog = console.log;

tools/client-subscriptions-management/src/__tests__/entrypoint/cli/subscriptions-set-states.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ jest.mock("src/entrypoint/cli/helper", () => ({
1111
}));
1212

1313
import * as cli from "src/entrypoint/cli/subscriptions-set-states";
14+
import { createClientSubscriptionConfig } from "src/__tests__/helpers/client-subscription-fixtures";
1415

15-
const resultConfig = { clientId: "client-1", subscriptions: [], targets: [] };
16+
const resultConfig = createClientSubscriptionConfig();
1617

1718
describe("subscriptions-set-states CLI", () => {
1819
const originalLog = console.log;

tools/client-subscriptions-management/src/__tests__/entrypoint/cli/targets-add.test.ts

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,16 @@ jest.mock("src/entrypoint/cli/helper", () => ({
1616
}));
1717

1818
import * as cli from "src/entrypoint/cli/targets-add";
19+
import {
20+
createClientSubscriptionConfig,
21+
createTarget,
22+
} from "src/__tests__/helpers/client-subscription-fixtures";
1923

20-
const builtTarget = {
21-
targetId: "00000000-0000-4000-8000-000000000001",
22-
type: "API",
23-
invocationEndpoint: "https://example.com/webhook",
24-
invocationMethod: "POST",
25-
invocationRateLimit: 10,
26-
apiKey: { headerName: "x-api-key", headerValue: "secret" },
27-
};
28-
29-
const resultConfig = {
30-
clientId: "client-1",
31-
subscriptions: [],
24+
const builtTarget = createTarget();
25+
26+
const resultConfig = createClientSubscriptionConfig({
3227
targets: [builtTarget],
33-
};
28+
});
3429

3530
describe("targets-add CLI", () => {
3631
const originalLog = console.log;

tools/client-subscriptions-management/src/__tests__/entrypoint/cli/targets-del.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ jest.mock("src/entrypoint/cli/helper", () => ({
1111
}));
1212

1313
import * as cli from "src/entrypoint/cli/targets-del";
14+
import { createClientSubscriptionConfig } from "src/__tests__/helpers/client-subscription-fixtures";
1415

15-
const resultConfig = { clientId: "client-1", subscriptions: [], targets: [] };
16+
const resultConfig = createClientSubscriptionConfig();
1617

1718
describe("targets-del CLI", () => {
1819
const originalLog = console.log;

0 commit comments

Comments
 (0)