- 创建 MembershipModalContext 统一管理会员弹窗 - 优化 MembershipModal 产品套餐展示和购买流程 - 集成 RevenueCat SDK 并初始化内购功能 - 在个人中心添加会员 Banner,引导非会员用户订阅 - 修复日志工具的循环引用问题,确保错误信息正确记录 - 版本更新至 1.0.20 新增了完整的会员购买流程,包括套餐选择、购买确认、购买恢复等功能。会员 Banner 仅对非会员用户展示,已是会员的用户不会看到。同时优化了错误日志记录,避免循环引用导致的序列化失败。
63 lines
1.9 KiB
TypeScript
63 lines
1.9 KiB
TypeScript
// 简单的日志记录器测试文件
|
|
// 用于验证修复后的日志记录器是否能正确处理循环引用
|
|
|
|
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();
|
|
} |