lrj
昨天 9f8395fab13ca4b230a0f7d62636e209745c91d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// 测试报名API的脚本
const axios = require('axios');
 
const API_URL = 'http://localhost:8080/api/graphql';
 
// 测试获取活动列表
async function testGetActivities() {
    console.log('🔍 测试获取活动列表...');
    try {
        const response = await axios.post(API_URL, {
            query: `
                query {
                    allActivities {
                        id
                        name
                        signupDeadline
                        state
                    }
                }
            `
        }, {
            headers: {
                'Content-Type': 'application/json'
            }
        });
        
        console.log('✅ 活动列表获取成功:');
        console.log(JSON.stringify(response.data, null, 2));
        return response.data.data.allActivities;
    } catch (error) {
        console.error('❌ 获取活动列表失败:', error.response?.data || error.message);
        return [];
    }
}
 
// 测试报名API
async function testRegistration(activityId) {
    console.log(`🚀 测试报名API (活动ID: ${activityId})...`);
    try {
        const response = await axios.post(API_URL, {
            query: `
                mutation {
                    submitActivityRegistration(input: {
                        activityId: "${activityId}",
                        playerInfo: {
                            name: "测试学员${Date.now()}",
                            phone: "138${String(Date.now()).slice(-8)}",
                            gender: 1,
                            education: "本科",
                            introduction: "这是一个测试报名",
                            description: "测试描述"
                        },
                        regionId: "1",
                        description: "测试报名描述",
                        mediaFiles: []
                    }) {
                        success
                        message
                        registrationId
                    }
                }
            `
        }, {
            headers: {
                'Content-Type': 'application/json'
            }
        });
        
        console.log('✅ 报名API调用成功:');
        console.log(JSON.stringify(response.data, null, 2));
        return response.data.data.submitActivityRegistration;
    } catch (error) {
        console.error('❌ 报名API调用失败:', error.response?.data || error.message);
        return null;
    }
}
 
// 主测试函数
async function runTests() {
    console.log('🎯 开始测试报名API功能...\n');
    
    // 1. 获取活动列表
    const activities = await testGetActivities();
    console.log('\n' + '='.repeat(50) + '\n');
    
    if (activities.length === 0) {
        console.log('⚠️  没有找到可用的活动,无法测试报名功能');
        return;
    }
    
    // 2. 使用第一个活动进行报名测试
    const firstActivity = activities[0];
    console.log(`📝 使用活动 "${firstActivity.name}" (ID: ${firstActivity.id}) 进行报名测试`);
    
    const registrationResult = await testRegistration(firstActivity.id);
    console.log('\n' + '='.repeat(50) + '\n');
    
    if (registrationResult && registrationResult.success) {
        console.log('🎉 报名功能测试成功!');
        console.log(`📋 报名ID: ${registrationResult.registrationId}`);
    } else {
        console.log('❌ 报名功能测试失败');
        if (registrationResult && registrationResult.message) {
            console.log(`错误信息: ${registrationResult.message}`);
        }
    }
}
 
// 运行测试
runTests().catch(console.error);