@qq33357486/oh-my-task 1.4.1 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +8 -8
  2. package/dist/__tests__/auth-register.test.js +8 -45
  3. package/dist/__tests__/auth-register.test.js.map +1 -1
  4. package/dist/__tests__/fix-hcaptcha-dev-bypass.test.js +1 -186
  5. package/dist/__tests__/fix-hcaptcha-dev-bypass.test.js.map +1 -1
  6. package/dist/__tests__/mcp/mcp-tools.test.js +157 -10
  7. package/dist/__tests__/mcp/mcp-tools.test.js.map +1 -1
  8. package/dist/__tests__/schedule.test.js +1 -1
  9. package/dist/__tests__/schedule.test.js.map +1 -1
  10. package/dist/__tests__/tasks-crud.test.js +12 -1
  11. package/dist/__tests__/tasks-crud.test.js.map +1 -1
  12. package/dist/__tests__/tasks-lifecycle.test.js +1 -1
  13. package/dist/__tests__/tasks-lifecycle.test.js.map +1 -1
  14. package/dist/__tests__/versions.test.js +55 -27
  15. package/dist/__tests__/versions.test.js.map +1 -1
  16. package/dist/api/routes/auth.d.ts.map +1 -1
  17. package/dist/api/routes/auth.js +42 -7
  18. package/dist/api/routes/auth.js.map +1 -1
  19. package/dist/api/routes/versions.d.ts.map +1 -1
  20. package/dist/api/routes/versions.js +4 -0
  21. package/dist/api/routes/versions.js.map +1 -1
  22. package/dist/api/server.js +1 -1
  23. package/dist/api/server.js.map +1 -1
  24. package/dist/db/connection.d.ts.map +1 -1
  25. package/dist/db/connection.js +13 -0
  26. package/dist/db/connection.js.map +1 -1
  27. package/dist/mcp/server.js +3 -3
  28. package/dist/mcp/server.js.map +1 -1
  29. package/dist/mcp/tools/activate-task.d.ts.map +1 -1
  30. package/dist/mcp/tools/activate-task.js +7 -1
  31. package/dist/mcp/tools/activate-task.js.map +1 -1
  32. package/dist/mcp/tools/auto-schedule.d.ts.map +1 -1
  33. package/dist/mcp/tools/auto-schedule.js +8 -12
  34. package/dist/mcp/tools/auto-schedule.js.map +1 -1
  35. package/dist/mcp/tools/complete-task.d.ts.map +1 -1
  36. package/dist/mcp/tools/complete-task.js +7 -1
  37. package/dist/mcp/tools/complete-task.js.map +1 -1
  38. package/dist/mcp/tools/create-task.d.ts.map +1 -1
  39. package/dist/mcp/tools/create-task.js +29 -34
  40. package/dist/mcp/tools/create-task.js.map +1 -1
  41. package/dist/mcp/tools/create-version.js +7 -7
  42. package/dist/mcp/tools/create-version.js.map +1 -1
  43. package/dist/mcp/tools/delete-task.d.ts.map +1 -1
  44. package/dist/mcp/tools/delete-task.js +7 -1
  45. package/dist/mcp/tools/delete-task.js.map +1 -1
  46. package/dist/mcp/tools/get-current-task.d.ts.map +1 -1
  47. package/dist/mcp/tools/get-current-task.js +31 -52
  48. package/dist/mcp/tools/get-current-task.js.map +1 -1
  49. package/dist/mcp/tools/get-task.d.ts.map +1 -1
  50. package/dist/mcp/tools/get-task.js +38 -18
  51. package/dist/mcp/tools/get-task.js.map +1 -1
  52. package/dist/mcp/tools/init-project.js +2 -2
  53. package/dist/mcp/tools/init-project.js.map +1 -1
  54. package/dist/mcp/tools/list-tasks.d.ts.map +1 -1
  55. package/dist/mcp/tools/list-tasks.js +115 -28
  56. package/dist/mcp/tools/list-tasks.js.map +1 -1
  57. package/dist/mcp/tools/list-versions.js +2 -2
  58. package/dist/mcp/tools/list-versions.js.map +1 -1
  59. package/dist/mcp/tools/utils/config.js +1 -1
  60. package/dist/mcp/tools/utils/config.js.map +1 -1
  61. package/dist/mcp/tools/utils/task-query.d.ts +16 -0
  62. package/dist/mcp/tools/utils/task-query.d.ts.map +1 -0
  63. package/dist/mcp/tools/utils/task-query.js +120 -0
  64. package/dist/mcp/tools/utils/task-query.js.map +1 -0
  65. package/dist/mcp/tools/utils/version.d.ts +7 -0
  66. package/dist/mcp/tools/utils/version.d.ts.map +1 -0
  67. package/dist/mcp/tools/utils/version.js +34 -0
  68. package/dist/mcp/tools/utils/version.js.map +1 -0
  69. package/dist/services/config.service.js +1 -1
  70. package/dist/services/config.service.js.map +1 -1
  71. package/dist/services/user.service.d.ts +11 -2
  72. package/dist/services/user.service.d.ts.map +1 -1
  73. package/dist/services/user.service.js +43 -5
  74. package/dist/services/user.service.js.map +1 -1
  75. package/dist/services/version.service.d.ts +1 -1
  76. package/dist/services/version.service.d.ts.map +1 -1
  77. package/dist/services/version.service.js +16 -0
  78. package/dist/services/version.service.js.map +1 -1
  79. package/dist/utils/email.d.ts +6 -0
  80. package/dist/utils/email.d.ts.map +1 -0
  81. package/dist/utils/email.js +28 -0
  82. package/dist/utils/email.js.map +1 -0
  83. package/package.json +3 -1
  84. package/src/db/schema.sql +1 -1
package/README.md CHANGED
@@ -19,7 +19,7 @@ AI 驱动的任务管理,支持版本生命周期、智能排期、MCP 集成
19
19
 
20
20
  ```bash
21
21
  docker run -d --name oh-my-task \
22
- -p 3000:3000 \
22
+ -p 17173:17173 \
23
23
  -v oh-my-task-data:/app/data \
24
24
  ghcr.io/qq33357486/oh-my-task:latest
25
25
  ```
@@ -32,7 +32,7 @@ services:
32
32
  image: ghcr.io/qq33357486/oh-my-task:latest
33
33
  container_name: oh-my-task
34
34
  ports:
35
- - "3000:3000"
35
+ - "17173:17173"
36
36
  volumes:
37
37
  - ./data:/app/data
38
38
  environment:
@@ -45,7 +45,7 @@ services:
45
45
  docker compose up -d
46
46
  ```
47
47
 
48
- 访问 http://localhost:3000,首位注册用户自动成为管理员。
48
+ Docker 部署时,访问 http://localhost:17173 打开 Web 界面,首位注册用户自动成为管理员。
49
49
 
50
50
  ### 本地开发
51
51
 
@@ -60,8 +60,8 @@ npm run dev:all
60
60
 
61
61
  | 服务 | 地址 |
62
62
  |------|------|
63
- | 后端 API | http://localhost:3000 |
64
- | 前端界面 | http://localhost:5173 |
63
+ | 后端 API | http://localhost:17173 |
64
+ | 前端界面(本地开发) | http://localhost:5173 |
65
65
 
66
66
  ## 配置 MCP
67
67
 
@@ -80,7 +80,7 @@ oh-my-task 通过**项目名称**来区分不同项目,建议将 MCP 配置在
80
80
  "command": "npx",
81
81
  "args": ["@qq33357486/oh-my-task"],
82
82
  "env": {
83
- "OMT_SERVER_URL": "http://localhost:3000",
83
+ "OMT_SERVER_URL": "http://localhost:17173",
84
84
  "OMT_TOKEN": "你的Token",
85
85
  "OMT_PROJECT_NAME": "当前项目名称"
86
86
  }
@@ -98,7 +98,7 @@ oh-my-task 通过**项目名称**来区分不同项目,建议将 MCP 配置在
98
98
  "command": "npx",
99
99
  "args": ["@qq33357486/oh-my-task"],
100
100
  "env": {
101
- "OMT_SERVER_URL": "http://localhost:3000",
101
+ "OMT_SERVER_URL": "http://localhost:17173",
102
102
  "OMT_TOKEN": "你的Token",
103
103
  "OMT_PROJECT_NAME": "项目名称"
104
104
  }
@@ -191,7 +191,7 @@ oh-my-task 通过**项目名称**来区分不同项目,建议将 MCP 配置在
191
191
  | 变量 | 说明 | 默认值 |
192
192
  |------|------|--------|
193
193
  | `DB_PATH` | SQLite 数据库路径 | `./data/data.db` |
194
- | `OMT_SERVER_URL` | API 地址(MCP 用) | `http://localhost:3000` |
194
+ | `OMT_SERVER_URL` | API 地址(MCP 用) | `http://localhost:17173` |
195
195
  | `OMT_API_KEY` | API 认证密钥 | `omt-admin-key` |
196
196
 
197
197
  ## 更多
@@ -48,7 +48,7 @@ describe('POST /api/auth/register', () => {
48
48
  expect(res.body.success).toBe(true);
49
49
  expect(res.body.data.user.role).toBe('admin');
50
50
  expect(res.body.data.user.email).toBe('admin@test.com');
51
- expect(res.body.data.user.name).toBe('Admin');
51
+ expect(res.body.data.user.name).toBe('admin');
52
52
  // 确保返回的是公开用户信息(不包含密码等)
53
53
  expect(res.body.data.user).not.toHaveProperty('password_hash');
54
54
  expect(res.body.data.user).not.toHaveProperty('reset_token');
@@ -123,23 +123,11 @@ describe('POST /api/auth/register', () => {
123
123
  expect(res4.body.success).toBe(false);
124
124
  expect(res4.body.error).toMatch(/密码/);
125
125
  });
126
- it('VAL-AUTH-005: 提交空邮箱、空用户名时返回 400 错误', async () => {
127
- // 空用户名
128
- const res1 = await request(app)
129
- .post('/api/auth/register')
130
- .send({
131
- name: '',
132
- email: 'emptyname@test.com',
133
- password: 'TestPass123'
134
- });
135
- expect(res1.status).toBe(400);
136
- expect(res1.body.success).toBe(false);
137
- expect(res1.body.error).toMatch(/必填|缺少/);
126
+ it('VAL-AUTH-005: 提交空邮箱、空密码时返回 400 错误', async () => {
138
127
  // 空邮箱
139
128
  const res2 = await request(app)
140
129
  .post('/api/auth/register')
141
130
  .send({
142
- name: 'TestUser',
143
131
  email: '',
144
132
  password: 'TestPass123'
145
133
  });
@@ -150,7 +138,6 @@ describe('POST /api/auth/register', () => {
150
138
  const res3 = await request(app)
151
139
  .post('/api/auth/register')
152
140
  .send({
153
- name: 'TestUser',
154
141
  email: 'emptypass@test.com',
155
142
  password: ''
156
143
  });
@@ -161,7 +148,6 @@ describe('POST /api/auth/register', () => {
161
148
  const res = await request(app)
162
149
  .post('/api/auth/register')
163
150
  .send({
164
- name: 'BadEmail',
165
151
  email: 'notanemail',
166
152
  password: 'TestPass123'
167
153
  });
@@ -264,30 +250,16 @@ describe('GET /api/auth/registration-status', () => {
264
250
  });
265
251
  });
266
252
  describe('POST /api/auth/register — hCaptcha 验证', () => {
267
- it('VAL-AUTH-029: hCaptcha 配置开启时无 captcha token 返回 400', async () => {
268
- // 通过 getDb 单例设置数据库配置(模拟管理员开启 hCaptcha)
269
- const { getDb } = await import('../db/connection.js');
270
- getDb().prepare(`
271
- INSERT OR REPLACE INTO system_config (key, value, updated_at)
272
- VALUES ('hcaptcha_secret_key', 'test-secret-key', CURRENT_TIMESTAMP)
273
- `).run();
253
+ it('VAL-AUTH-029: hCaptcha 已移除,注册不再需要 captcha token', async () => {
274
254
  const res = await request(app)
275
255
  .post('/api/auth/register')
276
256
  .send({
277
- name: 'CaptchaTest',
278
257
  email: 'captcha@test.com',
279
258
  password: 'CaptchaPass123'
280
- // 不提供 captcha_token
259
+ // 不提供 captcha_token,应正常注册成功
281
260
  });
282
- // 应该返回 400(验证码缺失)—— 无论什么环境,只要数据库有 secret 就需要 captcha
283
- expect(res.status).toBe(400);
284
- expect(res.body.success).toBe(false);
285
- expect(res.body.error).toMatch(/验证码/);
286
- // 恢复数据库配置
287
- getDb().prepare(`
288
- INSERT OR REPLACE INTO system_config (key, value, updated_at)
289
- VALUES ('hcaptcha_secret_key', '', CURRENT_TIMESTAMP)
290
- `).run();
261
+ // hCaptcha 已移除,非 production 环境应直接注册成功
262
+ expect([200, 409]).toContain(res.status);
291
263
  });
292
264
  });
293
265
  describe('POST /api/auth/register — 边界情况', () => {
@@ -300,7 +272,6 @@ describe('POST /api/auth/register — 边界情况', () => {
300
272
  const res = await request(app)
301
273
  .post('/api/auth/register')
302
274
  .send({
303
- name: 'UpperCase',
304
275
  email: 'ADMIN@TEST.COM', // 大写版本的已注册邮箱
305
276
  password: 'UpperPass123'
306
277
  });
@@ -310,7 +281,7 @@ describe('POST /api/auth/register — 边界情况', () => {
310
281
  process.env.NODE_ENV = originalNodeEnv;
311
282
  process.env.HCAPTCHA_SECRET = originalSecret;
312
283
  });
313
- it('用户名自动去除前后空格', async () => {
284
+ it('用户名自动取邮箱前缀', async () => {
314
285
  const originalNodeEnv = process.env.NODE_ENV;
315
286
  const originalSecret = process.env.HCAPTCHA_SECRET;
316
287
  delete process.env.HCAPTCHA_SECRET;
@@ -318,17 +289,11 @@ describe('POST /api/auth/register — 边界情况', () => {
318
289
  const res = await request(app)
319
290
  .post('/api/auth/register')
320
291
  .send({
321
- name: ' TrimUser ',
322
292
  email: 'trim@test.com',
323
293
  password: 'TrimPass123'
324
294
  });
325
- // 成功或失败都检查
326
295
  if (res.status === 200) {
327
- expect(res.body.data.user.name).toBe('TrimUser');
328
- }
329
- else {
330
- // 如果失败,确保不是因为名称验证
331
- expect(res.body.success).toBe(false);
296
+ expect(res.body.data.user.name).toBe('trim');
332
297
  }
333
298
  process.env.NODE_ENV = originalNodeEnv;
334
299
  process.env.HCAPTCHA_SECRET = originalSecret;
@@ -341,7 +306,6 @@ describe('POST /api/auth/register — 边界情况', () => {
341
306
  const res = await request(app)
342
307
  .post('/api/auth/register')
343
308
  .send({
344
- name: 'ValidUser',
345
309
  email: 'valid@test.com',
346
310
  password: 'ValidPass123'
347
311
  });
@@ -362,7 +326,6 @@ describe('POST /api/auth/register — 边界情况', () => {
362
326
  const res = await request(app)
363
327
  .post('/api/auth/register')
364
328
  .send({
365
- name: 'AnotherValidUser',
366
329
  email: 'anothervalid@test.com',
367
330
  password: 'AnotherPass123'
368
331
  });
@@ -1 +1 @@
1
- {"version":3,"file":"auth-register.test.js","sourceRoot":"","sources":["../../src/__tests__/auth-register.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-register.test.js","sourceRoot":"","sources":["../../src/__tests__/auth-register.test.ts"],"names":[],"mappings":"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"}
@@ -4,30 +4,19 @@ import { mkdirSync, rmSync, existsSync, readFileSync } from 'fs';
4
4
  import { join } from 'path';
5
5
  import { tmpdir } from 'os';
6
6
  import request from 'supertest';
7
- // 每个测试用唯一的临时目录
8
7
  let TEST_DIR;
9
8
  let TEST_DB_PATH;
10
9
  let app;
11
- // 辅助函数:通过 getDb 设置系统配置(确保单例连接能看到)
12
- async function setConfigViaGetDb(key, value) {
13
- const { getDb } = await import('../db/connection.js');
14
- getDb().prepare(`
15
- INSERT OR REPLACE INTO system_config (key, value, updated_at)
16
- VALUES (?, ?, CURRENT_TIMESTAMP)
17
- `).run(key, value);
18
- }
19
10
  beforeAll(async () => {
20
11
  TEST_DIR = join(tmpdir(), `omt-hcaptcha-fix-test-${Date.now()}`);
21
12
  TEST_DB_PATH = join(TEST_DIR, 'data', 'data.db');
22
13
  mkdirSync(join(TEST_DIR, 'data'), { recursive: true });
23
14
  process.env.DB_PATH = TEST_DB_PATH;
24
- // 初始化数据库
25
15
  const db = new Database(TEST_DB_PATH);
26
16
  db.pragma('journal_mode = WAL');
27
17
  db.pragma('foreign_keys = ON');
28
18
  const schemaSql = readFileSync(join(process.cwd(), 'src', 'db', 'schema.sql'), 'utf-8');
29
19
  db.exec(schemaSql);
30
- // 插入一个 admin 用户以允许注册其他用户
31
20
  const bcrypt = await import('bcrypt');
32
21
  const hash = await bcrypt.default.hash('AdminPass123', 12);
33
22
  db.prepare(`
@@ -35,7 +24,6 @@ beforeAll(async () => {
35
24
  VALUES (?, ?, ?, ?, ?)
36
25
  `).run('admin-1', 'Admin', 'admin@test.com', hash, 'admin');
37
26
  db.close();
38
- // 动态导入 app
39
27
  const serverModule = await import('../api/server.js');
40
28
  app = serverModule.default;
41
29
  });
@@ -46,178 +34,15 @@ afterAll(() => {
46
34
  }
47
35
  }
48
36
  catch {
49
- // Windows may not immediately delete
37
+ // ignore
50
38
  }
51
39
  delete process.env.DB_PATH;
52
40
  });
53
- describe('hCaptcha dev-mode bypass fix', () => {
54
- describe('VAL-AUTH-029: 数据库配置 hcaptcha_secret_key 开启时,开发环境也要求 captcha token', () => {
55
- it('hcaptcha_secret_key 有值时,无 captcha token 的注册返回 400', async () => {
56
- // 通过 getDb 设置配置(确保单例连接能看到)
57
- await setConfigViaGetDb('hcaptcha_secret_key', 'test-secret-key');
58
- await setConfigViaGetDb('hcaptcha_site_key', 'test-site-key');
59
- // 确保 HCAPTCHA_SECRET 环境变量没有设置(开发环境)
60
- const originalSecret = process.env.HCAPTCHA_SECRET;
61
- const originalNodeEnv = process.env.NODE_ENV;
62
- delete process.env.HCAPTCHA_SECRET;
63
- process.env.NODE_ENV = 'development';
64
- const res = await request(app)
65
- .post('/api/auth/register')
66
- .send({
67
- name: 'CaptchaUser',
68
- email: 'captchauser@test.com',
69
- password: 'CaptchaPass123'
70
- // 不提供 captcha_token
71
- });
72
- expect(res.status).toBe(400);
73
- expect(res.body.success).toBe(false);
74
- expect(res.body.error).toMatch(/验证码/);
75
- // 恢复
76
- process.env.HCAPTCHA_SECRET = originalSecret;
77
- process.env.NODE_ENV = originalNodeEnv;
78
- // 清理数据库配置
79
- await setConfigViaGetDb('hcaptcha_secret_key', '');
80
- await setConfigViaGetDb('hcaptcha_site_key', '');
81
- });
82
- it('hcaptcha_secret_key 有值时,无 captcha token 的登录返回 400', async () => {
83
- await setConfigViaGetDb('hcaptcha_secret_key', 'test-secret-key');
84
- await setConfigViaGetDb('hcaptcha_site_key', 'test-site-key');
85
- const originalSecret = process.env.HCAPTCHA_SECRET;
86
- const originalNodeEnv = process.env.NODE_ENV;
87
- delete process.env.HCAPTCHA_SECRET;
88
- process.env.NODE_ENV = 'development';
89
- const res = await request(app)
90
- .post('/api/auth/login')
91
- .send({
92
- email: 'admin@test.com',
93
- password: 'AdminPass123'
94
- // 不提供 captcha_token
95
- });
96
- expect(res.status).toBe(400);
97
- expect(res.body.success).toBe(false);
98
- expect(res.body.error).toMatch(/验证码/);
99
- process.env.HCAPTCHA_SECRET = originalSecret;
100
- process.env.NODE_ENV = originalNodeEnv;
101
- await setConfigViaGetDb('hcaptcha_secret_key', '');
102
- await setConfigViaGetDb('hcaptcha_site_key', '');
103
- });
104
- });
105
- describe('hcaptcha_secret_key 为空时,跳过 captcha 验证', () => {
106
- it('hcaptcha_secret_key 为空时,开发环境注册不需要 captcha token', async () => {
107
- await setConfigViaGetDb('hcaptcha_secret_key', '');
108
- const originalSecret = process.env.HCAPTCHA_SECRET;
109
- delete process.env.HCAPTCHA_SECRET;
110
- const res = await request(app)
111
- .post('/api/auth/register')
112
- .send({
113
- name: 'NoCaptchaUser',
114
- email: `nocaptcha-${Date.now()}@test.com`,
115
- password: 'NoCaptchaPass123'
116
- });
117
- expect(res.status).toBe(200);
118
- expect(res.body.success).toBe(true);
119
- process.env.HCAPTCHA_SECRET = originalSecret;
120
- });
121
- it('hcaptcha_secret_key 为空时,开发环境登录不需要 captcha token', async () => {
122
- await setConfigViaGetDb('hcaptcha_secret_key', '');
123
- const originalSecret = process.env.HCAPTCHA_SECRET;
124
- delete process.env.HCAPTCHA_SECRET;
125
- const res = await request(app)
126
- .post('/api/auth/login')
127
- .send({
128
- email: 'admin@test.com',
129
- password: 'AdminPass123'
130
- });
131
- expect(res.status).toBe(200);
132
- expect(res.body.success).toBe(true);
133
- process.env.HCAPTCHA_SECRET = originalSecret;
134
- });
135
- });
136
- describe('环境变量 HCAPTCHA_SECRET 优先级', () => {
137
- it('HCAPTCHA_SECRET 环境变量设置时,即使数据库无配置也要求 captcha', async () => {
138
- await setConfigViaGetDb('hcaptcha_secret_key', '');
139
- const originalSecret = process.env.HCAPTCHA_SECRET;
140
- process.env.HCAPTCHA_SECRET = 'env-secret-key';
141
- const res = await request(app)
142
- .post('/api/auth/register')
143
- .send({
144
- name: 'EnvCaptchaUser',
145
- email: `envcaptcha-${Date.now()}@test.com`,
146
- password: 'EnvCaptchaPass123'
147
- });
148
- expect(res.status).toBe(400);
149
- expect(res.body.success).toBe(false);
150
- expect(res.body.error).toMatch(/验证码/);
151
- process.env.HCAPTCHA_SECRET = originalSecret;
152
- });
153
- });
154
- describe('生产环境行为', () => {
155
- it('生产环境 + HCAPTCHA_SECRET 环境变量时要求 captcha', async () => {
156
- const originalSecret = process.env.HCAPTCHA_SECRET;
157
- const originalNodeEnv = process.env.NODE_ENV;
158
- process.env.HCAPTCHA_SECRET = 'prod-secret';
159
- process.env.NODE_ENV = 'production';
160
- const res = await request(app)
161
- .post('/api/auth/register')
162
- .send({
163
- name: 'ProdCaptchaUser',
164
- email: `prodcaptcha-${Date.now()}@test.com`,
165
- password: 'ProdCaptchaPass123'
166
- });
167
- expect(res.status).toBe(400);
168
- expect(res.body.success).toBe(false);
169
- expect(res.body.error).toMatch(/验证码/);
170
- process.env.HCAPTCHA_SECRET = originalSecret;
171
- process.env.NODE_ENV = originalNodeEnv;
172
- });
173
- it('生产环境 + 数据库 hcaptcha_secret_key 配置时要求 captcha', async () => {
174
- await setConfigViaGetDb('hcaptcha_secret_key', 'db-secret-key');
175
- const originalSecret = process.env.HCAPTCHA_SECRET;
176
- const originalNodeEnv = process.env.NODE_ENV;
177
- delete process.env.HCAPTCHA_SECRET;
178
- process.env.NODE_ENV = 'production';
179
- const res = await request(app)
180
- .post('/api/auth/register')
181
- .send({
182
- name: 'ProdDbCaptchaUser',
183
- email: `proddbcaptcha-${Date.now()}@test.com`,
184
- password: 'ProdDbCaptchaPass123'
185
- });
186
- expect(res.status).toBe(400);
187
- expect(res.body.success).toBe(false);
188
- expect(res.body.error).toMatch(/验证码/);
189
- process.env.HCAPTCHA_SECRET = originalSecret;
190
- process.env.NODE_ENV = originalNodeEnv;
191
- await setConfigViaGetDb('hcaptcha_secret_key', '');
192
- });
193
- it('生产环境无任何 captcha 配置时跳过验证', async () => {
194
- await setConfigViaGetDb('hcaptcha_secret_key', '');
195
- const originalSecret = process.env.HCAPTCHA_SECRET;
196
- const originalNodeEnv = process.env.NODE_ENV;
197
- delete process.env.HCAPTCHA_SECRET;
198
- process.env.NODE_ENV = 'production';
199
- const res = await request(app)
200
- .post('/api/auth/register')
201
- .send({
202
- name: 'ProdNoCaptchaUser',
203
- email: `prodnocaptcha-${Date.now()}@test.com`,
204
- password: 'ProdNoCaptchaPass123'
205
- });
206
- // 无 captcha 配置时,无论环境都应该跳过验证
207
- // 注册应该成功(除非邮箱已存在)
208
- expect([200, 409]).toContain(res.status);
209
- process.env.HCAPTCHA_SECRET = originalSecret;
210
- process.env.NODE_ENV = originalNodeEnv;
211
- });
212
- });
213
- });
214
41
  describe('Token masking 格式修复', () => {
215
42
  it('maskToken 返回 omt_***abc 格式(前4位 + *** + 后3位)', async () => {
216
43
  const { maskToken } = await import('../services/token.service.js');
217
- // 正常长度的 token
218
44
  const token = 'omt_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6';
219
45
  const masked = maskToken(token);
220
- // 格式应为 omt_***5d6 (前4位 omt_ + *** + 后3位 5d6)
221
46
  expect(masked).toMatch(/^omt_\*{3}[a-f0-9]{3}$/);
222
47
  expect(masked).toBe('omt_***5d6');
223
48
  });
@@ -228,11 +53,6 @@ describe('Token masking 格式修复', () => {
228
53
  expect(maskToken('omt_ab')).toBe('****');
229
54
  });
230
55
  it('GET /api/tokens 返回的 token 格式为 omt_***abc', async () => {
231
- // 确保 captcha 关闭以便登录
232
- await setConfigViaGetDb('hcaptcha_secret_key', '');
233
- const originalSecret = process.env.HCAPTCHA_SECRET;
234
- delete process.env.HCAPTCHA_SECRET;
235
- // 登录获取 session
236
56
  const loginRes = await request(app)
237
57
  .post('/api/auth/login')
238
58
  .send({ email: 'admin@test.com', password: 'AdminPass123' });
@@ -246,25 +66,20 @@ describe('Token masking 格式修复', () => {
246
66
  cookie = setCookie.split(';')[0];
247
67
  }
248
68
  else {
249
- process.env.HCAPTCHA_SECRET = originalSecret;
250
69
  throw new Error('No set-cookie header in login response');
251
70
  }
252
- // 创建 token
253
71
  const createRes = await request(app)
254
72
  .post('/api/tokens')
255
73
  .set('Cookie', cookie)
256
74
  .send({ name: 'mask-test' });
257
75
  expect(createRes.status).toBe(201);
258
- // 列出 token
259
76
  const listRes = await request(app)
260
77
  .get('/api/tokens')
261
78
  .set('Cookie', cookie);
262
79
  expect(listRes.status).toBe(200);
263
80
  const tokenItem = listRes.body.data.tokens.find((t) => t.name === 'mask-test');
264
81
  expect(tokenItem).toBeDefined();
265
- // 新格式:omt_***abc
266
82
  expect(tokenItem.token).toMatch(/^omt_\*{3}[a-f0-9]{3}$/);
267
- process.env.HCAPTCHA_SECRET = originalSecret;
268
83
  });
269
84
  });
270
85
  //# sourceMappingURL=fix-hcaptcha-dev-bypass.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix-hcaptcha-dev-bypass.test.js","sourceRoot":"","sources":["../../src/__tests__/fix-hcaptcha-dev-bypass.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix-hcaptcha-dev-bypass.test.js","sourceRoot":"","sources":["../../src/__tests__/fix-hcaptcha-dev-bypass.test.ts"],"names":[],"mappings":"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"}