Skip to content

Commit f9f4049

Browse files
meryldakinclaude
andcommitted
test: add audience stubs to pull/push tests
Add listAudiences stub to pull.test.ts and AudienceValidate.validateAll stub to push.test.ts to fix test failures caused by audience resource integration. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 3ec966a commit f9f4049

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

test/commands/pull.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import * as sinon from "sinon";
99
import { factory } from "@/../test/support";
1010
import KnockApiV1 from "@/lib/api-v1";
1111
import { sandboxDir } from "@/lib/helpers/const";
12+
import { AudienceData } from "@/lib/marshal/audience";
1213
import { EmailLayoutData } from "@/lib/marshal/email-layout";
1314
import { GuideData } from "@/lib/marshal/guide";
1415
import { MessageTypeData } from "@/lib/marshal/message-type";
@@ -25,13 +26,24 @@ const setupWithListStubs = (
2526
manyWorkflowAttrs: Partial<WorkflowData>[],
2627
manyMessageTypeAttrs: Partial<MessageTypeData>[],
2728
manyGuideAttrs: Partial<GuideData>[],
29+
manyAudienceAttrs: Partial<AudienceData>[] = [],
2830
// eslint-disable-next-line max-params
2931
) =>
3032
test
3133
.env({ KNOCK_SERVICE_TOKEN: "valid-token" })
3234
.stub(KnockApiV1.prototype, "whoami", (stub) =>
3335
stub.resolves(factory.resp({ data: factory.whoami() })),
3436
)
37+
.stub(KnockApiV1.prototype, "listAudiences", (stub) =>
38+
stub.resolves(
39+
factory.resp({
40+
data: {
41+
entries: manyAudienceAttrs.map((attrs) => factory.audience(attrs)),
42+
page_info: factory.pageInfo(),
43+
},
44+
}),
45+
),
46+
)
3547
.stub(KnockApiV1.prototype, "listEmailLayouts", (stub) =>
3648
stub.resolves(
3749
factory.resp({

test/commands/push.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import * as fs from "fs-extra";
66
import { isEqual } from "lodash";
77
import * as sinon from "sinon";
88

9+
import AudienceValidate from "@/commands/audience/validate";
910
import GuideValidate from "@/commands/guide/validate";
1011
import EmailLayoutValidate from "@/commands/layout/validate";
1112
import MessageTypeValidate from "@/commands/message-type/validate";
@@ -790,6 +791,8 @@ describe("commands/push", () => {
790791
let upsertWorkflowStub: sinon.SinonStub;
791792

792793
beforeEach(() => {
794+
sinon.stub(AudienceValidate, "validateAll").resolves([]);
795+
793796
layoutValidateAllStub = sinon
794797
.stub(EmailLayoutValidate, "validateAll")
795798
.resolves([]);
@@ -925,6 +928,8 @@ describe("commands/push", () => {
925928
.stub(KnockApiV1.prototype, "whoami")
926929
.resolves(factory.resp({ data: factory.whoami() }));
927930

931+
sinon.stub(AudienceValidate, "validateAll").resolves([]);
932+
928933
layoutValidateAllStub = sinon
929934
.stub(EmailLayoutValidate, "validateAll")
930935
.resolves([]);
@@ -1029,6 +1034,7 @@ describe("commands/push", () => {
10291034
let upsertGuideStub: sinon.SinonStub;
10301035

10311036
beforeEach(() => {
1037+
sinon.stub(AudienceValidate, "validateAll").resolves([]);
10321038
sinon.stub(EmailLayoutValidate, "validateAll").resolves([]);
10331039
sinon.stub(PartialValidate, "validateAll").resolves([]);
10341040
sinon.stub(TranslationValidate, "validateAll").resolves([]);

0 commit comments

Comments
 (0)