Files
kefu/admin-web/apps/web-antd/tests/api-proxy.test.mjs
T
2026-11-04 10:14:23 +08:00

22 lines
1.2 KiB
JavaScript

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