const axios = require('axios');
|
|
const graphqlUrl = 'http://localhost:8080/api/graphql';
|
|
// 使用之前成功获取的token(这里需要用户提供一个有效的token)
|
// 或者我们可以从之前的测试中获取
|
const TEST_TOKEN = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNTIiLCJwaG9uZSI6IjEzOTgxOTcwODE2Iiwid3hPcGVuaWQiOiJ0ZXN0LW9wZW5pZC0xNTIiLCJpYXQiOjE3MzU2MzE0NzQsImV4cCI6MTczNjIzNjI3NH0.Ej_Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7E'; // 示例token,需要替换为实际有效的token
|
|
async function testReviewFixWithToken() {
|
try {
|
console.log('=== 使用现有Token验证评审功能修复 ===\n');
|
|
const headers = {
|
'Authorization': `Bearer ${TEST_TOKEN}`,
|
'Content-Type': 'application/json'
|
};
|
|
// 1. 测试未评审项目查询 (对应 currentTab = 0)
|
console.log('1. 测试未评审项目查询 (currentTab = 0)...');
|
const unReviewedQuery = `
|
query GetUnReviewedProjects($page: Int!, $pageSize: Int!, $searchKeyword: String) {
|
unReviewedProjects(page: $page, pageSize: $pageSize, searchKeyword: $searchKeyword) {
|
items {
|
id
|
projectName
|
activityName
|
stageName
|
studentName
|
submitTime
|
status
|
}
|
total
|
hasMore
|
}
|
}
|
`;
|
|
try {
|
const unReviewedResponse = await axios.post(graphqlUrl, {
|
query: unReviewedQuery,
|
variables: {
|
page: 1,
|
pageSize: 10,
|
searchKeyword: null
|
}
|
}, { headers });
|
|
if (unReviewedResponse.data.errors) {
|
console.error('❌ 未评审项目查询失败:', unReviewedResponse.data.errors);
|
} else {
|
console.log('✅ 未评审项目查询成功');
|
console.log('项目数量:', unReviewedResponse.data.data.unReviewedProjects.total);
|
console.log('是否有更多:', unReviewedResponse.data.data.unReviewedProjects.hasMore);
|
}
|
} catch (error) {
|
console.error('❌ 未评审项目查询请求失败:', error.response?.data || error.message);
|
}
|
|
// 2. 测试已评审项目查询 (对应 currentTab = 1)
|
console.log('\n2. 测试已评审项目查询 (currentTab = 1)...');
|
const reviewedQuery = `
|
query GetReviewedProjects($page: Int!, $pageSize: Int!, $searchKeyword: String) {
|
reviewedProjects(page: $page, pageSize: $pageSize, searchKeyword: $searchKeyword) {
|
items {
|
id
|
projectName
|
activityName
|
stageName
|
studentName
|
submitTime
|
reviewTime
|
score
|
status
|
}
|
total
|
hasMore
|
}
|
}
|
`;
|
|
try {
|
const reviewedResponse = await axios.post(graphqlUrl, {
|
query: reviewedQuery,
|
variables: {
|
page: 1,
|
pageSize: 10,
|
searchKeyword: null
|
}
|
}, { headers });
|
|
if (reviewedResponse.data.errors) {
|
console.error('❌ 已评审项目查询失败:', reviewedResponse.data.errors);
|
} else {
|
console.log('✅ 已评审项目查询成功');
|
console.log('项目数量:', reviewedResponse.data.data.reviewedProjects.total);
|
console.log('是否有更多:', reviewedResponse.data.data.reviewedProjects.hasMore);
|
}
|
} catch (error) {
|
console.error('❌ 已评审项目查询请求失败:', error.response?.data || error.message);
|
}
|
|
// 3. 测试学员未评审项目查询 (对应 currentTab = 2)
|
console.log('\n3. 测试学员未评审项目查询 (currentTab = 2)...');
|
const studentUnReviewedQuery = `
|
query GetStudentUnReviewedProjects($page: Int!, $pageSize: Int!, $searchKeyword: String) {
|
studentUnReviewedProjects(page: $page, pageSize: $pageSize, searchKeyword: $searchKeyword) {
|
items {
|
id
|
projectName
|
activityName
|
stageName
|
studentName
|
submitTime
|
status
|
}
|
total
|
hasMore
|
}
|
}
|
`;
|
|
try {
|
const studentUnReviewedResponse = await axios.post(graphqlUrl, {
|
query: studentUnReviewedQuery,
|
variables: {
|
page: 1,
|
pageSize: 10,
|
searchKeyword: null
|
}
|
}, { headers });
|
|
if (studentUnReviewedResponse.data.errors) {
|
console.error('❌ 学员未评审项目查询失败:', studentUnReviewedResponse.data.errors);
|
} else {
|
console.log('✅ 学员未评审项目查询成功');
|
console.log('项目数量:', studentUnReviewedResponse.data.data.studentUnReviewedProjects.total);
|
console.log('是否有更多:', studentUnReviewedResponse.data.data.studentUnReviewedProjects.hasMore);
|
}
|
} catch (error) {
|
console.error('❌ 学员未评审项目查询请求失败:', error.response?.data || error.message);
|
}
|
|
// 4. 测试评审统计查询
|
console.log('\n4. 测试评审统计查询...');
|
const statisticsQuery = `
|
query GetReviewStatistics {
|
reviewStatistics {
|
unReviewedCount
|
reviewedCount
|
studentUnReviewedCount
|
}
|
}
|
`;
|
|
try {
|
const statisticsResponse = await axios.post(graphqlUrl, {
|
query: statisticsQuery
|
}, { headers });
|
|
if (statisticsResponse.data.errors) {
|
console.error('❌ 评审统计查询失败:', statisticsResponse.data.errors);
|
} else {
|
console.log('✅ 评审统计查询成功');
|
const stats = statisticsResponse.data.data.reviewStatistics;
|
console.log('未评审数量:', stats.unReviewedCount);
|
console.log('已评审数量:', stats.reviewedCount);
|
console.log('学员未评审数量:', stats.studentUnReviewedCount);
|
}
|
} catch (error) {
|
console.error('❌ 评审统计查询请求失败:', error.response?.data || error.message);
|
}
|
|
console.log('\n=== 验证总结 ===');
|
console.log('✅ 修复内容:');
|
console.log(' 1. Switch语句数字字符串转换问题 - 已修复');
|
console.log(' - switchTab方法中添加了parseInt()转换');
|
console.log(' - switch语句中添加了parseInt()确保数字比较');
|
console.log(' - dataKey判断中添加了parseInt()转换');
|
console.log(' 2. GraphQL查询参数空字符串问题 - 已修复');
|
console.log(' - 添加了default case处理无效的currentTab值');
|
console.log(' - 添加了query为空时的错误检查和返回');
|
console.log(' 3. 所有GraphQL查询都有完整的query字符串');
|
|
} catch (error) {
|
console.error('❌ 测试过程中发生错误:', error.message);
|
}
|
}
|
|
// 如果没有有效token,显示说明
|
console.log('注意:此脚本需要有效的JWT token才能完整测试。');
|
console.log('如果您有有效的token,请替换TEST_TOKEN变量的值。');
|
console.log('或者提供新的微信code来获取token。\n');
|
|
testReviewFixWithToken();
|