test(updater): narrow optional workflow jobs and format the OTA assertion
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015mFCmHk4zPyWpD9yY2C3yJ
This commit is contained in:
parent
80c56eef36
commit
1c3d8c40fe
@ -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'");
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user