mirror of
https://github.com/wuzf/2fa.git
synced 2026-09-03 07:17:09 +08:00
fix(deploy): inject SW_VERSION into all env blocks
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
export function injectWorkerVersion(configText, version) {
|
||||
// 必须带 g:顶层 [vars] 和各 [env.X.vars] 都有独立的 SW_VERSION,
|
||||
// 只替换首个会让 env 部署的 Service Worker 缓存版本停在旧值,用户拿不到更新
|
||||
const updated = configText.replace(
|
||||
/^(\s*SW_VERSION\s*=\s*)"[^"]*"(\s*)$/m,
|
||||
/^(\s*SW_VERSION\s*=\s*)"[^"]*"(\s*)$/gm,
|
||||
`$1"${version}"$2`
|
||||
);
|
||||
|
||||
|
||||
@@ -21,6 +21,28 @@ SW_VERSION = "v1"
|
||||
expect(updated.match(/\[\[kv_namespaces\]\]/g)).toHaveLength(1);
|
||||
});
|
||||
|
||||
it('replaces SW_VERSION in every env block, not just the first', () => {
|
||||
const config = `name = "2fa"
|
||||
|
||||
[vars]
|
||||
SW_VERSION = "v1"
|
||||
ENVIRONMENT = "production"
|
||||
|
||||
[env.development]
|
||||
name = "2fa-dev"
|
||||
|
||||
[env.development.vars]
|
||||
ENVIRONMENT = "development"
|
||||
SW_VERSION = "v1"
|
||||
`;
|
||||
|
||||
const updated = injectWorkerVersion(config, 'v1.7.0');
|
||||
|
||||
// 漏替换任一处都会让该环境的 Service Worker 缓存版本停在旧值,用户拿不到更新
|
||||
expect(updated.match(/SW_VERSION = "v1\.7\.0"/g)).toHaveLength(2);
|
||||
expect(updated).not.toContain('SW_VERSION = "v1"');
|
||||
});
|
||||
|
||||
it('throws when SW_VERSION is missing', () => {
|
||||
expect(() => injectWorkerVersion('[vars]\n', 'v20260325-123456')).toThrow(
|
||||
'在 wrangler.toml 中未找到 SW_VERSION 配置'
|
||||
|
||||
Reference in New Issue
Block a user