项目文件夹

文件
wehub-resource-sync 070959e133
landing-page-staging / Deploy landing page to staging (push) Has been skipped
landing-page-ci / Validate landing page (push) Failing after 4s
visual-baseline / Capture visual baselines (push) Has been cancelled
bake-plugin-previews / Bake plugin previews (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:00:47 +08:00

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');
});
});