Files
lindyson-ai/apps/api/tests/requestOrigin.test.ts
T
Juno ChowandClaude Fable 5.1 f665082dad chore: 建立产品仓库,完成开源前的敏感信息清理
前端(Vite + React)、API/worker(Fastify + BullMQ)、api-contracts 契约包、
迁移脚本、测试与自托管 docker-compose 示例。

开源准备:运维脚本与机器信息已拆到私有仓库;公司名、备案号、隐私邮箱改读
publicCompliance.local.json(仓库只保留占位模板);站点地址与客服二维码改为
VITE_ 环境变量;fixtures 中的真实用户标识已匿名化;三个 package.json 标注
Apache-2.0。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16 02:10:46 +08:00

41 lines
1.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { describe, expect, it } from 'vitest';
import { resolveTrustedAppOrigin } from '../src/config/requestOrigin.js';
const configuration = {
CORS_ORIGIN: [
'https://lindyson.com',
'https://www.lindyson.com',
'https://lindyson.cn',
'https://www.lindyson.cn',
].join(','),
APP_BASE_URL: 'https://www.lindyson.com',
};
describe('可信请求应用来源', () => {
it.each([
'https://lindyson.com',
'https://www.lindyson.com',
'https://lindyson.cn',
'https://www.lindyson.cn',
])('只要来源在 CORS 白名单内就原样使用:%s', origin => {
expect(resolveTrustedAppOrigin(origin, configuration)).toBe(origin);
});
it.each([
undefined,
'null',
'https://www.lindyson.cn.evil.example',
'https://www.lindyson.cn/path',
'not-an-origin',
])('缺失或不可信来源回退 APP_BASE_URL:%s', origin => {
expect(resolveTrustedAppOrigin(origin, configuration)).toBe('https://www.lindyson.com');
});
it('CORS 通配符不把任意 Origin 提升为密码或支付返回来源', () => {
expect(resolveTrustedAppOrigin('https://evil.example', {
CORS_ORIGIN: '*',
APP_BASE_URL: 'https://www.lindyson.com/app',
})).toBe('https://www.lindyson.com');
});
});