import assert from 'node:assert/strict'; import {readFileSync} from 'node:fs'; import {createRequire} from 'node:module'; import vm from 'node:vm'; import test from 'node:test'; const require=createRequire(import.meta.url); const ts=require(process.env.KEFU_SSO_TYPESCRIPT||'typescript'); test('实际Vite代理同时接受旧前缀与标准API前缀,保留独立后端配置',async()=>{ const source=readFileSync(new URL('../vite.config.ts',import.meta.url),'utf8'); const code=ts.transpileModule(source,{compilerOptions:{module:ts.ModuleKind.CommonJS}}).outputText; for(const target of [undefined,'http://127.0.0.1:18766']) { const module={exports:{}}; vm.runInNewContext(code,{module,exports:module.exports,process:{env:{VITE_API_TARGET:target}}, require(name){assert.equal(name,'@vben/vite-config');return {defineConfig:factory=>factory};}}); const proxy=(await module.exports.default()).vite.server.proxy['/api']; assert.equal(proxy.rewrite('/api/auth/login'),'/api/v2/auth/login'); assert.equal(proxy.rewrite('/api/v2/auth/group/config'),'/api/v2/auth/group/config'); assert.equal(proxy.rewrite('/api/v2/users?active=true'),'/api/v2/users?active=true'); assert.equal(proxy.target,target||'http://127.0.0.1:8766'); } });