|
const DATA = {"cases": [{"id": "TC-001", "file": "00-smoke.spec.js", "line": 3, "group": "", "title": "API harness works: create + approve + dispatch an outward DC", "ok": true, "ms": 514}, {"id": "TC-002", "file": "01-start.spec.js", "line": 5, "group": "Step 1 - Start", "title": "initial state: a single step and four entry cards", "ok": true, "ms": 1248}, {"id": "TC-003", "file": "01-start.spec.js", "line": 13, "group": "Step 1 - Start", "title": "Outward and Inward each reveal the right second-level options", "ok": true, "ms": 1404}, {"id": "TC-004", "file": "01-start.spec.js", "line": 26, "group": "Step 1 - Start", "title": "selection highlight is single-select and switching branch resets the lower levels", "ok": true, "ms": 1672}, {"id": "TC-005", "file": "01-start.spec.js", "line": 40, "group": "Step 1 - Start", "title": "hovering a card highlights it in black", "ok": true, "ms": 1447}, {"id": "TC-006", "file": "01-start.spec.js", "line": 49, "group": "Step 1 - Start", "title": "Next without a DC Type is blocked with a message", "ok": true, "ms": 1590}, {"id": "TC-007", "file": "01-start.spec.js", "line": 58, "group": "Step 1 - Start", "title": "DC Type picker is filtered by direction and by Return source type", "ok": true, "ms": 5713}, {"id": "TC-008", "file": "01-start.spec.js", "line": 90, "group": "Step 1 - Start", "title": "New Outward: five merged steps, same for either direction", "ok": true, "ms": 4139}, {"id": "TC-009", "file": "01-start.spec.js", "line": 90, "group": "Step 1 - Start", "title": "New Inward: five merged steps, same for either direction", "ok": true, "ms": 4079}, {"id": "TC-010", "file": "01-start.spec.js", "line": 101, "group": "Step 1 - Start", "title": "pre-creation steps in the indicator are not clickable", "ok": true, "ms": 4279}, {"id": "TC-011", "file": "01-start.spec.js", "line": 110, "group": "Step 1 - Start", "title": "Continue an Existing DC: blank is blocked, a real DC lands on its post-creation step", "ok": true, "ms": 4055}, {"id": "TC-012", "file": "02-header-party.spec.js", "line": 9, "group": "Step 2 - Header & Party (merged with Dispatch From)", "title": "Dispatch From fields live on this same page", "ok": true, "ms": 4338}, {"id": "TC-013", "file": "02-header-party.spec.js", "line": 14, "group": "Step 2 - Header & Party (merged with Dispatch From)", "title": "nothing filled: Next is blocked", "ok": true, "ms": 4107}, {"id": "TC-014", "file": "02-header-party.spec.js", "line": 20, "group": "Step 2 - Header & Party (merged with Dispatch From)", "title": "Branch is required even when everything else is filled", "ok": true, "ms": 8958}, {"id": "TC-015", "file": "02-header-party.spec.js", "line": 29, "group": "Step 2 - Header & Party (merged with Dispatch From)", "title": "company/party auto-fill their addresses and show the full address underneath", "ok": true, "ms": 10921}, {"id": "TC-016", "file": "02-header-party.spec.js", "line": 39, "group": "Step 2 - Header & Party (merged with Dispatch From)", "title": "Dispatch From mirrors Company + Company Address until the user overrides it", "ok": true, "ms": 18860}, {"id": "TC-017", "file": "02-header-party.spec.js", "line": 55, "group": "Step 2 - Header & Party (merged with Dispatch From)", "title": "Consignee: 'Same as Party' hides the field, unticking requires one", "ok": true, "ms": 14855}, {"id": "TC-018", "file": "02-header-party.spec.js", "line": 73, "group": "Step 2 - Header & Party (merged with Dispatch From)", "title": "values survive Next -> Back", "ok": true, "ms": 10840}, {"id": "TC-019", "file": "03-items.spec.js", "line": 17, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "one GST Rate column replaces separate IGST/CGST/SGST inputs", "ok": true, "ms": 11549}, {"id": "TC-020", "file": "03-items.spec.js", "line": 27, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "keyboard: Tab walks HSN -> GST Rate -> Qty -> Unit Cost without spawning stray rows", "ok": true, "ms": 15666}, {"id": "TC-021", "file": "03-items.spec.js", "line": 46, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "GST Rate offers exactly the standard slabs", "ok": true, "ms": 12562}, {"id": "TC-022", "file": "03-items.spec.js", "line": 53, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Inter State: the single rate lands on IGST", "ok": true, "ms": 16673}, {"id": "TC-023", "file": "03-items.spec.js", "line": 61, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Intra State: the single rate splits evenly into CGST + SGST", "ok": true, "ms": 16554}, {"id": "TC-024", "file": "03-items.spec.js", "line": 69, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "changing Tax Category after rows exist re-splits every row live", "ok": true, "ms": 20055}, {"id": "TC-025", "file": "03-items.spec.js", "line": 83, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "0% GST yields zero tax, 28% works, mixed rows add up", "ok": true, "ms": 18435}, {"id": "TC-026", "file": "03-items.spec.js", "line": 90, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Product Master autofills Description and HSN", "ok": true, "ms": 15630}, {"id": "TC-027", "file": "03-items.spec.js", "line": 102, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "deleting a row recalculates the running totals", "ok": true, "ms": 19493}, {"id": "TC-028", "file": "03-items.spec.js", "line": 114, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "invalid HSN warns immediately", "ok": true, "ms": 13911}, {"id": "TC-029", "file": "03-items.spec.js", "line": 122, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Next: Tax Category required first", "ok": true, "ms": 14793}, {"id": "TC-030", "file": "03-items.spec.js", "line": 129, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Next: GST rate entered before a Tax Category warns", "ok": true, "ms": 14724}, {"id": "TC-031", "file": "03-items.spec.js", "line": 135, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Next: at least one item row", "ok": true, "ms": 12323}, {"id": "TC-032", "file": "03-items.spec.js", "line": 148, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Next blocked: missing HSN", "ok": true, "ms": 14708}, {"id": "TC-033", "file": "03-items.spec.js", "line": 148, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Next blocked: missing Qty", "ok": true, "ms": 14992}, {"id": "TC-034", "file": "03-items.spec.js", "line": 148, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Next blocked: zero Qty", "ok": true, "ms": 15345}, {"id": "TC-035", "file": "03-items.spec.js", "line": 148, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Next blocked: missing Unit Cost", "ok": true, "ms": 14904}, {"id": "TC-036", "file": "03-items.spec.js", "line": 148, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "Next blocked: missing GST Rate", "ok": true, "ms": 14901}, {"id": "TC-037", "file": "03-items.spec.js", "line": 159, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "valid rows + category proceed to Movement; Back restores category, rows and rate", "ok": true, "ms": 16946}, {"id": "TC-038", "file": "03-items.spec.js", "line": 176, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "CSV template exposes GST Rate % but not the derived IGST/CGST/SGST columns", "ok": true, "ms": 11528}, {"id": "TC-039", "file": "03-items.spec.js", "line": 185, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "CSV upload replaces rows and derives tax from GST Rate + category", "ok": true, "ms": 12771}, {"id": "TC-040", "file": "03-items.spec.js", "line": 197, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "CSV upload with unrecognised columns is rejected", "ok": true, "ms": 11569}, {"id": "TC-041", "file": "03-items.spec.js", "line": 205, "group": "Step 3 - Items (Tax Category + GST Rate)", "title": "upload and download buttons are the same height", "ok": true, "ms": 11248}, {"id": "TC-042", "file": "04-movement.spec.js", "line": 22, "group": "Step 4 - Movement Details (merged with Dispatch Details)", "title": "Outward shows the Dispatch Details fields on this same page", "ok": true, "ms": 15334}, {"id": "TC-043", "file": "04-movement.spec.js", "line": 29, "group": "Step 4 - Movement Details (merged with Dispatch Details)", "title": "Inward has no Dispatch Details fields", "ok": true, "ms": 16092}, {"id": "TC-044", "file": "04-movement.spec.js", "line": 36, "group": "Step 4 - Movement Details (merged with Dispatch Details)", "title": "Purpose of Movement is required", "ok": true, "ms": 15891}, {"id": "TC-045", "file": "04-movement.spec.js", "line": 43, "group": "Step 4 - Movement Details (merged with Dispatch Details)", "title": "Returnable is read-only and follows the DC Type default (returnable type)", "ok": true, "ms": 15736}, {"id": "TC-046", "file": "04-movement.spec.js", "line": 52, "group": "Step 4 - Movement Details (merged with Dispatch Details)", "title": "Returnable is read-only and unticked for a non-returnable DC Type; return date hidden", "ok": true, "ms": 16804}, {"id": "TC-047", "file": "04-movement.spec.js", "line": 60, "group": "Step 4 - Movement Details (merged with Dispatch Details)", "title": "Rule 55 declaration is seeded from the DC Type", "ok": true, "ms": 15811}, {"id": "TC-048", "file": "04-movement.spec.js", "line": 65, "group": "Step 4 - Movement Details (merged with Dispatch Details)", "title": "Additional details: contact is a single-line Data field, short fields share a row, Remarks is full width", "ok": true, "ms": 16248}, {"id": "TC-049", "file": "04-movement.spec.js", "line": 83, "group": "Step 4 - Movement Details (merged with Dispatch Details)", "title": "every Movement + Dispatch + Additional value flows to Review and into the saved document", "ok": true, "ms": 24981}, {"id": "TC-050", "file": "04-movement.spec.js", "line": 120, "group": "Step 4 - Movement Details (merged with Dispatch Details)", "title": "Movement values survive Next -> Back from Review", "ok": true, "ms": 18730}, {"id": "TC-051", "file": "05-review.spec.js", "line": 15, "group": "Step 5 - Review (value-based Outward, two items)", "title": "header shows the entry-mode badge and the E-Way Bill Required badge", "ok": true, "ms": 21538}, {"id": "TC-052", "file": "05-review.spec.js", "line": 20, "group": "Step 5 - Review (value-based Outward, two items)", "title": "cards are merged: no separate Dispatch From / Dispatch Details card", "ok": true, "ms": 21671}, {"id": "TC-053", "file": "05-review.spec.js", "line": 25, "group": "Step 5 - Review (value-based Outward, two items)", "title": "company, ship-to and dispatch-from addresses are shown in full, not as codes", "ok": true, "ms": 21507}, {"id": "TC-054", "file": "05-review.spec.js", "line": 35, "group": "Step 5 - Review (value-based Outward, two items)", "title": "Items card shows Tax Category and both rows", "ok": true, "ms": 21669}, {"id": "TC-055", "file": "05-review.spec.js", "line": 42, "group": "Step 5 - Review (value-based Outward, two items)", "title": "totals card: taxable, IGST, grand total and amount in words", "ok": true, "ms": 21471}, {"id": "TC-056", "file": "05-review.spec.js", "line": 50, "group": "Step 5 - Review (value-based Outward, two items)", "title": "Edit on Items returns to Review with the change applied ('Save & Return to Review')", "ok": true, "ms": 22526}, {"id": "TC-057", "file": "05-review.spec.js", "line": 64, "group": "Step 5 - Review (value-based Outward, two items)", "title": "Edit on Header & Party and on Movement Details round-trip back to Review", "ok": true, "ms": 22872}, {"id": "TC-058", "file": "05-review.spec.js", "line": 83, "group": "Step 5 - Review (value-based Outward, two items)", "title": "Back from Review lands on Movement Details", "ok": true, "ms": 22021}, {"id": "TC-059", "file": "05-review.spec.js", "line": 90, "group": "Review - E-Way Bill badge follows the DC Type rule and the value threshold", "title": "Not-Required DC Type: no badge even for a large value", "ok": true, "ms": 18755}, {"id": "TC-060", "file": "05-review.spec.js", "line": 96, "group": "Review - E-Way Bill badge follows the DC Type rule and the value threshold", "title": "Value-Based DC Type below the threshold: no badge", "ok": true, "ms": 17585}, {"id": "TC-061", "file": "05-review.spec.js", "line": 102, "group": "Review - E-Way Bill badge follows the DC Type rule and the value threshold", "title": "Value-Based DC Type above the threshold: badge shown", "ok": true, "ms": 17515}, {"id": "TC-062", "file": "05-review.spec.js", "line": 109, "group": "Review - editing the Start choice", "title": "Edit on Start keeps the current choice pre-selected and all entered data; Save & Return goes back to Review", "ok": true, "ms": 19027}, {"id": "TC-063", "file": "05-review.spec.js", "line": 124, "group": "Review - editing the Start choice", "title": "Re-clicking the already-selected Level 1 card does not wipe the data", "ok": true, "ms": 19063}, {"id": "TC-064", "file": "05-review.spec.js", "line": 134, "group": "Review - editing the Start choice", "title": "Switching to a different entry mode on Start discards the previous data (by design)", "ok": true, "ms": 19103}, {"id": "TC-065", "file": "06-lifecycle-outward.spec.js", "line": 12, "group": "Outward value-based DC: full lifecycle through the UI", "title": "create via the wizard and land on Approval (Pending for Approval)", "ok": true, "ms": 19087}, {"id": "TC-066", "file": "06-lifecycle-outward.spec.js", "line": 27, "group": "Outward value-based DC: full lifecycle through the UI", "title": "Approval layout: actions first, summary next, Print Preview last; no duplicate buttons", "ok": true, "ms": 3594}, {"id": "TC-067", "file": "06-lifecycle-outward.spec.js", "line": 44, "group": "Outward value-based DC: full lifecycle through the UI", "title": "saved document: numbering, tax split, address displays, standard form opens clean", "ok": true, "ms": 2957}, {"id": "TC-068", "file": "06-lifecycle-outward.spec.js", "line": 65, "group": "Outward value-based DC: full lifecycle through the UI", "title": "Print Preview: loads the real format, refetches on every expand, PDF downloads", "ok": true, "ms": 4841}, {"id": "TC-069", "file": "06-lifecycle-outward.spec.js", "line": 89, "group": "Outward value-based DC: full lifecycle through the UI", "title": "Reject sends it back to Draft; only Submit for Approval / Cancel remain; resubmit works", "ok": true, "ms": 4075}, {"id": "TC-070", "file": "06-lifecycle-outward.spec.js", "line": 100, "group": "Outward value-based DC: full lifecycle through the UI", "title": "Approve moves to the E-Way Bill step (dynamic step list unchanged)", "ok": true, "ms": 3706}, {"id": "TC-071", "file": "06-lifecycle-outward.spec.js", "line": 109, "group": "Outward value-based DC: full lifecycle through the UI", "title": "can go back to Approval from E-Way Bill (button + indicator) read-only, and forward again", "ok": true, "ms": 4036}, {"id": "TC-072", "file": "06-lifecycle-outward.spec.js", "line": 125, "group": "Outward value-based DC: full lifecycle through the UI", "title": "manual E-Way Bill: empty blocked, non-digits rejected, spaces stripped, advances to Dispatch", "ok": true, "ms": 5841}, {"id": "TC-073", "file": "06-lifecycle-outward.spec.js", "line": 148, "group": "Outward value-based DC: full lifecycle through the UI", "title": "Dispatch: blocked without transport details, then dispatches the (non-returnable) DC", "ok": true, "ms": 7922}, {"id": "TC-074", "file": "06-lifecycle-outward.spec.js", "line": 166, "group": "Outward value-based DC: full lifecycle through the UI", "title": "printed document: LR/Vehicle shown, address moved to the footer, three copies, item table class", "ok": true, "ms": 95}, {"id": "TC-075", "file": "06-lifecycle-outward.spec.js", "line": 182, "group": "Other outward lifecycle paths", "title": "Cancel asks for a reason, then locks the document", "ok": true, "ms": 4568}, {"id": "TC-076", "file": "06-lifecycle-outward.spec.js", "line": 200, "group": "Other outward lifecycle paths", "title": "DC Type without an E-Way Bill requirement skips straight from Approval to Dispatch", "ok": true, "ms": 3945}, {"id": "TC-077", "file": "06-lifecycle-outward.spec.js", "line": 209, "group": "Other outward lifecycle paths", "title": "returnable DC ends in 'Dispatched & Awaiting Return' with no further dispatch action", "ok": true, "ms": 3968}, {"id": "TC-078", "file": "06-lifecycle-outward.spec.js", "line": 220, "group": "Other outward lifecycle paths", "title": "'Continue in Wizard' exists on the standard form for a non-Draft DC, and not for a Draft", "ok": true, "ms": 3726}, {"id": "TC-079", "file": "06-lifecycle-outward.spec.js", "line": 236, "group": "Other outward lifecycle paths", "title": "GSP flow: Save creates the E-Way Bill Request and offers Validate (GST portal is NOT called)", "ok": true, "ms": 6339}, {"id": "TC-080", "file": "07-inward.spec.js", "line": 9, "group": "Inward (External Receipt) lifecycle through the UI, Intra State", "title": "create a New Inward DC with Intra State tax", "ok": true, "ms": 17182}, {"id": "TC-081", "file": "07-inward.spec.js", "line": 25, "group": "Inward (External Receipt) lifecycle through the UI, Intra State", "title": "step list uses 'Receipt' and never an E-Way Bill step", "ok": true, "ms": 3557}, {"id": "TC-082", "file": "07-inward.spec.js", "line": 31, "group": "Inward (External Receipt) lifecycle through the UI, Intra State", "title": "Approve -> Receipt; Mark as Received -> 'Received & Pending Return'", "ok": true, "ms": 3806}, {"id": "TC-083", "file": "07-inward.spec.js", "line": 40, "group": "Inward (External Receipt) lifecycle through the UI, Intra State", "title": "Inward print format is used and its CGST/SGST branch renders", "ok": true, "ms": 4150}, {"id": "TC-084", "file": "08-returns-redirect.spec.js", "line": 39, "group": "Start - predecessor pickers", "title": "DC Type chosen after the predecessor sticks (regression: blur re-fired the predecessor handler and wiped it)", "ok": true, "ms": 7463}, {"id": "TC-085", "file": "08-returns-redirect.spec.js", "line": 56, "group": "Start - predecessor pickers", "title": "Next needs both a predecessor and a DC Type", "ok": true, "ms": 4210}, {"id": "TC-086", "file": "08-returns-redirect.spec.js", "line": 70, "group": "Start - predecessor pickers", "title": "only eligible predecessors are offered (a Pending-for-Approval DC is not)", "ok": true, "ms": 6407}, {"id": "TC-087", "file": "08-returns-redirect.spec.js", "line": 90, "group": "Start - predecessor pickers", "title": "Return Against Inward DC only offers received, returnable External Receipts", "ok": true, "ms": 3885}, {"id": "TC-088", "file": "08-returns-redirect.spec.js", "line": 113, "group": "Return Against Outward DC (discharge) - quantities and locked rows", "title": "setup: a dispatched returnable Outward DC of 10 units", "ok": true, "ms": 345}, {"id": "TC-089", "file": "08-returns-redirect.spec.js", "line": 118, "group": "Return Against Outward DC (discharge) - quantities and locked rows", "title": "header is pre-filled from the predecessor; Branch still has to be chosen", "ok": true, "ms": 6290}, {"id": "TC-090", "file": "08-returns-redirect.spec.js", "line": 126, "group": "Return Against Outward DC (discharge) - quantities and locked rows", "title": "Items are locked: only Qty is editable, no add row, no Tax Category, GST shown read-only", "ok": true, "ms": 10339}, {"id": "TC-091", "file": "08-returns-redirect.spec.js", "line": 151, "group": "Return Against Outward DC (discharge) - quantities and locked rows", "title": "Qty above the outstanding quantity warns immediately and blocks Next", "ok": true, "ms": 8986}, {"id": "TC-092", "file": "08-returns-redirect.spec.js", "line": 164, "group": "Return Against Outward DC (discharge) - quantities and locked rows", "title": "partial return of 4: approve, receive -> predecessor becomes Partially Returned (outstanding 6)", "ok": true, "ms": 10312}, {"id": "TC-093", "file": "08-returns-redirect.spec.js", "line": 196, "group": "Return Against Outward DC (discharge) - quantities and locked rows", "title": "a second return is now capped at the remaining 6 and completes the original", "ok": true, "ms": 10346}, {"id": "TC-094", "file": "08-returns-redirect.spec.js", "line": 226, "group": "Redirect and Return Against Inward DC", "title": "Redirect creates a new Outward DC linked to the original", "ok": true, "ms": 9724}, {"id": "TC-095", "file": "08-returns-redirect.spec.js", "line": 249, "group": "Redirect and Return Against Inward DC", "title": "Return Against Inward DC dispatches goods back out, capped by what was received", "ok": true, "ms": 10349}, {"id": "TC-096", "file": "09-edge-cases.spec.js", "line": 6, "group": "Cross-cutting edge cases", "title": "double-clicking Send for Approval creates exactly one document", "ok": true, "ms": 19022}, {"id": "TC-097", "file": "09-edge-cases.spec.js", "line": 16, "group": "Cross-cutting edge cases", "title": "a server-side validation failure (bad HSN) surfaces on Review, blocks sending, and is fixable via Edit", "ok": true, "ms": 16391}, {"id": "TC-098", "file": "09-edge-cases.spec.js", "line": 42, "group": "Cross-cutting edge cases", "title": "refreshing the page mid-wizard returns to a clean Start (no stale state, no crash)", "ok": true, "ms": 10990}, {"id": "TC-099", "file": "09-edge-cases.spec.js", "line": 51, "group": "Cross-cutting edge cases", "title": "after creation only post-creation steps are clickable, and never the one you're on", "ok": true, "ms": 3716}, {"id": "TC-100", "file": "09-edge-cases.spec.js", "line": 61, "group": "Cross-cutting edge cases", "title": "the Tax Category survives a trip through Review's Edit and is not silently reset", "ok": true, "ms": 19158}], "groups": {"00-smoke.spec.js": ["Test harness", "Confirms the API-driven setup (create, approve, dispatch a Delivery Challan) that the UI scenarios depend on."], "01-start.spec.js": ["Step 1 · Start", "Entry cards, DC Type and predecessor pickers, and the rules for what can be chosen first."], "02-header-party.spec.js": ["Step 2 · Header & Party", "The merged Company, Party, Consignee and Dispatch From page: defaults, auto-fill, required fields."], "03-items.spec.js": ["Step 3 · Items", "Tax Category, the single GST Rate column and its IGST or CGST+SGST split, totals, keyboard entry and CSV bulk fill."], "04-movement.spec.js": ["Step 4 · Movement Details", "Purpose, read-only Returnable, Rule 55 text, contact person and the Dispatch Details block for outward documents."], "05-review.spec.js": ["Step 5 · Review", "Summary cards, totals, E-Way Bill badge rules and the Edit links that return to Review."], "06-lifecycle-outward.spec.js": ["Outward lifecycle", "Create, approve, reject, E-Way Bill (manual and GSP), dispatch, cancel, print preview and the printed document."], "07-inward.spec.js": ["Inward lifecycle", "Inward document creation, approval and receipt."], "08-returns-redirect.spec.js": ["Returns and Redirect", "Predecessor pickers, locked return rows, quantity limits, partial and repeat returns, redirect and return against inward."], "09-edge-cases.spec.js": ["Cross-cutting edge cases", "Double submit, server validation errors, page refresh, step-indicator rules and Tax Category persistence."]}};
|