Codex Assistant
21 小时以前 58d9f460b2f8c34430285115e2557d18333c5cab
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
const axios = require('axios');
 
// 使用与成功测试相同的配置
const BASE_URL = 'http://localhost:8080/api/graphql';
 
async function testSaveUserInfoWithoutPhone() {
  console.log('测试保存没有电话号码的用户信息...');
  
  // 使用有效的token(从之前的成功测试中获取)
  const token = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiItODMzNDg4IiwicGhvbmUiOiJvZ3h4QTEtS3JTVlRkcUk5VDF1YUIxQlF3UEdVIiwiaWF0IjoxNzU5ODQwNDc2LCJleHAiOjE3NTk5MjY4NzZ9.vyGAs6TWqgHN1KRAJbTp7xMdRSh0CIy7rrbE6TqS6i0';
  console.log('使用Token:', token.substring(0, 50) + '...');
 
  // 测试保存没有电话号码的用户信息
  const mutation = `
mutation {
  saveUserInfo(input: {
    name: "测试用户无电话"
    avatar: "https://example.com/avatar.jpg"
    gender: "male"
    birthday: "1990-01-01"
  }) {
    id
    name
    phone
    avatar
    gender
    birthday
  }
}`;
 
  const requestData = {
    query: mutation
  };
 
  console.log('发送GraphQL请求测试saveUserInfo(无电话号码)...');
  console.log('请求数据:', JSON.stringify(requestData));
 
  try {
    const response = await axios.post(BASE_URL, requestData, {
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${token}`
      }
    });
 
    console.log('响应状态码:', response.status);
    console.log('响应内容:', JSON.stringify(response.data));
 
    if (response.data.errors) {
      console.log('✅ 预期的错误:', response.data.errors);
    } else if (response.data.data && response.data.data.saveUserInfo) {
      console.log('❌ 意外成功: 应该拒绝没有电话号码的保存请求');
      console.log('保存的用户信息:', response.data.data.saveUserInfo);
    }
  } catch (error) {
    console.log('请求失败:', error.response?.data || error.message);
    if (error.response?.data?.errors) {
      console.log('✅ 预期的错误:', error.response.data.errors);
    }
  }
}
 
testSaveUserInfoWithoutPhone();