// 简单的日志记录器测试文件 // 用于验证修复后的日志记录器是否能正确处理循环引用 import { log } from './logger'; // 测试循环引用对象 const createCircularObject = () => { const obj: any = { name: 'test' }; obj.self = obj; // 创建循环引用 return obj; }; // 测试 Error 对象 const createErrorObject = () => { const error = new Error('Test error message'); error.name = 'TestError'; return error; }; // 测试 RevenueCat 类型的错误对象 const createRevenueCatError = () => { return { code: 'PRODUCT_NOT_FOUND', message: 'There is an issue with your configuration. Check the underlying error for more details. There are no products registered in the RevenueCat dashboard for your offerings.', underlyingErrorMessage: 'No products found', name: 'RevenueCatError' }; }; // 运行测试 export const testLogger = async () => { console.log('开始测试日志记录器...'); try { // 测试1: 循环引用对象 console.log('测试1: 循环引用对象'); const circularObj = createCircularObject(); await log.info('测试循环引用对象', { data: circularObj }); // 测试2: Error 对象 console.log('测试2: Error 对象'); const errorObj = createErrorObject(); await log.error('测试 Error 对象', { error: errorObj }); // 测试3: RevenueCat 错误对象 console.log('测试3: RevenueCat 错误对象'); const revenueCatError = createRevenueCatError(); await log.error('测试 RevenueCat 错误', { error: revenueCatError }); // 测试4: 直接传递 Error 对象 console.log('测试4: 直接传递 Error 对象'); await log.error('测试直接传递 Error', createErrorObject()); console.log('所有测试完成!'); } catch (error) { console.error('测试过程中出现错误:', error); } }; // 如果直接运行此文件,执行测试 if (require.main === module) { testLogger(); }