@@ -120,6 +120,12 @@ describe("package acceptance workflow", () => {
|
120 | 120 | const existingCloseoutEvidenceMatchIndex = workflow.indexOf( |
121 | 121 | 'if [[ -n "$existing_closeout_full_release_validation_run_id" &&', |
122 | 122 | ); |
| 123 | +const rollbackDrillGateIndex = workflow.indexOf( |
| 124 | +'if [[ -z "$ROLLBACK_DRILL_ID" || -z "$ROLLBACK_DRILL_DATE" ]]; then', |
| 125 | +); |
| 126 | +const rollbackDrillPushSkipIndex = workflow.indexOf( |
| 127 | +"Stable closeout skipped: rollback drill repository variables are missing", |
| 128 | +); |
123 | 129 | |
124 | 130 | expect(workflow).toContain('evidence_checksum_asset="${evidence_asset}.sha256"'); |
125 | 131 | expect(workflow).toContain('--pattern "$evidence_checksum_asset"'); |
@@ -168,6 +174,9 @@ describe("package acceptance workflow", () => {
|
168 | 174 | expect(workflow).toContain( |
169 | 175 | "Stable closeout manifest for $tag does not match immutable postpublish evidence; refusing to accept it.", |
170 | 176 | ); |
| 177 | +expect(workflow).toContain( |
| 178 | +"Stable closeout requires repository variables RELEASE_ROLLBACK_DRILL_ID and RELEASE_ROLLBACK_DRILL_DATE, or explicit manual overrides.", |
| 179 | +); |
171 | 180 | expect(workflow).toContain( |
172 | 181 | "REPAIR_PARTIAL_CLOSEOUT: ${{ needs.resolve.outputs.repair_partial_closeout }}", |
173 | 182 | ); |
@@ -186,6 +195,8 @@ describe("package acceptance workflow", () => {
|
186 | 195 | expect(partialRepairIndex).toBeGreaterThan(-1); |
187 | 196 | expect(partialRepairIndex).toBeLessThan(releaseVersionGateIndex); |
188 | 197 | expect(evidenceDownloadIndex).toBeGreaterThan(releaseVersionGateIndex); |
| 198 | +expect(rollbackDrillGateIndex).toBeGreaterThan(existingCloseoutEvidenceMatchIndex); |
| 199 | +expect(rollbackDrillPushSkipIndex).toBeGreaterThan(rollbackDrillGateIndex); |
189 | 200 | }); |
190 | 201 | |
191 | 202 | it("keeps pnpm version selection sourced from packageManager", () => { |
|