Files
memind/release-gate/ci-status.test.mjs
john a95681ea3a
Memind CI / Test, build, and release guards (push) Successful in 1m39s
fix: treat pending Gitea CI as acceptable on synced main
Normal Portal releases should not block when commit status stays pending
after the candidate is already pushed to origin/main.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 22:36:40 +08:00

42 lines
1.0 KiB
JavaScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { isReleaseCiAcceptable } from './ci-status.mjs';
test('release CI accepts explicit success and rejects explicit failure', () => {
assert.equal(
isReleaseCiAcceptable('success', {
headSha: 'abc',
remoteSha: 'abc',
}),
true,
);
assert.equal(
isReleaseCiAcceptable('failure', {
headSha: 'abc',
remoteSha: 'abc',
}),
false,
);
});
test('release CI accepts missing or pending status when candidate equals origin/main', () => {
const sha = 'c7718c683b216f08865e04edc67f4217f6abc3c1';
assert.equal(
isReleaseCiAcceptable('missing', { headSha: sha, remoteSha: sha }),
true,
);
assert.equal(
isReleaseCiAcceptable('pending', { headSha: sha, remoteSha: sha }),
true,
);
assert.equal(
isReleaseCiAcceptable('missing', { headSha: sha, remoteSha: 'other' }),
false,
);
assert.equal(
isReleaseCiAcceptable('pending', { headSha: sha, remoteSha: 'other' }),
false,
);
});