@ai-sdet/test-manager 0.1.5

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 (30) hide show
  1. package/README.md +312 -0
  2. package/dist/cli.js +16455 -0
  3. package/dist/client/assets/AIView-BYoeRnLC.js +73 -0
  4. package/dist/client/assets/AdminSettingsView-JqCQI3K1.js +1 -0
  5. package/dist/client/assets/ChatSection-rpiFyFcg.js +8 -0
  6. package/dist/client/assets/MilestonesView-CTJ8r67W.js +1 -0
  7. package/dist/client/assets/ReportsView-DJ8KPr1J.js +1 -0
  8. package/dist/client/assets/RunExecution-BJnn0cq7.js +1 -0
  9. package/dist/client/assets/RunsView-oDa9JyRq.js +1 -0
  10. package/dist/client/assets/SettingsView-BVCLWqOk.js +1 -0
  11. package/dist/client/assets/SpaceView-BxtPCtW1.js +1 -0
  12. package/dist/client/assets/TestEditor-Dthst0HS.js +63 -0
  13. package/dist/client/assets/TestMuImportDialog-B2yx7BdF.js +5 -0
  14. package/dist/client/assets/TrashView-B5uFN2Ua.js +1 -0
  15. package/dist/client/assets/UserGroupsView-MGu6frpT.js +1 -0
  16. package/dist/client/assets/UsersView-DwWeOblN.js +1 -0
  17. package/dist/client/assets/comments-section-CHZSUoK5.js +53 -0
  18. package/dist/client/assets/hooks-BItXZ0yP.js +1 -0
  19. package/dist/client/assets/hooks-BM-wcPhm.js +4 -0
  20. package/dist/client/assets/icons-J9gKYxTz.js +41 -0
  21. package/dist/client/assets/index-CYPrMEmp.css +1 -0
  22. package/dist/client/assets/index-a9kCDHqT.js +7 -0
  23. package/dist/client/assets/markdown-YKl4gdXq.js +29 -0
  24. package/dist/client/assets/radix-ui-Cxk3sw_C.js +41 -0
  25. package/dist/client/assets/react-D-pHAthU.js +40 -0
  26. package/dist/client/assets/tiptap-Ch64zYGz.js +167 -0
  27. package/dist/client/index.html +62 -0
  28. package/dist/index.js +12990 -0
  29. package/dist/server/index.js +16195 -0
  30. package/package.json +124 -0
package/README.md ADDED
@@ -0,0 +1,312 @@
1
+ # noob-test-manager
2
+
3
+ ![License](https://img.shields.io/badge/license-MIT-blue) ![Version](https://img.shields.io/badge/version-0.1.5-green)
4
+
5
+ A lightweight, self-hosted test case management tool for SDETs. Run it as a CLI — it spins up a local server and opens a browser UI. Data stays in local files by default (SQLite). No SaaS subscription required.
6
+
7
+ ---
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npm install -g @ganeshgaxy/noob-test-manager
13
+ ```
14
+
15
+ Or run without installing globally:
16
+
17
+ ```bash
18
+ npm install @ganeshgaxy/noob-test-manager
19
+ npx @ganeshgaxy/noob-test-manager start
20
+ ```
21
+
22
+ Then open `http://localhost:3000`. To use a different port:
23
+
24
+ ```bash
25
+ noob-sdet start --port 4000
26
+ ```
27
+
28
+ ### First run
29
+
30
+ On first start with an empty database, a super admin account is created automatically:
31
+
32
+ | Field | Default |
33
+ | -------- | ----------------------- |
34
+ | Email | `admin@noob-sdet.local` |
35
+ | Password | `Admin1234!` |
36
+
37
+ Override with env vars before starting: `DEFAULT_EMAIL`, `DEFAULT_PASSWORD`. Change the password after first login.
38
+
39
+ A `noob-sdet.db` file is created in your current directory — that's the main database.
40
+
41
+ ---
42
+
43
+ ## How to Use
44
+
45
+ ### 1. Create an App
46
+
47
+ From the home screen click **New App**. Apps are the top-level container — think "product" or "project".
48
+
49
+ ### 2. Create a Space
50
+
51
+ Inside an app, create a Space. A space maps to a feature area, squad or test suite. Each space has its own folder tree, tags and member access.
52
+
53
+ ### 3. Organise with Folders
54
+
55
+ Folders nest infinitely. Use them to mirror your feature structure or test pyramid layers (Smoke / Regression / E2E).
56
+
57
+ ### 4. Write Tests
58
+
59
+ Click **New Test** inside a folder. Choose between:
60
+
61
+ - **Traditional** — numbered action + expected result steps
62
+ - **BDD / Gherkin** — Given / When / Then scenarios with multiple scenarios per test
63
+
64
+ Fill in the right-hand metadata panel: category, priority, status, automation status, estimated time, Jira key, assignee, tags.
65
+
66
+ ### 5. Create a Run
67
+
68
+ Go to **Runs** in the sidebar → **New Run**. Give it a name and an optional environment label (e.g. `staging`). Click **Add Tests** to pick spaces, folders or individual tests.
69
+
70
+ ### 6. Execute
71
+
72
+ Click **Start** on the run. Tests are grouped by folder. Click a test to open the step-by-step panel on the right. Mark steps individually or use the quick **Pass / Fail / Skip / Block** buttons on each row. Use **bulk select** (checkbox on hover) to mark many tests at once.
73
+
74
+ ### 7. Filter & Sort
75
+
76
+ Use the filter bar above the test list to narrow by **Status**, **Priority**, **Category** or **Tags**. Toggle the **Folders A→Z** sort to reorder accordion groups.
77
+
78
+ ### 8. Import from TestMu
79
+
80
+ In a Space, click **Import → Import from TestMu**. Enter your TestMu host URL, email and API token, then pick a project. The import runs server-side with a live progress stream and preserves the full folder hierarchy, test steps, BDD scenarios, priorities, statuses, tags and Jira links.
81
+
82
+ ### 9. AI workspace (optional)
83
+
84
+ Each app has an **AI** tab for agent-assisted workflows:
85
+
86
+ - Chat with orchestrator agents (test plans, notes, analysis, test case generation)
87
+ - Connect Git repos for code-aware context (vector search over indexed source)
88
+ - Per-app AI settings: orchestrator, test case writer profiles, format templates
89
+
90
+ Global LLM and vector embedding providers are configured under **Admin Settings → AI Settings** (super admin). Supported vector providers: **OpenAI** (`text-embedding-3-small` recommended) and **Amazon Bedrock**.
91
+
92
+ ---
93
+
94
+ ## Features
95
+
96
+ ### 🗂 Test Organisation
97
+
98
+ - **Apps** → **Spaces** → **Folders** → **Tests** hierarchy
99
+ - Traditional step-by-step tests and BDD/Gherkin scenarios
100
+ - Rich text editor for descriptions, preconditions, step actions and expected results
101
+ - Full metadata per test: category, priority, status, automation status, estimated time, Jira issue key, assignee, tags
102
+
103
+ ### 🏃 Test Runs
104
+
105
+ - Create named runs with optional environment label
106
+ - Add tests by selecting whole spaces, folders or individual tests
107
+ - Mark each test as **Pass / Fail / Skip / Blocked** — with per-step granularity
108
+ - Bulk mark multiple tests at once
109
+ - Filter results by status, priority, category and tags
110
+ - Sort folder groups alphabetically
111
+ - Live pass-rate progress bar and summary stats (total / pass / fail / skip / block / pending)
112
+ - Reset individual tests, folders or the whole run
113
+ - Remove tests from a run without deleting the test
114
+
115
+ ### 📋 Test Detail Panel
116
+
117
+ - Step-by-step execution view slides in on the right when you click a test in a run
118
+ - Mark individual BDD scenario steps or traditional steps independently
119
+ - Notes field per result for recording observations
120
+
121
+ ### 🔖 Tagging
122
+
123
+ - Global tags (shared across all apps) and space-scoped tags
124
+ - Tag picker with search, creation and coloured pills
125
+ - Tags displayed inline in test list rows and filterable in runs
126
+
127
+ ### 🔄 TestMu Import
128
+
129
+ - Import entire projects from [TestMu](https://testmu.io) directly into a space
130
+ - Preserves folder structure, test steps, BDD scenarios, priorities, statuses, tags, Jira links and test categories
131
+ - Server-side streaming import with live progress feed
132
+
133
+ ### 🤖 AI & repo context
134
+
135
+ - Multi-agent chat (plans, pre-dev analysis, test notes, test case writer)
136
+ - Git repo registration and vector indexing for RAG-style code context
137
+ - Per-app test case writer profiles with configurable knowledge blocks
138
+ - Global AI config: LLM provider (Anthropic, OpenAI, Bedrock, Ollama Cloud, …) and vector provider (OpenAI, Bedrock)
139
+ - Test connection buttons in Admin Settings before saving credentials
140
+
141
+ ### 👥 Users & Access Control
142
+
143
+ - User accounts with email/password auth
144
+ - Global roles: `super_admin` and `member`
145
+ - Per-app and per-space roles: `admin`, `member`, `viewer`
146
+ - User groups for bulk permission management
147
+ - API tokens for programmatic access
148
+ - SSO support (configurable)
149
+
150
+ ### 🎨 Themes & branding
151
+
152
+ - Four built-in presets: **Dark** (default), **Purple Night**, **Light**, **Navy**
153
+ - Full custom theme editor — every colour, font and radius is configurable
154
+ - Custom app title and logos (Admin Settings → Branding)
155
+
156
+ ### ⚙️ Settings
157
+
158
+ - Custom fields per app (text, number, dropdown, multi-select, date, checkbox, URL)
159
+ - Integrations: Jira, GitHub, Slack (configurable webhooks)
160
+ - Tag management at app and space level
161
+ - Admin: database (SQLite / Turso / Postgres), cache, auth, global agents
162
+
163
+ ### 🗑 Trash
164
+
165
+ - Soft-delete for tests and folders
166
+ - Restore or permanently delete from the trash view
167
+
168
+ ---
169
+
170
+ ## CLI Reference
171
+
172
+ The CLI can manage everything headlessly — useful for scripting or CI pipelines. The server must be running (`noob-sdet start`) for these commands.
173
+
174
+ ### Apps
175
+
176
+ ```bash
177
+ noob-sdet app list
178
+ noob-sdet app create "My App" --description "Optional description"
179
+ noob-sdet app delete <appId>
180
+ ```
181
+
182
+ ### Spaces
183
+
184
+ ```bash
185
+ noob-sdet space list <appId>
186
+ noob-sdet space create <appId> "My Space" --description "Optional"
187
+ noob-sdet space delete <appId> <spaceId>
188
+ ```
189
+
190
+ ### Folders
191
+
192
+ ```bash
193
+ noob-sdet folder list <spaceId>
194
+ noob-sdet folder create <spaceId> "My Folder"
195
+ noob-sdet folder create <spaceId> "Nested" --parent <parentFolderId>
196
+ ```
197
+
198
+ ### Tests
199
+
200
+ ```bash
201
+ noob-sdet test list <folderId>
202
+ noob-sdet test create <folderId> "Test title" --priority High --status Ready
203
+ noob-sdet test show <folderId> <testId>
204
+ noob-sdet test delete <folderId> <testId>
205
+ ```
206
+
207
+ ### Runs
208
+
209
+ ```bash
210
+ noob-sdet run list <appId>
211
+ noob-sdet run create <appId> "Sprint 42 Regression"
212
+ ```
213
+
214
+ All commands accept `--port <port>` if the server is not on `3000`.
215
+
216
+ ---
217
+
218
+ ## Data Storage
219
+
220
+ By default everything lives under the directory where you start the server:
221
+
222
+ | Path | Purpose |
223
+ | ----------------------- | ---------------------------------------------- |
224
+ | `noob-sdet.db` | Main app database (SQLite) |
225
+ | `noob-sdet-vector.db` | Vector index for AI repo search |
226
+ | `data/repos/` | Cloned Git repos used for indexing |
227
+ | `noob-sdet.config.json` | Instance config (DB, cache, auth) — gitignored |
228
+ | `noob-sdet.theme.json` | Legacy theme export — gitignored |
229
+
230
+ **Backup:** copy `noob-sdet.db` (and `noob-sdet-vector.db` if you use AI repos). Restore by putting the files back and restarting.
231
+
232
+ **Remote databases:** Turso and Postgres can be configured in Admin Settings. The reset script below only removes local SQLite files; remote DBs must be dropped manually.
233
+
234
+ ### Reset to a clean slate
235
+
236
+ Stop the server first, then from a **cloned repo** (development):
237
+
238
+ ```bash
239
+ npm run reset # prompts for confirmation
240
+ npm run reset -- --yes # skip prompt
241
+ npm run reset -- --yes --keep-config # keep noob-sdet.config.json
242
+ ```
243
+
244
+ This deletes the SQLite database, vector database, `data/`, and instance config files. The next `npm start` bootstraps a fresh admin account.
245
+
246
+ If you installed globally (not from a clone), delete the files manually:
247
+
248
+ ```bash
249
+ rm -f noob-sdet.db noob-sdet.db-wal noob-sdet.db-shm
250
+ rm -f noob-sdet-vector.db noob-sdet-vector.db-wal noob-sdet-vector.db-shm
251
+ rm -rf data/
252
+ rm -f noob-sdet.config.json noob-sdet.theme.json
253
+ ```
254
+
255
+ ---
256
+
257
+ ## Development
258
+
259
+ ```bash
260
+ git clone https://github.com/ganeshgaxy/noob-test-manager.git
261
+ cd noob-test-manager
262
+ npm install
263
+ npm run build # build client + server once
264
+ npm start # same as noob-sdet start — opens :3000
265
+
266
+ # Or run client + server separately while developing
267
+ npm run dev:client # Vite dev server at :5173
268
+ npm run dev:server # Hono API server at :3000 (proxied by Vite)
269
+
270
+ # Tests & lint
271
+ npm test
272
+ npm run test:coverage
273
+ npm run lint
274
+ npm run format
275
+
276
+ # Database tooling (Drizzle)
277
+ npm run db:generate
278
+ npm run db:migrate
279
+ npm run db:studio
280
+
281
+ # Wipe local data and start fresh (stop server first)
282
+ npm run reset -- --yes
283
+ ```
284
+
285
+ ### Tech Stack
286
+
287
+ | Layer | Tech |
288
+ | -------- | ----------------------------------------------------------------- |
289
+ | UI | React 18, Vite, Tailwind CSS v4, Radix UI, Phosphor Icons, Tiptap |
290
+ | Server | Hono on Node.js |
291
+ | Database | SQLite (default), Turso, or Postgres via Drizzle ORM |
292
+ | Vector | libSQL + OpenAI or Amazon Bedrock embeddings |
293
+ | Auth | bcrypt password hashing, API tokens, optional SSO |
294
+ | CLI | Commander.js |
295
+ | Testing | Vitest, Testing Library |
296
+
297
+ ---
298
+
299
+ ## Contributing
300
+
301
+ Contributions are welcome. Please open a pull request — direct pushes to `main` are restricted.
302
+
303
+ 1. Fork the repo
304
+ 2. Create a feature branch (`git checkout -b feat/my-feature`)
305
+ 3. Commit your changes
306
+ 4. Push and open a PR
307
+
308
+ ---
309
+
310
+ ## License
311
+
312
+ MIT