nexu-io--open-design
89 行
2.9 KiB
TypeScript
89 行
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, preview, beta, and betas 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: 'preview',
|
|
releaseVersion: '0.8.0-preview.2',
|
|
}).fixtureVersion).toBe('0.8.0-preview.3');
|
|
expect(resolvePackagedUpdateScenario({
|
|
releaseChannel: 'beta',
|
|
releaseVersion: '0.8.0-beta.2',
|
|
}).fixtureVersion).toBe('0.8.0-beta.3');
|
|
expect(resolvePackagedUpdateScenario({
|
|
releaseChannel: 'betas',
|
|
releaseVersion: '0.8.0-betas.2',
|
|
}).fixtureVersion).toBe('0.8.0-betas.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');
|
|
});
|
|
});
|