From a1f9ac1376f0544659751f994203a7d6c3f3549a Mon Sep 17 00:00:00 2001 From: maziggy Date: Thu, 12 Feb 2026 16:18:36 +0100 Subject: [PATCH] Added BETA_TEST_PLAN.md --- BETA_TEST_PLAN.md | 138 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 BETA_TEST_PLAN.md diff --git a/BETA_TEST_PLAN.md b/BETA_TEST_PLAN.md new file mode 100644 index 000000000..b6c3b13be --- /dev/null +++ b/BETA_TEST_PLAN.md @@ -0,0 +1,138 @@ +# Beta Test Plan — Spool Inventory & Related Features + +## Prerequisites + +- At least one printer connected with AMS +- At least one Bambu Lab spool (RFID) loaded in AMS +- At least one empty AMS slot (or slot with non-BL filament) +- A 3MF file ready to print (small/fast test print recommended) + +--- + +## 1. Filament Tracking Mode Switching + +**Location:** Settings > Filament + +| # | Test | Steps | Expected | +|---|------|-------|----------| +| 1.1 | Default mode | Open Settings > Filament | "Built-in Inventory" card is selected (green border), info panel shows RFID/usage/catalog bullet points | +| 1.2 | Switch to Spoolman | Click "Spoolman" card | Spoolman config appears (URL input, Sync Mode, connection status). Built-in info panel disappears | +| 1.3 | Switch back | Click "Built-in Inventory" card | Spoolman config disappears, built-in info panel reappears | +| 1.4 | Persistence | Switch mode, reload page | Selected mode persists after reload | +| 1.5 | Spoolman disabled state | Select Spoolman without URL, check Connect button | Connect button should be disabled when URL is empty | + +--- + +## 2. Spool Management + +**Location:** Inventory page (sidebar) + +| # | Test | Steps | Expected | +|---|------|-------|----------| +| 2.1 | Add spool | Click "+ Add Spool", fill material/brand/color/weight, save | Spool appears in table with correct info | +| 2.2 | Edit spool | Click a spool row, change fields, save | Changes reflected in table | +| 2.3 | Remaining weight | Edit spool > Additional section > adjust remaining weight | Remaining weight = label_weight - weight_used, slider/input updates correctly | +| 2.4 | Spool catalog | Edit spool > Additional > Empty Spool Weight dropdown | Pre-defined spool weights shown, selecting one updates the field | +| 2.5 | Color picker | Edit spool > Color section | Recent colors, brand palettes, and hex input all work | +| 2.6 | PA profile tab | Edit spool > PA Profile tab | Matching K-profiles shown grouped by printer/nozzle (requires calibration data) | +| 2.7 | Archive spool | Archive a spool from context menu or edit | Spool moves to "Archived" tab | +| 2.8 | Delete spool | Delete a spool | Spool removed from all views | +| 2.9 | Summary cards | Check top of inventory page | Total Inventory, Total Consumed, By Material, In Printer, Low Stock cards show correct values | +| 2.10 | Filters | Try Active/Archived/All tabs, material/brand dropdowns, search | Filtering works correctly | +| 2.11 | View modes | Toggle between Table and Card view | Both views show correct spool data | + +--- + +## 3. AMS Slot Assignment + +**Location:** Printers page, AMS hover cards + +| # | Test | Steps | Expected | +|---|------|-------|----------| +| 3.1 | Assign spool | Hover over an empty/non-BL AMS slot > click "Assign Spool" | Modal opens showing only manual (non-BL) spools | +| 3.2 | BL spools filtered | Open assign modal | Bambu Lab spools (with RFID tags) are NOT in the list | +| 3.3 | Assigned spools filtered | Assign spool A to slot 1, then open assign modal for slot 2 | Spool A is NOT in the list (already assigned) | +| 3.4 | Current slot spool visible | Open assign for slot that already has a spool | The currently assigned spool IS still shown (for reassignment) | +| 3.5 | Confirm assignment | Select spool, click "Assign Spool" | Slot shows the assigned spool info on hover | +| 3.6 | Unassign spool | Hover over assigned slot > click "Unassign" | Spool removed from slot, slot shows default info | +| 3.7 | BL slot — no buttons | Hover over a slot with a Bambu Lab spool (RFID) | No "Assign Spool" or "Unassign" buttons shown | +| 3.8 | Empty slot display | Check an empty AMS slot | Shows type from AMS data or "Empty" (localized) | + +--- + +## 4. Auto-Unlink on BL Spool Insertion + +| # | Test | Steps | Expected | +|---|------|-------|----------| +| 4.1 | BL spool replaces manual | Assign a manual spool to a slot, then physically insert a BL spool into that slot | Assignment automatically removed, slot now shows BL spool info | +| 4.2 | Log message | Check backend logs after 4.1 | Log shows "Auto-unlink: spool X AMSY-TZ — Bambu Lab spool detected" | + +--- + +## 5. Spool Tag Linking + +**Location:** Printers page, AMS hover cards for BL spools + +| # | Test | Steps | Expected | +|---|------|-------|----------| +| 5.1 | Link modal | Hover over BL spool slot > click "Link to Spool" (if available) | Modal opens showing only untagged spools | +| 5.2 | Search filter | Type in search box | Spools filtered by material/brand/color | +| 5.3 | Link spool | Click a spool in the list | Success toast, modal closes, spool now linked to tag | +| 5.4 | Tagged spools hidden | After linking spool A, open link modal again | Spool A is no longer in the list | + +--- + +## 6. Usage Tracking — BL Spools (AMS Remain%) + +| # | Test | Steps | Expected | +|---|------|-------|----------| +| 6.1 | Session capture | Start a print with a BL spool | Backend log shows "Captured start remain% for printer X (N trays)" | +| 6.2 | Completed print | Let print finish | Spool's weight_used increases by (delta% * label_weight). Check inventory page remaining weight | +| 6.3 | Failed/aborted print | Start and cancel a print mid-way | Usage still tracked based on remain% delta at time of stop | +| 6.4 | No double-tracking | Complete a print with BL spool | Only AMS delta tracking applies (no 3MF fallback for this spool) | + +--- + +## 7. Usage Tracking — Non-BL Spools (3MF Estimates) + +| # | Test | Steps | Expected | +|---|------|-------|----------| +| 7.1 | Assign and print | Assign a manual spool to AMS slot, start a print using that slot | Backend log shows "3MF fallback available" at print start | +| 7.2 | Completed print | Let print finish | Spool's weight_used increases by the 3MF estimated used_g. Check inventory page | +| 7.3 | Failed print scaling | Start a print, cancel at ~50% | Usage = 3MF estimate * (progress/100). E.g., 100g estimate at 50% = ~50g tracked | +| 7.4 | Multi-slot print | Print using multiple filament slots (some BL, some manual) | BL spools tracked via remain% delta, manual spools via 3MF. No double-counting | +| 7.5 | Slot mapping | Use a spool in AMS slot 5 (second AMS unit) | Correctly maps to AMS 1, Tray 0. Check usage history shows correct ams_id/tray_id | + +--- + +## 8. Edge Cases + +| # | Test | Steps | Expected | +|---|------|-------|----------| +| 8.1 | No AMS data | Print from external spool (no AMS) | No crash, usage tracking gracefully skipped | +| 8.2 | No archive | Print without 3MF archive available | AMS delta path still works for BL spools, 3MF path skipped gracefully | +| 8.3 | Spool refilled | If remain% goes UP between start and end (spool swapped/refilled) | Negative delta skipped, no negative usage recorded | +| 8.4 | Rapid print start/stop | Start and immediately cancel a print | No errors, minimal or zero usage tracked | +| 8.5 | Concurrent printers | Print on two printers simultaneously | Each printer tracked independently, no cross-contamination | + +--- + +## 9. UI/UX Checks + +| # | Test | Steps | Expected | +|---|------|-------|----------| +| 9.1 | Mobile layout | Open on mobile or narrow browser | Inventory page, assign modal, and settings all responsive | +| 9.2 | Dark/light mode | Toggle theme | All inventory UI elements properly themed | +| 9.3 | Language switching | Switch to German and Japanese | All inventory strings translated (no hardcoded English) | +| 9.4 | Keyboard nav | Use keyboard shortcuts on printers page | AMS slot interactions accessible | + +--- + +## Reporting Issues + +When reporting a bug, please include: +- Test case number (e.g., "3.4 failed") +- Browser + version +- Screenshot or screen recording +- Backend logs (if relevant — check Docker logs) +- Steps to reproduce if different from above