diff --git a/infra/updater/src/ci-workflow.test.ts b/infra/updater/src/ci-workflow.test.ts index 54c87e6..ddbaae1 100644 --- a/infra/updater/src/ci-workflow.test.ts +++ b/infra/updater/src/ci-workflow.test.ts @@ -21,7 +21,7 @@ const workflow = parse(workflowText) as { describe("ci workflow merge gate", () => { it("aggregates only product jobs in Product CI", () => { const productGate = workflow.jobs["product-gate"]; - expect(productGate.needs).toEqual([ + expect(productGate?.needs).toEqual([ "lint", "check", "build", @@ -29,12 +29,12 @@ describe("ci workflow merge gate", () => { "test-integration", "test-e2e", ]); - expect(productGate.if).toBe("always()"); + expect(productGate?.if).toBe("always()"); }); it("soft-fails mobile OTA so missing Expo credentials do not fail the workflow", () => { const mobile = workflow.jobs["publish-mobile-update"]; - expect(mobile["continue-on-error"]).toBe(true); + expect(mobile?.["continue-on-error"]).toBe(true); expect(workflowText).toContain('echo "ready=false" >> "$GITHUB_OUTPUT"'); expect(workflowText).not.toMatch( /Check Expo automation token[\s\S]*?exit 1[\s\S]*?Require Expo/, @@ -42,8 +42,6 @@ describe("ci workflow merge gate", () => { expect(workflowText).not.toContain( "Add an EXPO_TOKEN repository secret with access to the inbox-zero/rakazo Expo project.", ); - expect(workflowText).toContain( - "steps.expo_token.outputs.ready == 'true'", - ); + expect(workflowText).toContain("steps.expo_token.outputs.ready == 'true'"); }); });