Files
open-design/e2e/tests/packaged/update-scenario.test.ts
PerishFireandGitHub ab77eafeb1 refactor(release): retire dedicated betas and preview lanes (#7058)
* refactor(release): retire dedicated betas and preview lanes

* fix(updater): consume dynamic release channels

* fix(e2e): narrow counted release versions structurally
2026-08-18 11:27:28 +00:00

89 lines
2.9 KiB
TypeScript

import { describe, expect, test } from 'vitest';
import {
applyPackagedUpdateEnv,
resolvePackagedUpdateScenario,
} from '@/vitest/packaged-update-scenario';
describe('packaged updater release scenario', () => {
test('keeps the legacy local beta fixture when release metadata is absent', () => {
expect(resolvePackagedUpdateScenario({})).toEqual({
channel: 'beta',
currentVersionOverride: '99.0.0-beta.0',
expectedCurrentVersion: '99.0.0-beta.0',
fixtureVersion: '99.0.0-beta.1',
});
});
test('uses the embedded prerelease package version as current version for release smoke', () => {
expect(resolvePackagedUpdateScenario({
releaseChannel: 'prerelease',
releaseVersion: '0.8.0-prerelease.4',
})).toEqual({
channel: 'prerelease',
currentVersionOverride: null,
expectedCurrentVersion: '0.8.0-prerelease.4',
fixtureVersion: '0.8.0-prerelease.5',
});
});
test('derives stable, prerelease, and data-defined exact next-version fixtures', () => {
expect(resolvePackagedUpdateScenario({
releaseChannel: 'stable',
releaseVersion: '0.8.0',
}).fixtureVersion).toBe('0.8.1');
expect(resolvePackagedUpdateScenario({
releaseChannel: 'prerelease',
releaseVersion: '0.8.0-prerelease.2',
}).fixtureVersion).toBe('0.8.0-prerelease.3');
expect(resolvePackagedUpdateScenario({
releaseChannel: 'canary',
releaseVersion: '0.8.0-canary.2',
}).fixtureVersion).toBe('0.8.0-canary.3');
expect(resolvePackagedUpdateScenario({
releaseChannel: 'beta',
releaseVersion: '0.8.0-beta.2',
}).fixtureVersion).toBe('0.8.0-beta.3');
expect(resolvePackagedUpdateScenario({
releaseChannel: 'qa2',
releaseVersion: '0.8.0-qa2.2',
}).fixtureVersion).toBe('0.8.0-qa2.3');
});
test('does not override current version for release-channel smoke', () => {
const env: NodeJS.ProcessEnv = {
OD_UPDATE_CURRENT_VERSION: '99.0.0-beta.0',
};
applyPackagedUpdateEnv(
env,
resolvePackagedUpdateScenario({
releaseChannel: 'prerelease',
releaseVersion: '0.8.0-prerelease.4',
}),
'http://127.0.0.1:1234/prerelease/latest/metadata.json',
);
expect(env.OD_UPDATE_CURRENT_VERSION).toBeUndefined();
expect(env.OD_UPDATE_METADATA_URL).toBe('http://127.0.0.1:1234/prerelease/latest/metadata.json');
expect(env.OD_UPDATE_AUTO_CHECK).toBe('1');
expect(env.OD_UPDATE_OPEN_DRY_RUN).toBe('1');
});
test('can disable open dry-run for full payload relaunch smoke', () => {
const env: NodeJS.ProcessEnv = {};
applyPackagedUpdateEnv(
env,
resolvePackagedUpdateScenario({
releaseChannel: 'beta',
releaseVersion: '0.8.0-beta.4',
}),
'http://127.0.0.1:1234/beta/latest/metadata.json',
{ openDryRun: false },
);
expect(env.OD_UPDATE_OPEN_DRY_RUN).toBe('0');
});
});