test(cache): 修复CacheConfigTest边界值测试
- 修改 shouldVerifyCacheManager_withMaximumIntegerTtl 为 shouldVerifyCacheManager_withMaximumAllowedTtl - 使用正确的最大TTL值(10080分钟,7天)而不是 Integer.MAX_VALUE - 新增 shouldThrowException_whenTtlExceedsMaximum 测试验证边界检查 - 所有1266个测试用例通过 - 覆盖率: 指令81.89%, 行88.48%, 分支51.55% docs: 添加项目状态报告 - 生成 PROJECT_STATUS_REPORT.md 详细记录项目当前状态 - 包含质量指标、已完成功能、待办事项和技术债务
This commit is contained in:
10
frontend/h5/cypress/fixtures/coupon-claim-success.json
Normal file
10
frontend/h5/cypress/fixtures/coupon-claim-success.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"success": true,
|
||||
"message": "优惠券领取成功",
|
||||
"data": {
|
||||
"couponId": "1",
|
||||
"claimedAt": "2026-01-23T10:30:00Z",
|
||||
"expiresAt": "2026-02-23T23:59:59Z",
|
||||
"status": "CLAIMED"
|
||||
}
|
||||
}
|
||||
62
frontend/h5/cypress/fixtures/coupons.json
Normal file
62
frontend/h5/cypress/fixtures/coupons.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": [
|
||||
{
|
||||
"id": "1",
|
||||
"name": "新用户专享优惠券",
|
||||
"description": "满100减10元",
|
||||
"discount": 10.00,
|
||||
"minAmount": 100.00,
|
||||
"type": "DISCOUNT",
|
||||
"validUntil": "2026-02-23T23:59:59Z",
|
||||
"claimed": false,
|
||||
"quantity": 1000,
|
||||
"remaining": 850,
|
||||
"imageUrl": "https://picsum.photos/seed/coupon1/300/200.jpg",
|
||||
"tags": ["新用户", "专享"],
|
||||
"rules": [
|
||||
"仅限新用户领取",
|
||||
"有效期30天",
|
||||
"不可与其他优惠叠加"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"name": "限时特惠券",
|
||||
"description": "满50减5元",
|
||||
"discount": 5.00,
|
||||
"minAmount": 50.00,
|
||||
"type": "DISCOUNT",
|
||||
"validUntil": "2026-01-30T23:59:59Z",
|
||||
"claimed": false,
|
||||
"quantity": 500,
|
||||
"remaining": 320,
|
||||
"imageUrl": "https://picsum.photos/seed/coupon2/300/200.jpg",
|
||||
"tags": ["限时", "特惠"],
|
||||
"rules": [
|
||||
"有效期7天",
|
||||
"每人限领1张",
|
||||
"不可与其他优惠叠加"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "3",
|
||||
"name": "邀请奖励券",
|
||||
"description": "无门槛减3元",
|
||||
"discount": 3.00,
|
||||
"minAmount": 0.00,
|
||||
"type": "DISCOUNT",
|
||||
"validUntil": "2026-02-23T23:59:59Z",
|
||||
"claimed": true,
|
||||
"quantity": 2000,
|
||||
"remaining": 1200,
|
||||
"imageUrl": "https://picsum.photos/seed/coupon3/300/200.jpg",
|
||||
"tags": ["邀请", "奖励"],
|
||||
"rules": [
|
||||
"邀请好友成功后获得",
|
||||
"有效期30天",
|
||||
"全场通用"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
23
frontend/h5/cypress/fixtures/invite-code.json
Normal file
23
frontend/h5/cypress/fixtures/invite-code.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"inviteCode": "INVITE123",
|
||||
"inviteLink": "https://mosquito.com/invite/INVITE123",
|
||||
"qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",
|
||||
"shareText": "我正在使用蚊子项目,邀请你也来加入!点击链接:https://mosquito.com/invite/INVITE123",
|
||||
"campaigns": [
|
||||
{
|
||||
"id": "1",
|
||||
"name": "新用户专享活动",
|
||||
"reward": 10.00,
|
||||
"endDate": "2026-02-23T23:59:59Z"
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"name": "春节特惠活动",
|
||||
"reward": 15.00,
|
||||
"endDate": "2026-02-28T23:59:59Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
58
frontend/h5/cypress/fixtures/invite-records.json
Normal file
58
frontend/h5/cypress/fixtures/invite-records.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": [
|
||||
{
|
||||
"id": "1",
|
||||
"userId": "10",
|
||||
"inviteePhone": "138****8001",
|
||||
"inviteeNickname": "新用户A",
|
||||
"level": 1,
|
||||
"reward": 10.00,
|
||||
"status": "COMPLETED",
|
||||
"createdAt": "2026-01-20T10:00:00Z",
|
||||
"completedAt": "2026-01-20T10:15:00Z"
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"userId": "11",
|
||||
"inviteePhone": "138****8002",
|
||||
"inviteeNickname": "新用户B",
|
||||
"level": 1,
|
||||
"reward": 10.00,
|
||||
"status": "COMPLETED",
|
||||
"createdAt": "2026-01-19T14:30:00Z",
|
||||
"completedAt": "2026-01-19T14:45:00Z"
|
||||
},
|
||||
{
|
||||
"id": "3",
|
||||
"userId": "12",
|
||||
"inviteePhone": "138****8003",
|
||||
"inviteeNickname": "新用户C",
|
||||
"level": 2,
|
||||
"reward": 5.00,
|
||||
"status": "COMPLETED",
|
||||
"createdAt": "2026-01-18T09:15:00Z",
|
||||
"completedAt": "2026-01-18T09:30:00Z"
|
||||
},
|
||||
{
|
||||
"id": "4",
|
||||
"userId": "13",
|
||||
"inviteePhone": "138****8004",
|
||||
"inviteeNickname": "待激活用户",
|
||||
"level": 1,
|
||||
"reward": 0.00,
|
||||
"status": "PENDING",
|
||||
"createdAt": "2026-01-22T16:20:00Z",
|
||||
"completedAt": null
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"totalInvites": 15,
|
||||
"completedInvites": 12,
|
||||
"pendingInvites": 3,
|
||||
"totalRewards": 125.00,
|
||||
"level1Rewards": 100.00,
|
||||
"level2Rewards": 20.00,
|
||||
"level3Rewards": 5.00
|
||||
}
|
||||
}
|
||||
16
frontend/h5/cypress/fixtures/login-success.json
Normal file
16
frontend/h5/cypress/fixtures/login-success.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMzgwMDEzODAwMSIsInVzZXJJZCI6IjEiLCJpYXQiOjE3Mzc2NzI2MDAsImV4cCI6MTczNzc1OTAwMH0.mock-signature",
|
||||
"refreshToken": "mock-refresh-token",
|
||||
"expiresIn": 3600,
|
||||
"user": {
|
||||
"id": "1",
|
||||
"phone": "13800138001",
|
||||
"nickname": "测试用户",
|
||||
"avatar": "https://api.dicebear.com/7.x/avataaars/svg?seed=test",
|
||||
"isNewUser": false,
|
||||
"level": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
44
frontend/h5/cypress/fixtures/my-coupons.json
Normal file
44
frontend/h5/cypress/fixtures/my-coupons.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": [
|
||||
{
|
||||
"id": "1",
|
||||
"name": "新用户专享优惠券",
|
||||
"description": "满100减10元",
|
||||
"discount": 10.00,
|
||||
"minAmount": 100.00,
|
||||
"type": "DISCOUNT",
|
||||
"validUntil": "2026-02-23T23:59:59Z",
|
||||
"claimed": true,
|
||||
"claimedAt": "2026-01-20T10:00:00Z",
|
||||
"used": false,
|
||||
"usedAt": null,
|
||||
"status": "CLAIMED",
|
||||
"imageUrl": "https://picsum.photos/seed/coupon1/300/200.jpg",
|
||||
"couponCode": "NEWUSER123"
|
||||
},
|
||||
{
|
||||
"id": "3",
|
||||
"name": "邀请奖励券",
|
||||
"description": "无门槛减3元",
|
||||
"discount": 3.00,
|
||||
"minAmount": 0.00,
|
||||
"type": "DISCOUNT",
|
||||
"validUntil": "2026-02-23T23:59:59Z",
|
||||
"claimed": true,
|
||||
"claimedAt": "2026-01-19T15:30:00Z",
|
||||
"used": true,
|
||||
"usedAt": "2026-01-21T14:20:00Z",
|
||||
"status": "USED",
|
||||
"imageUrl": "https://picsum.photos/seed/coupon3/300/200.jpg",
|
||||
"couponCode": "INVITE456"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total": 2,
|
||||
"claimed": 2,
|
||||
"used": 1,
|
||||
"expired": 0,
|
||||
"available": 1
|
||||
}
|
||||
}
|
||||
87
frontend/h5/cypress/fixtures/personal-stats.json
Normal file
87
frontend/h5/cypress/fixtures/personal-stats.json
Normal file
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"totalClicks": 1250,
|
||||
"totalConversions": 89,
|
||||
"totalEarnings": 1256.78,
|
||||
"todayEarnings": 45.50,
|
||||
"yesterdayEarnings": 32.30,
|
||||
"thisWeekEarnings": 189.60,
|
||||
"thisMonthEarnings": 756.80,
|
||||
"inviteCount": 15,
|
||||
"conversionRate": 7.12,
|
||||
"avgClickValue": 1.01,
|
||||
"activeShortLinks": 5,
|
||||
"rank": 28,
|
||||
"totalUsers": 1250,
|
||||
"growthRate": 15.6,
|
||||
"stats": {
|
||||
"daily": [
|
||||
{
|
||||
"date": "2026-01-20",
|
||||
"clicks": 145,
|
||||
"conversions": 12,
|
||||
"earnings": 65.40
|
||||
},
|
||||
{
|
||||
"date": "2026-01-21",
|
||||
"clicks": 167,
|
||||
"conversions": 14,
|
||||
"earnings": 78.20
|
||||
},
|
||||
{
|
||||
"date": "2026-01-22",
|
||||
"clicks": 189,
|
||||
"conversions": 16,
|
||||
"earnings": 89.50
|
||||
},
|
||||
{
|
||||
"date": "2026-01-23",
|
||||
"clicks": 203,
|
||||
"conversions": 17,
|
||||
"earnings": 96.30
|
||||
}
|
||||
],
|
||||
"weekly": [
|
||||
{
|
||||
"week": "2026-W1",
|
||||
"clicks": 892,
|
||||
"conversions": 67,
|
||||
"earnings": 456.70
|
||||
},
|
||||
{
|
||||
"week": "2026-W2",
|
||||
"clicks": 1034,
|
||||
"conversions": 78,
|
||||
"earnings": 523.40
|
||||
},
|
||||
{
|
||||
"week": "2026-W3",
|
||||
"clicks": 1250,
|
||||
"conversions": 89,
|
||||
"earnings": 656.80
|
||||
}
|
||||
],
|
||||
"monthly": [
|
||||
{
|
||||
"month": "2025-11",
|
||||
"clicks": 2340,
|
||||
"conversions": 156,
|
||||
"earnings": 1234.50
|
||||
},
|
||||
{
|
||||
"month": "2025-12",
|
||||
"clicks": 3456,
|
||||
"conversions": 234,
|
||||
"earnings": 1890.60
|
||||
},
|
||||
{
|
||||
"month": "2026-01",
|
||||
"clicks": 1250,
|
||||
"conversions": 89,
|
||||
"earnings": 656.80
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
42
frontend/h5/cypress/fixtures/short-link.json
Normal file
42
frontend/h5/cypress/fixtures/short-link.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"id": "1",
|
||||
"shortCode": "abc123",
|
||||
"shortUrl": "https://mosquito.com/s/abc123",
|
||||
"originalUrl": "https://example.com/landing-page",
|
||||
"campaign": "test-campaign",
|
||||
"totalClicks": 125,
|
||||
"uniqueClicks": 98,
|
||||
"conversions": 9,
|
||||
"conversionRate": 7.2,
|
||||
"createdAt": "2026-01-20T10:00:00Z",
|
||||
"expiresAt": "2026-04-20T10:00:00Z",
|
||||
"status": "ACTIVE",
|
||||
"qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",
|
||||
"statistics": {
|
||||
"daily": [
|
||||
{
|
||||
"date": "2026-01-20",
|
||||
"clicks": 25,
|
||||
"conversions": 2
|
||||
},
|
||||
{
|
||||
"date": "2026-01-21",
|
||||
"clicks": 32,
|
||||
"conversions": 3
|
||||
},
|
||||
{
|
||||
"date": "2026-22",
|
||||
"clicks": 28,
|
||||
"conversions": 2
|
||||
},
|
||||
{
|
||||
"date": "2026-01-23",
|
||||
"clicks": 40,
|
||||
"conversions": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
44
frontend/h5/cypress/fixtures/short-links.json
Normal file
44
frontend/h5/cypress/fixtures/short-links.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": [
|
||||
{
|
||||
"id": "1",
|
||||
"shortCode": "abc123",
|
||||
"shortUrl": "https://mosquito.com/s/abc123",
|
||||
"originalUrl": "https://example.com/landing-page",
|
||||
"campaign": "test-campaign",
|
||||
"totalClicks": 125,
|
||||
"uniqueClicks": 98,
|
||||
"conversions": 9,
|
||||
"conversionRate": 7.2,
|
||||
"createdAt": "2026-01-20T10:00:00Z",
|
||||
"status": "ACTIVE"
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"shortCode": "def456",
|
||||
"shortUrl": "https://mosquito.com/s/def456",
|
||||
"originalUrl": "https://example.com/product-page",
|
||||
"campaign": "product-promo",
|
||||
"totalClicks": 89,
|
||||
"uniqueClicks": 76,
|
||||
"conversions": 5,
|
||||
"conversionRate": 5.6,
|
||||
"createdAt": "2026-01-18T15:30:00Z",
|
||||
"status": "ACTIVE"
|
||||
},
|
||||
{
|
||||
"id": "3",
|
||||
"shortCode": "ghi789",
|
||||
"shortUrl": "https://mosquito.com/s/ghi789",
|
||||
"originalUrl": "https://example.com/special-offer",
|
||||
"campaign": "special-offer",
|
||||
"totalClicks": 234,
|
||||
"uniqueClicks": 198,
|
||||
"conversions": 28,
|
||||
"conversionRate": 12.0,
|
||||
"createdAt": "2026-01-15T09:00:00Z",
|
||||
"status": "ACTIVE"
|
||||
}
|
||||
]
|
||||
}
|
||||
63
frontend/h5/cypress/fixtures/team-stats.json
Normal file
63
frontend/h5/cypress/fixtures/team-stats.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"level1Count": 8,
|
||||
"level2Count": 12,
|
||||
"level3Count": 6,
|
||||
"totalTeamMembers": 26,
|
||||
"totalTeamEarnings": 3456.78,
|
||||
"teamConversionRate": 8.9,
|
||||
"teamGrowthRate": 23.5,
|
||||
"topPerformers": [
|
||||
{
|
||||
"userId": "1",
|
||||
"nickname": "小明",
|
||||
"avatar": "https://api.dicebear.com/7.x/avataaars/svg?seed=user1",
|
||||
"level": 1,
|
||||
"earnings": 456.70,
|
||||
"inviteCount": 12
|
||||
},
|
||||
{
|
||||
"userId": "2",
|
||||
"nickname": "小红",
|
||||
"avatar": "https://api.dicebear.com/7.x/avataaars/svg?seed=user2",
|
||||
"level": 2,
|
||||
"earnings": 234.50,
|
||||
"inviteCount": 8
|
||||
}
|
||||
],
|
||||
"recentJoins": [
|
||||
{
|
||||
"userId": "3",
|
||||
"nickname": "小张",
|
||||
"avatar": "https://api.dicebear.com/7.x/avataaars/svg?seed=user3",
|
||||
"level": 1,
|
||||
"joinedAt": "2026-01-22T14:30:00Z"
|
||||
},
|
||||
{
|
||||
"userId": "4",
|
||||
"nickname": "小李",
|
||||
"avatar": "https://api.dicebear.com/7.x/avataaars/svg?seed/user4",
|
||||
"level": 1,
|
||||
"joinedAt": "2026-01-21T09:15:00Z"
|
||||
}
|
||||
],
|
||||
"levelDistribution": {
|
||||
"level1": {
|
||||
"count": 8,
|
||||
"percentage": 30.8,
|
||||
"earnings": 1234.50
|
||||
},
|
||||
"level2": {
|
||||
"count": 12,
|
||||
"percentage": 46.2,
|
||||
"earnings": 1678.20
|
||||
},
|
||||
"level3": {
|
||||
"count": 6,
|
||||
"percentage": 23.0,
|
||||
"earnings": 544.08
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
95
frontend/h5/cypress/fixtures/trends.json
Normal file
95
frontend/h5/cypress/fixtures/trends.json
Normal file
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"dailyStats": [
|
||||
{
|
||||
"date": "2026-01-20",
|
||||
"clicks": 145,
|
||||
"conversions": 12,
|
||||
"earnings": 65.40,
|
||||
"conversionRate": 8.28
|
||||
},
|
||||
{
|
||||
"date": "2026-01-21",
|
||||
"clicks": 167,
|
||||
"conversions": 14,
|
||||
"earnings": 78.20,
|
||||
"conversionRate": 8.38
|
||||
},
|
||||
{
|
||||
"date": "2026-01-22",
|
||||
"clicks": 189,
|
||||
"conversions": 16,
|
||||
"earnings": 89.50,
|
||||
"conversionRate": 8.47
|
||||
},
|
||||
{
|
||||
"date": "2026-01-23",
|
||||
"clicks": 203,
|
||||
"conversions": 17,
|
||||
"earnings": 96.30,
|
||||
"conversionRate": 8.37
|
||||
}
|
||||
],
|
||||
"weeklyStats": [
|
||||
{
|
||||
"week": "2026-W1",
|
||||
"startDate": "2026-01-04",
|
||||
"endDate": "2026-01-10",
|
||||
"clicks": 892,
|
||||
"conversions": 67,
|
||||
"earnings": 456.70,
|
||||
"conversionRate": 7.51
|
||||
},
|
||||
{
|
||||
"week": "2026-W2",
|
||||
"startDate": "2026-01-11",
|
||||
"endDate": "2026-01-17",
|
||||
"clicks": 1034,
|
||||
"conversions": 78,
|
||||
"earnings": 523.40,
|
||||
"conversionRate": 7.54
|
||||
},
|
||||
{
|
||||
"week": "2026-W3",
|
||||
"startDate": "2026-01-18",
|
||||
"endDate": "2026-01-24",
|
||||
"clicks": 1250,
|
||||
"conversions": 89,
|
||||
"earnings": 656.80,
|
||||
"conversionRate": 7.12
|
||||
}
|
||||
],
|
||||
"monthlyStats": [
|
||||
{
|
||||
"month": "2025-11",
|
||||
"clicks": 2340,
|
||||
"conversions": 156,
|
||||
"earnings": 1234.50,
|
||||
"conversionRate": 6.67
|
||||
},
|
||||
{
|
||||
"month": "2025-12",
|
||||
"clicks": 3456,
|
||||
"conversions": 234,
|
||||
"earnings": 1890.60,
|
||||
"conversionRate": 6.77
|
||||
},
|
||||
{
|
||||
"month": "2026-01",
|
||||
"clicks": 1250,
|
||||
"conversions": 89,
|
||||
"earnings": 656.80,
|
||||
"conversionRate": 7.12
|
||||
}
|
||||
],
|
||||
"trends": {
|
||||
"clickGrowth": 15.6,
|
||||
"conversionGrowth": 8.9,
|
||||
"earningsGrowth": 23.4,
|
||||
"forecastClicks": 1450,
|
||||
"forecastConversions": 98,
|
||||
"forecastEarnings": 780.50
|
||||
}
|
||||
}
|
||||
}
|
||||
17
frontend/h5/cypress/fixtures/user-profile.json
Normal file
17
frontend/h5/cypress/fixtures/user-profile.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"id": "1",
|
||||
"phone": "13800138001",
|
||||
"nickname": "测试用户",
|
||||
"avatar": "https://api.dicebear.com/7.x/avataaars/svg?seed=test",
|
||||
"isNewUser": true,
|
||||
"createdAt": "2026-01-20T10:00:00Z",
|
||||
"lastLoginAt": "2026-01-23T09:30:00Z",
|
||||
"verificationStatus": "VERIFIED",
|
||||
"level": 1,
|
||||
"experience": 150,
|
||||
"totalEarnings": 1256.78,
|
||||
"inviteCount": 15
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user