mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-08 17:58:13 +01:00
test(ship-queue): the merge-key floor test simulates its restamp on a tentative constant, so it holds after the stamp
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
c609700cbb
commit
2eee584333
1 file changed
+10
-9
@@ -389,16 +389,17 @@ describe('merge: direct | train', () => {
|
|||||||
const root = path.resolve(import.meta.dir, '..');
|
const root = path.resolve(import.meta.dir, '..');
|
||||||
const fork = fs.readFileSync(path.join(root, 'VERSION'), 'utf8').trim();
|
const fork = fs.readFileSync(path.join(root, 'VERSION'), 'utf8').trim();
|
||||||
const stamped = bumpVersion(fork, 'patch')!;
|
const stamped = bumpVersion(fork, 'patch')!;
|
||||||
const templates = ["_KEY_VERSION = '{version}'"];
|
const tentative = bumpVersion(fork, 'minor')!;
|
||||||
const line = `export const MERGE_KEY_VERSION = '${MERGE_KEY_VERSION}';`;
|
const policy = JSON.parse(fs.readFileSync(path.join(root, '.gstack', 'ship-policy.json'), 'utf8'));
|
||||||
const text = fs.readFileSync(path.join(root, 'lib', 'ship-policy.ts'), 'utf8');
|
const templates: string[] = policy.stamp_patterns;
|
||||||
expect(text).toContain(line);
|
expect(policy.stamp_paths).toContain('lib/ship-policy.ts');
|
||||||
if (MERGE_KEY_VERSION !== fork && MERGE_KEY_VERSION !== stamped) {
|
expect(templates).toContain("_KEY_VERSION = '{version}'");
|
||||||
expect(tentativeMentions(new Map([['lib/ship-policy.ts', new Set([line])]]), fork, stamped, templates)).toEqual([MERGE_KEY_VERSION]);
|
expect(fs.readFileSync(path.join(root, 'lib', 'ship-policy.ts'), 'utf8')).toContain(`export const MERGE_KEY_VERSION = '${MERGE_KEY_VERSION}';`);
|
||||||
const out = rewriteStamps(text, MERGE_KEY_VERSION, stamped, templates);
|
const line = `export const MERGE_KEY_VERSION = '${tentative}';`;
|
||||||
|
expect(tentativeMentions(new Map([['lib/ship-policy.ts', new Set([line])]]), fork, stamped, templates)).toEqual([tentative]);
|
||||||
|
const out = rewriteStamps(line, tentative, stamped, templates);
|
||||||
expect(out.count).toBe(1);
|
expect(out.count).toBe(1);
|
||||||
expect(out.text).toContain(`export const MERGE_KEY_VERSION = '${stamped}';`);
|
expect(out.text).toBe(`export const MERGE_KEY_VERSION = '${stamped}';`);
|
||||||
}
|
|
||||||
const errs = (min: string, running: string) => validatePolicy({ merge: 'direct', min_gstack_version: min }, { gstackVersion: running });
|
const errs = (min: string, running: string) => validatePolicy({ merge: 'direct', min_gstack_version: min }, { gstackVersion: running });
|
||||||
expect(errs(MERGE_KEY_VERSION, MERGE_KEY_VERSION)).toEqual([]);
|
expect(errs(MERGE_KEY_VERSION, MERGE_KEY_VERSION)).toEqual([]);
|
||||||
const parts = MERGE_KEY_VERSION.split('.').map(Number);
|
const parts = MERGE_KEY_VERSION.split('.').map(Number);
|
||||||
|
|||||||
Reference in new issue
Block a user