@gravito/zenith 0.1.0-beta.1
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.
- package/ARCHITECTURE.md +88 -0
- package/BATCH_OPERATIONS_IMPLEMENTATION.md +159 -0
- package/DEMO.md +156 -0
- package/DEPLOYMENT.md +157 -0
- package/DOCS_INTERNAL.md +73 -0
- package/Dockerfile +46 -0
- package/Dockerfile.demo-worker +29 -0
- package/EVOLUTION_BLUEPRINT.md +112 -0
- package/JOBINSPECTOR_SCROLL_FIX.md +152 -0
- package/PULSE_IMPLEMENTATION_PLAN.md +111 -0
- package/QUICK_TEST_GUIDE.md +72 -0
- package/README.md +33 -0
- package/ROADMAP.md +85 -0
- package/TESTING_BATCH_OPERATIONS.md +252 -0
- package/bin/flux-console.ts +2 -0
- package/dist/bin.js +108196 -0
- package/dist/client/assets/index-DGYEwTDL.css +1 -0
- package/dist/client/assets/index-oyTdySX0.js +421 -0
- package/dist/client/index.html +13 -0
- package/dist/server/index.js +108191 -0
- package/docker-compose.yml +40 -0
- package/docs/integrations/LARAVEL.md +207 -0
- package/package.json +50 -0
- package/postcss.config.js +6 -0
- package/scripts/flood-logs.ts +21 -0
- package/scripts/seed.ts +213 -0
- package/scripts/verify-throttle.ts +45 -0
- package/scripts/worker.ts +123 -0
- package/src/bin.ts +6 -0
- package/src/client/App.tsx +70 -0
- package/src/client/Layout.tsx +644 -0
- package/src/client/Sidebar.tsx +102 -0
- package/src/client/ThroughputChart.tsx +135 -0
- package/src/client/WorkerStatus.tsx +170 -0
- package/src/client/components/ConfirmDialog.tsx +103 -0
- package/src/client/components/JobInspector.tsx +524 -0
- package/src/client/components/LogArchiveModal.tsx +383 -0
- package/src/client/components/NotificationBell.tsx +203 -0
- package/src/client/components/Toaster.tsx +80 -0
- package/src/client/components/UserProfileDropdown.tsx +177 -0
- package/src/client/contexts/AuthContext.tsx +93 -0
- package/src/client/contexts/NotificationContext.tsx +103 -0
- package/src/client/index.css +174 -0
- package/src/client/index.html +12 -0
- package/src/client/main.tsx +15 -0
- package/src/client/pages/LoginPage.tsx +153 -0
- package/src/client/pages/MetricsPage.tsx +408 -0
- package/src/client/pages/OverviewPage.tsx +511 -0
- package/src/client/pages/QueuesPage.tsx +372 -0
- package/src/client/pages/SchedulesPage.tsx +531 -0
- package/src/client/pages/SettingsPage.tsx +449 -0
- package/src/client/pages/WorkersPage.tsx +316 -0
- package/src/client/pages/index.ts +7 -0
- package/src/client/utils.ts +6 -0
- package/src/server/index.ts +556 -0
- package/src/server/middleware/auth.ts +127 -0
- package/src/server/services/AlertService.ts +160 -0
- package/src/server/services/QueueService.ts +828 -0
- package/tailwind.config.js +73 -0
- package/tests/placeholder.test.ts +7 -0
- package/tsconfig.json +38 -0
- package/tsconfig.node.json +12 -0
- package/vite.config.ts +27 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
# 批次處理功能測試指南
|
|
2
|
+
|
|
3
|
+
## 🎯 測試目標
|
|
4
|
+
|
|
5
|
+
驗證以下批次處理功能:
|
|
6
|
+
1. ✅ 多選核取方塊
|
|
7
|
+
2. ✅ 批次刪除選中的工作
|
|
8
|
+
3. ✅ 批次重試選中的工作
|
|
9
|
+
4. ✅ 刪除所有匹配的工作
|
|
10
|
+
5. ✅ 重試所有匹配的工作
|
|
11
|
+
6. ✅ 鍵盤快捷鍵
|
|
12
|
+
7. ✅ 確認對話框
|
|
13
|
+
8. ✅ 載入狀態
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 🚀 快速開始
|
|
18
|
+
|
|
19
|
+
### 1. 啟動服務
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# 終端機 1: 啟動 Flux Console 後端
|
|
23
|
+
cd packages/flux-console
|
|
24
|
+
bun run dev:server
|
|
25
|
+
|
|
26
|
+
# 終端機 2: 啟動 Flux Console 前端
|
|
27
|
+
cd packages/flux-console
|
|
28
|
+
bun run dev:client
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 2. 創建測試資料
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 終端機 3: 創建測試工作
|
|
35
|
+
cd packages/flux-console
|
|
36
|
+
bun scripts/test-batch-operations.ts create
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
這會創建:
|
|
40
|
+
- **test-batch**: 100 個正常工作
|
|
41
|
+
- **test-batch-fail**: 50 個會失敗的工作
|
|
42
|
+
- **test-batch-delayed**: 30 個延遲工作
|
|
43
|
+
|
|
44
|
+
### 3. 模擬失敗
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
bun scripts/test-batch-operations.ts fail
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
這會在 `test-batch-fail` 佇列中創建 25 個失敗的工作。
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 📋 測試案例
|
|
55
|
+
|
|
56
|
+
### 測試案例 1: 多選與批次刪除
|
|
57
|
+
|
|
58
|
+
**步驟:**
|
|
59
|
+
1. 打開瀏覽器訪問 `http://localhost:3000`
|
|
60
|
+
2. 點擊 "Processing Queues" 頁面
|
|
61
|
+
3. 找到 `test-batch` 佇列,點擊 "Inspect"
|
|
62
|
+
4. 勾選 5-10 個工作的核取方塊
|
|
63
|
+
5. 觀察右上角顯示 "X items selected"
|
|
64
|
+
6. 點擊紅色 "Delete Selected" 按鈕
|
|
65
|
+
7. 確認對話框出現,顯示工作數量
|
|
66
|
+
8. 點擊 "Confirm"
|
|
67
|
+
9. 觀察載入轉圈動畫
|
|
68
|
+
10. 確認工作被刪除,列表更新
|
|
69
|
+
|
|
70
|
+
**預期結果:**
|
|
71
|
+
- ✅ 核取方塊可以正常選擇
|
|
72
|
+
- ✅ 選中的工作有藍色光環高亮
|
|
73
|
+
- ✅ 顯示選中數量
|
|
74
|
+
- ✅ 確認對話框顯示正確訊息
|
|
75
|
+
- ✅ 刪除後列表自動更新
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### 測試案例 2: 全選當前頁面
|
|
80
|
+
|
|
81
|
+
**步驟:**
|
|
82
|
+
1. 在 `test-batch` 佇列檢查器中
|
|
83
|
+
2. 點擊 "Select All (Page)" 核取方塊
|
|
84
|
+
3. 觀察所有可見工作被選中
|
|
85
|
+
4. 再次點擊取消全選
|
|
86
|
+
5. 使用鍵盤快捷鍵 **Ctrl+A** (Mac: Cmd+A)
|
|
87
|
+
6. 觀察所有工作再次被選中
|
|
88
|
+
|
|
89
|
+
**預期結果:**
|
|
90
|
+
- ✅ 全選核取方塊正常運作
|
|
91
|
+
- ✅ 鍵盤快捷鍵 Ctrl+A 正常運作
|
|
92
|
+
- ✅ 顯示 "50 of 100 total" (如果有分頁)
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 測試案例 3: 刪除所有匹配的工作
|
|
97
|
+
|
|
98
|
+
**步驟:**
|
|
99
|
+
1. 在 `test-batch` 佇列檢查器中
|
|
100
|
+
2. 觀察琥珀色警告橫幅顯示 "Showing 50 of 100 total waiting jobs"
|
|
101
|
+
3. 點擊紅色 "Delete All 100" 按鈕
|
|
102
|
+
4. 觀察強烈警告對話框,包含 ⚠️ 符號
|
|
103
|
+
5. 閱讀警告訊息
|
|
104
|
+
6. 點擊 "Confirm"
|
|
105
|
+
7. 觀察載入狀態
|
|
106
|
+
8. 確認所有 100 個工作被刪除
|
|
107
|
+
|
|
108
|
+
**預期結果:**
|
|
109
|
+
- ✅ 警告橫幅正確顯示總數
|
|
110
|
+
- ✅ 確認對話框顯示警告訊息
|
|
111
|
+
- ✅ 所有工作被刪除
|
|
112
|
+
- ✅ 佇列統計更新為 0
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### 測試案例 4: 批次重試延遲工作
|
|
117
|
+
|
|
118
|
+
**步驟:**
|
|
119
|
+
1. 在 `test-batch-delayed` 佇列檢查器中
|
|
120
|
+
2. 切換到 "Delayed" 標籤
|
|
121
|
+
3. 觀察 30 個延遲工作
|
|
122
|
+
4. 選擇 10 個工作
|
|
123
|
+
5. 點擊藍色 "Retry Selected" 按鈕
|
|
124
|
+
6. 確認對話框出現
|
|
125
|
+
7. 點擊 "Confirm"
|
|
126
|
+
8. 切換回 "Waiting" 標籤
|
|
127
|
+
9. 確認 10 個工作已移至 waiting 佇列
|
|
128
|
+
|
|
129
|
+
**預期結果:**
|
|
130
|
+
- ✅ 延遲工作顯示排程時間
|
|
131
|
+
- ✅ 批次重試正常運作
|
|
132
|
+
- ✅ 工作從 delayed 移至 waiting
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### 測試案例 5: 重試所有失敗的工作
|
|
137
|
+
|
|
138
|
+
**步驟:**
|
|
139
|
+
1. 在 `test-batch-fail` 佇列檢查器中
|
|
140
|
+
2. 切換到 "Failed" 標籤
|
|
141
|
+
3. 觀察 25 個失敗的工作
|
|
142
|
+
4. 觀察警告橫幅顯示 "Showing X of 25 total failed jobs"
|
|
143
|
+
5. 點擊琥珀色 "Retry All 25" 按鈕
|
|
144
|
+
6. 確認對話框出現
|
|
145
|
+
7. 點擊 "Confirm"
|
|
146
|
+
8. 切換回 "Waiting" 標籤
|
|
147
|
+
9. 確認所有失敗工作已移至 waiting 佇列
|
|
148
|
+
|
|
149
|
+
**預期結果:**
|
|
150
|
+
- ✅ 失敗工作顯示錯誤訊息
|
|
151
|
+
- ✅ "Retry All" 按鈕正常運作
|
|
152
|
+
- ✅ 所有失敗工作被重試
|
|
153
|
+
- ✅ Failed 計數歸零
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### 測試案例 6: 鍵盤快捷鍵
|
|
158
|
+
|
|
159
|
+
**步驟:**
|
|
160
|
+
1. 在任何佇列檢查器中
|
|
161
|
+
2. 按 **Ctrl+A** (Mac: Cmd+A)
|
|
162
|
+
3. 觀察所有工作被選中
|
|
163
|
+
4. 按 **Escape**
|
|
164
|
+
5. 觀察選擇被清除
|
|
165
|
+
6. 再次按 **Escape**
|
|
166
|
+
7. 觀察檢查器關閉
|
|
167
|
+
|
|
168
|
+
**預期結果:**
|
|
169
|
+
- ✅ Ctrl+A 選擇所有可見工作
|
|
170
|
+
- ✅ 第一次 Escape 清除選擇
|
|
171
|
+
- ✅ 第二次 Escape 關閉檢查器
|
|
172
|
+
- ✅ 在確認對話框中,Escape 關閉對話框
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
### 測試案例 7: 確認對話框取消
|
|
177
|
+
|
|
178
|
+
**步驟:**
|
|
179
|
+
1. 選擇一些工作
|
|
180
|
+
2. 點擊 "Delete Selected"
|
|
181
|
+
3. 在確認對話框中點擊 "Cancel"
|
|
182
|
+
4. 確認工作沒有被刪除
|
|
183
|
+
5. 選擇仍然保持
|
|
184
|
+
|
|
185
|
+
**預期結果:**
|
|
186
|
+
- ✅ 取消按鈕正常運作
|
|
187
|
+
- ✅ 工作沒有被刪除
|
|
188
|
+
- ✅ 選擇狀態保持不變
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
### 測試案例 8: 封存工作(不可批次操作)
|
|
193
|
+
|
|
194
|
+
**步驟:**
|
|
195
|
+
1. 在任何佇列檢查器中
|
|
196
|
+
2. 切換到 "Archive" 標籤
|
|
197
|
+
3. 觀察封存的工作沒有核取方塊
|
|
198
|
+
4. 確認沒有批次操作按鈕
|
|
199
|
+
|
|
200
|
+
**預期結果:**
|
|
201
|
+
- ✅ 封存工作不顯示核取方塊
|
|
202
|
+
- ✅ 封存工作標記為 "Archive: completed/failed"
|
|
203
|
+
- ✅ 沒有批次操作選項
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## 🧹 清理測試資料
|
|
208
|
+
|
|
209
|
+
測試完成後:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
bun scripts/test-batch-operations.ts cleanup
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 📊 測試檢查清單
|
|
218
|
+
|
|
219
|
+
- [ ] 測試案例 1: 多選與批次刪除
|
|
220
|
+
- [ ] 測試案例 2: 全選當前頁面
|
|
221
|
+
- [ ] 測試案例 3: 刪除所有匹配的工作
|
|
222
|
+
- [ ] 測試案例 4: 批次重試延遲工作
|
|
223
|
+
- [ ] 測試案例 5: 重試所有失敗的工作
|
|
224
|
+
- [ ] 測試案例 6: 鍵盤快捷鍵
|
|
225
|
+
- [ ] 測試案例 7: 確認對話框取消
|
|
226
|
+
- [ ] 測試案例 8: 封存工作(不可批次操作)
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 🐛 已知問題
|
|
231
|
+
|
|
232
|
+
無
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 💡 提示
|
|
237
|
+
|
|
238
|
+
1. **效能測試**: 可以創建更多工作(1000+)來測試大量資料的效能
|
|
239
|
+
2. **瀏覽器相容性**: 建議在 Chrome、Firefox、Safari 上測試
|
|
240
|
+
3. **網路延遲**: 可以使用瀏覽器開發工具模擬慢速網路
|
|
241
|
+
4. **並發操作**: 嘗試同時開啟多個佇列檢查器
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 📝 回報問題
|
|
246
|
+
|
|
247
|
+
如果發現任何問題,請記錄:
|
|
248
|
+
1. 瀏覽器版本
|
|
249
|
+
2. 重現步驟
|
|
250
|
+
3. 預期行為
|
|
251
|
+
4. 實際行為
|
|
252
|
+
5. 控制台錯誤訊息(如果有)
|