mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-03 01:46:55 +02:00
test: add the non-blocking 'marathon' E2E tier
Full start-to-finish flows move out of the blocking lanes. E2E_TIERS and
E2ETier gain 'marathon'; describeE2ETier('marathon') is enabled only when
EVALS_TIER=marathon, so the gate/PR and periodic lanes (and the gate census)
never run those cases. The PR profile accepts marathon ids as scheduled
elsewhere and defers them with their own reason, even on full fallback.
This commit is contained in:
1 parent
8c30ee9595
commit
a41cdb7d7d
7 files changed
+43
-14
No files matched your search
@@ -35,7 +35,7 @@ describe('fast PR coverage policy', () => {
|
||||
expect(PR_PROFILE_CASE_IDS).toContain('plan-ceo-review-benefits');
|
||||
expect(PR_PROFILE_CASE_IDS).toContain('plan-review-report');
|
||||
expect(PR_PROFILE_CASE_IDS).toContain('auq-format-gate');
|
||||
for (const tier of Object.values(PR_PROFILE_MAPS.tiers)) expect(['gate', 'periodic']).toContain(tier);
|
||||
for (const tier of Object.values(PR_PROFILE_MAPS.tiers)) expect(['gate', 'periodic', 'marathon']).toContain(tier);
|
||||
});
|
||||
|
||||
test('keeps relevant short probes and the failing CEO quality obligation; reports broad work', () => {
|
||||
@@ -151,6 +151,17 @@ describe('fast PR coverage policy', () => {
|
||||
expect(result.needsFullValidation).toBe(false);
|
||||
});
|
||||
|
||||
test('marathon cases are deferred to their non-blocking lane, even on full fallback', () => {
|
||||
const marathon: PrProfileMaps = { ...maps, tiers: { ...maps.tiers, 'ceo-full': 'marathon' } };
|
||||
for (const changedFiles of [['plan-ceo-review/SKILL.md.tmpl'], ['lib/new-runtime.ts']]) {
|
||||
const result = select({ maps: marathon, changedFiles });
|
||||
expect(result.e2e).not.toContain('ceo-full');
|
||||
expect(result.deferred.find(({ id }) => id === 'ceo-full')).toEqual({ id: 'ceo-full', tier: 'marathon',
|
||||
reason: 'Full end-to-end marathon coverage; non-blocking lane, not executed by the PR gate' });
|
||||
}
|
||||
expect(() => select({ maps: marathon, profile: ['ceo-full'] })).toThrow('broad gate census');
|
||||
});
|
||||
|
||||
test('rejects stale profile IDs, incorrect tiers, missing cadence, and unknown selections', () => {
|
||||
expect(() => select({ profile: ['missing'] })).toThrow('broad gate census');
|
||||
expect(() => select({ profile: ['ceo-periodic'] })).toThrow('broad gate census');
|
||||
|
||||
Reference in new issue
Block a user