Skip to content

Commit c2f7d72

Browse files
committed
feat: add core and utils unit tests
1 parent 2229fe0 commit c2f7d72

39 files changed

Lines changed: 13916 additions & 146 deletions

.kiro/specs/vitest-unit-testing/tasks.md

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -26,86 +26,86 @@
2626

2727
## 任务 3: 工具函数单元测试
2828

29-
- [ ] 3.1 编写 `call-site.ts` 测试
29+
- [x] 3.1 编写 `call-site.ts` 测试
3030

3131
- 测试 `CallSite` 类的所有方法
3232
- 迁移现有测试到新框架
3333

34-
- [ ] 3.2 编写 `stack.ts` 测试
34+
- [x] 3.2 编写 `stack.ts` 测试
3535

3636
- 测试 `getStackFrames` 函数
3737
- 测试 `initiatorStackPipe` 函数
3838
- 迁移现有测试到新框架
3939

40-
- [ ] 3.3 编写 `header.ts` 测试
40+
- [x] 3.3 编写 `header.ts` 测试
4141

4242
- 测试所有头部处理函数
4343
- 测试边界情况
4444

45-
- [ ] 3.4 编写 `json.ts` 测试
45+
- [x] 3.4 编写 `json.ts` 测试
4646

4747
- 测试 `jsonParse` 函数
4848
- 测试有效/无效 JSON 输入
4949

50-
- [ ] 3.5 编写 `map.ts` 测试
50+
- [x] 3.5 编写 `map.ts` 测试
5151

5252
- 测试 `headersToObject` 函数
5353
- 测试各种 Headers 输入
5454

55-
- [ ] 3.6 编写 `generate.ts` 测试
55+
- [x] 3.6 编写 `generate.ts` 测试
5656

5757
- 测试 `generateUUID` 函数唯一性
5858
- 测试 `generateHash` 函数一致性
5959

60-
- [ ] 3.7 编写 `file.ts` 测试
60+
- [x] 3.7 编写 `file.ts` 测试
6161

6262
- 测试 `unlinkSafe` 函数
6363
- 测试文件不存在时的静默处理
6464

65-
- [ ] 3.8 编写 `process.ts` 测试
65+
- [x] 3.8 编写 `process.ts` 测试
6666

6767
- 测试 `sleep` 函数
6868
- 测试 `checkMainProcessAlive` 函数
6969

70-
- [ ] 3.9 编写 `common.ts` 测试
70+
- [x] 3.9 编写 `common.ts` 测试
7171
- 测试 `RequestDetail`
7272
- 迁移现有测试到新框架
7373

7474
## 任务 4: 主线程代码单元测试
7575

76-
- [ ] 4.1 编写 `core/index.ts` 测试
76+
- [x] 4.1 编写 `core/index.ts` 测试
7777

7878
- 测试 `register` 函数
7979
- 测试请求拦截注册流程
8080

81-
- [ ] 4.2 编写 `core/fetch.ts` 测试
81+
- [x] 4.2 编写 `core/fetch.ts` 测试
8282

8383
- 测试 `proxyFetch` 函数
8484
- 测试 `fetchProxyFactory` 函数
8585

86-
- [ ] 4.3 编写 `core/request.ts` 测试
86+
- [x] 4.3 编写 `core/request.ts` 测试
8787

8888
- 测试 `requestProxyFactory` 函数
8989
- 测试 HTTP/HTTPS 请求代理
9090

91-
- [ ] 4.4 编写 `core/fork.ts` 测试
91+
- [x] 4.4 编写 `core/fork.ts` 测试
9292

9393
- 测试 `MainProcess`
9494
- 测试子进程通信
9595

96-
- [ ] 4.5 编写 `core/undici.ts` 测试
96+
- [x] 4.5 编写 `core/undici.ts` 测试
9797

9898
- 测试 `undiciFetchProxy` 函数
9999
- 测试 undici fetch 拦截
100100

101-
- [ ] 4.6 编写 `core/hooks/` 测试
101+
- [x] 4.6 编写 `core/hooks/` 测试
102102

103103
- 测试 `cell.ts` 中的 Cell 类
104104
- 测试 `useAbortRequest.ts`
105105
- 测试 `useRegisterRequest.ts`
106106
- 测试 `useRequestPipe.ts`
107107

108-
- [ ] 4.7 编写 `core/ws/` 测试
108+
- [x] 4.7 编写 `core/ws/` 测试
109109
- 测试 `buffer-util.ts`
110110
- 测试 `constants.ts`
111111
- 测试 `limiter.ts`
@@ -115,116 +115,116 @@
115115

116116
## 任务 5: 子线程代码单元测试
117117

118-
- [ ] 5.1 编写 `fork/request-center.ts` 测试
118+
- [x] 5.1 编写 `fork/request-center.ts` 测试
119119

120120
- 测试 `RequestCenter`
121121
- 测试插件加载和消息分发
122122

123-
- [ ] 5.2 编写 `fork/resource-service.ts` 测试
123+
- [x] 5.2 编写 `fork/resource-service.ts` 测试
124124

125125
- 测试 `ResourceService`
126126
- 测试 `ScriptMap`
127127

128-
- [ ] 5.3 编写 `fork/devtool/` 测试
128+
- [x] 5.3 编写 `fork/devtool/` 测试
129129

130130
- 测试 `DevtoolServer`
131131
- 测试 `BaseDevtoolServer`
132132

133-
- [ ] 5.4 编写 `fork/module/` 测试
133+
- [x] 5.4 编写 `fork/module/` 测试
134134

135135
- 测试 `common.ts` 中的插件工具
136136
- 测试 `health` 插件
137137
- 测试 `network` 插件
138138
- 测试 `debugger` 插件
139139
- 测试 `websocket` 插件
140140

141-
- [ ] 5.5 编写 `fork/pipe/` 测试
141+
- [x] 5.5 编写 `fork/pipe/` 测试
142142
- 测试 `BodyTransformer`
143143
- 测试 `RequestHeaderPipe`
144144

145145
## 任务 6: CDP 协议正确性测试
146146

147-
- [ ] 6.1 编写 HTTP 请求生命周期顺序测试
147+
- [x] 6.1 编写 HTTP 请求生命周期顺序测试
148148

149149
- 验证 `Network.requestWillBeSent``Network.responseReceived``Network.dataReceived``Network.loadingFinished` 顺序
150150
- 使用属性测试验证任意请求的消息顺序
151151

152-
- [ ] 6.2 编写 WebSocket 生命周期顺序测试
152+
- [x] 6.2 编写 WebSocket 生命周期顺序测试
153153

154154
- 验证 WebSocket 相关 CDP 消息的正确顺序
155155
- 测试握手、帧传输、关闭的完整流程
156156

157-
- [ ] 6.3 编写 requestId 一致性测试
157+
- [x] 6.3 编写 requestId 一致性测试
158158

159159
- 验证同一请求的所有消息中 requestId 一致
160160
- 验证 requestId 全局唯一性
161161

162-
- [ ] 6.4 编写 timestamp 单调递增测试
162+
- [x] 6.4 编写 timestamp 单调递增测试
163163

164164
- 验证同一请求的消息序列中 timestamp 单调递增
165165
- 使用属性测试验证任意消息序列
166166

167-
- [ ] 6.5 编写 Debugger 消息正确性测试
167+
- [x] 6.5 编写 Debugger 消息正确性测试
168168

169169
- 验证 `Debugger.scriptParsed` 消息格式
170170
- 验证 `Debugger.getScriptSource` 响应正确性
171171

172-
- [ ] 6.6 编写 CDP 响应格式测试
172+
- [x] 6.6 编写 CDP 响应格式测试
173173

174174
- 验证带 id 的请求响应包含相同 id
175175
- 验证 result/error 字段格式
176176

177-
- [ ] 6.7 编写 initiator 调用栈测试
177+
- [x] 6.7 编写 initiator 调用栈测试
178178
- 验证 callFrames 包含有效位置信息
179179
- 验证 scriptId 正确关联
180180

181181
## 任务 7: 属性测试实现
182182

183-
- [ ] 7.1 实现 Property 7: JSON 解析往返一致性
183+
- [x] 7.1 实现 Property 7: JSON 解析往返一致性
184184

185185
- 使用 fast-check 生成任意有效 JSON
186186
- 验证解析后再序列化的等价性
187187

188-
- [ ] 7.2 实现 Property 8: Headers 转换完整性
188+
- [x] 7.2 实现 Property 8: Headers 转换完整性
189189

190190
- 使用 fast-check 生成任意 Headers
191191
- 验证转换后包含所有原始键值对
192192

193-
- [ ] 7.3 实现 Property 9: UUID 唯一性
193+
- [x] 7.3 实现 Property 9: UUID 唯一性
194194

195195
- 生成大量 UUID 验证唯一性
196196
- 使用属性测试验证
197197

198-
- [ ] 7.4 实现 Property 10: Hash 一致性
198+
- [x] 7.4 实现 Property 10: Hash 一致性
199199

200200
- 验证相同输入产生相同 hash
201201
- 验证不同输入产生不同 hash
202202

203-
- [ ] 7.5 实现 Property 11: RequestHeaderPipe 大小写不敏感
203+
- [x] 7.5 实现 Property 11: RequestHeaderPipe 大小写不敏感
204204

205205
- 使用 fast-check 生成任意头部名称
206206
- 验证大小写不敏感查询
207207

208-
- [ ] 7.6 实现 Property 13-19: CDP 协议属性测试
208+
- [x] 7.6 实现 Property 13-19: CDP 协议属性测试
209209
- 实现 HTTP 请求生命周期消息顺序属性测试
210210
- 实现 WebSocket 生命周期消息顺序属性测试
211211
- 实现 requestId 一致性属性测试
212212
- 实现 timestamp 单调递增属性测试
213213

214214
## 任务 8: 覆盖率验证和文档
215215

216-
- [ ] 8.1 运行完整测试套件
216+
- [x] 8.1 运行完整测试套件
217217

218218
- 执行所有测试
219219
- 生成覆盖率报告
220220

221-
- [ ] 8.2 验证 100% 覆盖率
221+
- [x] 8.2 验证 100% 覆盖率
222222

223223
- 检查 src/core/ 覆盖率
224224
- 检查 src/fork/ 覆盖率
225225
- 检查 src/utils/ 覆盖率
226226
- 检查 src/common.ts 覆盖率
227227

228-
- [ ] 8.3 补充缺失的测试
228+
- [x] 8.3 补充缺失的测试
229229
- 根据覆盖率报告补充测试
230230
- 确保所有分支都被覆盖

0 commit comments

Comments
 (0)