66de1dc396
- client: 全部页面接入 onShareAppMessage/onShareTimeline 分享钩子 - client: login 页增强、profile 订阅展示优化 - client/stores: 订阅字段扁平结构映射为 subInfo(plan/expiresAt/startDate) - server: auth 路由 JWT 无效/过期统一返回 401 未授权响应 - server: models/tests 同步更新
45 lines
1.1 KiB
JavaScript
Executable File
45 lines
1.1 KiB
JavaScript
Executable File
/**
|
|
* Jest 测试设置
|
|
*/
|
|
|
|
// 增加测试超时时间
|
|
jest.setTimeout(30000)
|
|
|
|
// 测试环境必须使用独立的测试数据库,绝不能操作生产库(wdkj)
|
|
const TEST_DB_NAME = 'wdkj_test'
|
|
const DANGER_DB_NAMES = ['wdkj']
|
|
|
|
function assertTestDatabase() {
|
|
const mongoose = require('mongoose')
|
|
const name = mongoose.connection.name
|
|
if (!name) return
|
|
if (DANGER_DB_NAMES.includes(name)) {
|
|
throw new Error(
|
|
`[安全] 测试不允许连接生产数据库 "${name}"。请通过 MONGODB_URI 指定独立的测试数据库(如 ${TEST_DB_NAME})。`
|
|
)
|
|
}
|
|
}
|
|
|
|
// 全局清理
|
|
afterAll(async () => {
|
|
// 关闭所有数据库连接
|
|
const mongoose = require('mongoose')
|
|
if (mongoose.connection.readyState !== 0) {
|
|
// 防呆:确认当前不是生产库后才清理/关闭
|
|
assertTestDatabase()
|
|
await mongoose.connection.close()
|
|
}
|
|
})
|
|
|
|
// 抑制控制台日志(测试时)
|
|
if (process.env.SUPPRESS_LOGS) {
|
|
global.console = {
|
|
...console,
|
|
log: jest.fn(),
|
|
debug: jest.fn(),
|
|
info: jest.fn(),
|
|
warn: jest.fn(),
|
|
error: jest.fn()
|
|
}
|
|
}
|