@piwitests/server 0.18.2 → 0.19.0
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{BlnwU1OO.js → -09h6CA9.js} +1 -1
- package/.output/public/_nuxt/279D2RYp.js +1 -0
- package/.output/public/_nuxt/81InBX9v.js +1 -0
- package/.output/public/_nuxt/{CUvGJXY3.js → Ar3IelOY.js} +1 -1
- package/.output/public/_nuxt/B33iXw77.js +1 -0
- package/.output/public/_nuxt/B3B9Ii2A.js +1 -0
- package/.output/public/_nuxt/B3HO8kuh.js +1 -0
- package/.output/public/_nuxt/B44A4LSJ.js +1 -0
- package/.output/public/_nuxt/{C8OCrfDP.js → B7NBP1C-.js} +1 -1
- package/.output/public/_nuxt/{DZ3Vfcpz.js → B9WhzpKO.js} +1 -1
- package/.output/public/_nuxt/{DWowvnwc.js → BCMuIgP5.js} +1 -1
- package/.output/public/_nuxt/BDicZ1gQ.js +1 -0
- package/.output/public/_nuxt/BJ0XQElc.js +1 -0
- package/.output/public/_nuxt/{xqiPI_FQ.js → BMvCSA6h.js} +1 -1
- package/.output/public/_nuxt/BPQoBGg5.js +1 -0
- package/.output/public/_nuxt/BPRffDuo.js +1 -0
- package/.output/public/_nuxt/BSIxhGsh.js +1 -0
- package/.output/public/_nuxt/BVaxh6Nl.js +4 -0
- package/.output/public/_nuxt/{hgHc4teu.js → BX9ZXe98.js} +1 -1
- package/.output/public/_nuxt/{CcXaak_K.js → BYDaY0Z7.js} +1 -1
- package/.output/public/_nuxt/{S5DLdEpg.js → Bc8mOoz9.js} +2 -2
- package/.output/public/_nuxt/BccXfBfI.js +1 -0
- package/.output/public/_nuxt/{Bd3HqPMF.js → BeLWlVK0.js} +1 -1
- package/.output/public/_nuxt/{D5oNv2cB.js → BfTuX0wq.js} +1 -1
- package/.output/public/_nuxt/BjaRappk.js +1 -0
- package/.output/public/_nuxt/{By4YL7mx.js → Bn0YQDyy.js} +1 -1
- package/.output/public/_nuxt/Bp5ELvx9.js +1 -0
- package/.output/public/_nuxt/BpUaY9nH.js +2 -0
- package/.output/public/_nuxt/BqV0l12c.js +1 -0
- package/.output/public/_nuxt/{BjCHB89N.js → Bti38m-M.js} +1 -1
- package/.output/public/_nuxt/{QmMoMxLM.js → Bu2aaVIY.js} +3 -3
- package/.output/public/_nuxt/{DZUgX70W.js → BuMC3WjZ.js} +1 -1
- package/.output/public/_nuxt/{BJtlcTrb.js → BxCKKeYs.js} +1 -1
- package/.output/public/_nuxt/{CfOLBbW9.js → C-elpgyr.js} +1 -1
- package/.output/public/_nuxt/C2_3mdPC.js +1 -0
- package/.output/public/_nuxt/{BLIRKrbM.js → C5iG7O4O.js} +4 -4
- package/.output/public/_nuxt/C7P1UCO2.js +1 -0
- package/.output/public/_nuxt/{hH1UFE3Z.js → C95YAaJq.js} +1 -1
- package/.output/public/_nuxt/{BXY_PWcx.js → C9_jrmk9.js} +2 -2
- package/.output/public/_nuxt/CDk0q2hV.js +2 -0
- package/.output/public/_nuxt/{kjYMoWWx.js → CGNkHojN.js} +3 -3
- package/.output/public/_nuxt/CHEFCN8Q.js +1 -0
- package/.output/public/_nuxt/CHNwfU1y.js +1 -0
- package/.output/public/_nuxt/CK_2LZBS.js +1 -0
- package/.output/public/_nuxt/CNFYDQmj.js +1 -0
- package/.output/public/_nuxt/{DZOS7Fh7.js → CTxDO9fB.js} +1 -1
- package/.output/public/_nuxt/{kS3boz40.js → CU5S9GCh.js} +1 -1
- package/.output/public/_nuxt/{DZ1zNBVM.js → CUtJobDm.js} +1 -1
- package/.output/public/_nuxt/CV9-fTmY.js +1 -0
- package/.output/public/_nuxt/{e7zD3uJ0.js → CYsTqbBS.js} +1 -1
- package/.output/public/_nuxt/{C9YzQCiq.js → CZfMdzfk.js} +1 -1
- package/.output/public/_nuxt/{B-IcwqZ2.js → Cdff9XNh.js} +1 -1
- package/.output/public/_nuxt/{CNMoZYMv.js → ClOqkAcc.js} +1 -1
- package/.output/public/_nuxt/{DXbPFI1d.js → CpjgB2aY.js} +1 -1
- package/.output/public/_nuxt/CrwJAwhk.js +1 -0
- package/.output/public/_nuxt/CtQBsNUb.js +1 -0
- package/.output/public/_nuxt/CuSVQEkS.js +3 -0
- package/.output/public/_nuxt/{Df7kUO0m.js → CylWPruw.js} +1 -1
- package/.output/public/_nuxt/CzGyac8q.js +1 -0
- package/.output/public/_nuxt/D-c8ZSws.js +1 -0
- package/.output/public/_nuxt/{B2oUeBbA.js → D0HNloZ9.js} +1 -1
- package/.output/public/_nuxt/{DBtBvrYc.js → D55D4EYo.js} +1 -1
- package/.output/public/_nuxt/{CfPSts5n.js → DDDpCFpF.js} +1 -1
- package/.output/public/_nuxt/{CPLJeOCb.js → DEFEpYzn.js} +1 -1
- package/.output/public/_nuxt/DGfAxLHV.js +1 -0
- package/.output/public/_nuxt/DHDtnj7p.js +1 -0
- package/.output/public/_nuxt/DLSrtpsA.js +1 -0
- package/.output/public/_nuxt/DP8hfJ9h.js +1 -0
- package/.output/public/_nuxt/DS636elg.js +1 -0
- package/.output/public/_nuxt/{Cng9gj7q.js → DT53RWbC.js} +1 -1
- package/.output/public/_nuxt/DVDXJYq2.js +2 -0
- package/.output/public/_nuxt/DW0xl3I6.js +17 -0
- package/.output/public/_nuxt/{4TxgDGVa.js → DX-MDGb3.js} +1 -1
- package/.output/public/_nuxt/DcmZRa_F.js +1 -0
- package/.output/public/_nuxt/DgE2YE3R.js +1 -0
- package/.output/public/_nuxt/Dgf5N4Ng.js +1 -0
- package/.output/public/_nuxt/DiOLdHBC.js +1 -0
- package/.output/public/_nuxt/DiZyJYez.js +1 -0
- package/.output/public/_nuxt/Dk9fwOCm.js +34 -0
- package/.output/public/_nuxt/{BlA8mIS-.js → Dnpkl-1q.js} +1 -1
- package/.output/public/_nuxt/DoUy4UHi.js +44 -0
- package/.output/public/_nuxt/{CN1mJlvD.js → DprVVyUQ.js} +1 -1
- package/.output/public/_nuxt/{DD5HpaW9.js → DslPMqfa.js} +1 -1
- package/.output/public/_nuxt/{BFP6M-20.js → FUXhyidq.js} +1 -1
- package/.output/public/_nuxt/HXerICAi.js +79 -0
- package/.output/public/_nuxt/{gnCL8GjZ.js → IvQlbZk6.js} +1 -1
- package/.output/public/_nuxt/{BOCwBVnz.js → Jo8kRmHz.js} +1 -1
- package/.output/public/_nuxt/{oFM1KLWA.js → KnfsST6Y.js} +1 -1
- package/.output/public/_nuxt/NQikbhmK.js +253 -0
- package/.output/public/_nuxt/OSduWzyz.js +1 -0
- package/.output/public/_nuxt/SfMRXW25.js +5 -0
- package/.output/public/_nuxt/{BBK2-Krn.js → SlIRLREZ.js} +2 -2
- package/.output/public/_nuxt/TagBadge.By1E6r4y.css +1 -0
- package/.output/public/_nuxt/WsxFTEFq.js +10 -0
- package/.output/public/_nuxt/YVN7WG7q.js +1 -0
- package/.output/public/_nuxt/{rTvJTef_.js → ZFiQCMUB.js} +1 -1
- package/.output/public/_nuxt/aQgs_c6e.js +9 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/ab473028-4b37-4884-b243-b8f6e5046e5e.json +1 -0
- package/.output/public/_nuxt/{B1X__ilH.js → cHAnlQbv.js} +1 -1
- package/.output/public/_nuxt/dYCKgE-3.js +5 -0
- package/.output/public/_nuxt/{BeFDVhpA.js → eaVkJRSa.js} +1 -1
- package/.output/public/_nuxt/entry.CPhW41mh.css +1 -0
- package/.output/public/_nuxt/{Dwws9U0D.js → eptP4pGv.js} +1 -1
- package/.output/public/_nuxt/fVcG504p.js +1 -0
- package/.output/public/_nuxt/g26aVPxc.js +1 -0
- package/.output/public/_nuxt/{CsUoYK75.js → ndShiWE8.js} +1 -1
- package/.output/public/_nuxt/nv9-6vBK.js +1 -0
- package/.output/public/_nuxt/rWNTSFD6.js +3 -0
- package/.output/public/_nuxt/tvgqrYDd.js +1 -0
- package/.output/public/_nuxt/{wHnZ9OaL.js → y17lMTFy.js} +1 -1
- package/.output/public/_nuxt/{qpI-_f9Q.js → ybDYeNxd.js} +1 -1
- package/.output/public/_nuxt/{D0cnIs93.js → zQyPuvV1.js} +1 -1
- package/.output/public/demo/seed.version.json +2 -2
- package/.output/server/chunks/_/ai-prompt-preview.mjs +38 -0
- package/.output/server/chunks/_/ai-prompt-preview.mjs.map +1 -0
- package/.output/server/chunks/_/collect.mjs +122 -0
- package/.output/server/chunks/_/collect.mjs.map +1 -0
- package/.output/server/chunks/_/import-runs.mjs +351 -0
- package/.output/server/chunks/_/import-runs.mjs.map +1 -0
- package/.output/server/chunks/_/markers.mjs +1 -1
- package/.output/server/chunks/_/quarantine.mjs +112 -0
- package/.output/server/chunks/_/quarantine.mjs.map +1 -0
- package/.output/server/chunks/_/users.mjs +1 -1
- package/.output/server/chunks/build/{Alert-Bp1Wz_sq.mjs → Alert-C4xq8lao.mjs} +2 -2
- package/.output/server/chunks/build/Alert-C4xq8lao.mjs.map +1 -0
- package/.output/server/chunks/build/{Breadcrumb-C9ZPTLym.mjs → Breadcrumb-Ak2Lg3oM.mjs} +3 -3
- package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +1 -0
- package/.output/server/chunks/build/{BreadcrumbNav-C3y42Vun.mjs → BreadcrumbNav-DO7I_z-n.mjs} +3 -3
- package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +1 -0
- package/.output/server/chunks/build/{BrowserBadge-DNCp9pF-.mjs → BrowserBadge-D33lqUcj.mjs} +5 -5
- package/.output/server/chunks/build/BrowserBadge-D33lqUcj.mjs.map +1 -0
- package/.output/server/chunks/build/{ChartCard-Fr557IbV.mjs → ChartCard-Y1UKwMsf.mjs} +2 -2
- package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +1 -0
- package/.output/server/chunks/build/{Checkbox-cVOSIY93.mjs → Checkbox-DvUBGagc.mjs} +8 -8
- package/.output/server/chunks/build/Checkbox-DvUBGagc.mjs.map +1 -0
- package/.output/server/chunks/build/{CiEnvCard-DXPOhdSG.mjs → CiEnvCard-CrjOM17n.mjs} +25 -34
- package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs.map +1 -0
- package/.output/server/chunks/build/{CodeBlock-BGwNmJ8J.mjs → CodeBlock-BgE-NSmE.mjs} +7 -22
- package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardNavbar-Bdp-OwTN.mjs → DashboardNavbar-BHmMSPX7.mjs} +3 -3
- package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardSidebarToggle-Ji6ADuqF.mjs → DashboardSidebarToggle-DCTnHiIv.mjs} +3 -3
- package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +1 -0
- package/.output/server/chunks/build/{DataLocationCard-D6xSOrme.mjs → DataLocationCard-B_YHdzSz.mjs} +3 -3
- package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +1 -0
- package/.output/server/chunks/build/{DiagnosisPanel-DV1xwGu4.mjs → DiagnosisPanel-B646dK4p.mjs} +17 -528
- package/.output/server/chunks/build/DiagnosisPanel-B646dK4p.mjs.map +1 -0
- package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs +43 -0
- package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +1 -0
- package/.output/server/chunks/build/{EmptyState-DV3oT_xz.mjs → EmptyState-Dtlab7S9.mjs} +3 -3
- package/.output/server/chunks/build/EmptyState-Dtlab7S9.mjs.map +1 -0
- package/.output/server/chunks/build/{EntityLinks-DeOP13Kr.mjs → EntityLinks-D3fp57pR.mjs} +6 -6
- package/.output/server/chunks/build/EntityLinks-D3fp57pR.mjs.map +1 -0
- package/.output/server/chunks/build/{EnvManagedBadge-Qpn58Nmr.mjs → EnvManagedBadge-Bg3FSiU1.mjs} +3 -3
- package/.output/server/chunks/build/EnvManagedBadge-Bg3FSiU1.mjs.map +1 -0
- package/.output/server/chunks/build/{FormField-B-GSn_VR.mjs → FormField-B0HKsdMd.mjs} +3 -3
- package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +1 -0
- package/.output/server/chunks/build/{HelpHint-YEMWtKu1.mjs → HelpHint-DrcIv-Oj.mjs} +53 -6
- package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +1 -0
- package/.output/server/chunks/build/{Label-DBvbHd3A.mjs → Label-DYDR1Oeh.mjs} +2 -2
- package/.output/server/chunks/build/Label-DYDR1Oeh.mjs.map +1 -0
- package/.output/server/chunks/build/{MiniRunBars-C3HG-EYm.mjs → MiniRunBars-CZMugDrh.mjs} +2 -2
- package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +1 -0
- package/.output/server/chunks/build/{Modal-CfA78Hm1.mjs → Modal-Ck2XLt8d.mjs} +2 -2
- package/.output/server/chunks/build/Modal-Ck2XLt8d.mjs.map +1 -0
- package/.output/server/chunks/build/{OpenInIdeLink-B92wosXu.mjs → OpenInIdeLink-C4MXA8ya.mjs} +6 -6
- package/.output/server/chunks/build/{OpenInIdeLink-B92wosXu.mjs.map → OpenInIdeLink-C4MXA8ya.mjs.map} +1 -1
- package/.output/server/chunks/build/{ProjectTestCasesTable-9Ia825h8.mjs → ProjectTestCasesTable-CxfQ5wtN.mjs} +120 -45
- package/.output/server/chunks/build/ProjectTestCasesTable-CxfQ5wtN.mjs.map +1 -0
- package/.output/server/chunks/build/{RovingFocusItem-CxhHdNGo.mjs → RovingFocusItem-BJSzTBjy.mjs} +2 -2
- package/.output/server/chunks/build/RovingFocusItem-BJSzTBjy.mjs.map +1 -0
- package/.output/server/chunks/build/{RunReports-BpJqLHY9.mjs → RunReports-DFLv51TX.mjs} +8 -6
- package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +1 -0
- package/.output/server/chunks/build/{RunStatusBadge-BhmJ_RKM.mjs → RunStatusBadge-FfGb6bkW.mjs} +3 -2
- package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +1 -0
- package/.output/server/chunks/build/{SectionCard-COd9TuDq.mjs → SectionCard-CN-v0FZ_.mjs} +2 -2
- package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +1 -0
- package/.output/server/chunks/build/{Select-ppPz926C.mjs → Select-CUqj50wi.mjs} +4 -4
- package/.output/server/chunks/build/Select-CUqj50wi.mjs.map +1 -0
- package/.output/server/chunks/build/{SelectMenu-799c_Ils.mjs → SelectMenu-Db7osY7J.mjs} +4 -4
- package/.output/server/chunks/build/{SelectMenu-799c_Ils.mjs.map → SelectMenu-Db7osY7J.mjs.map} +1 -1
- package/.output/server/chunks/build/{Separator-CxZdx8kw.mjs → Separator-CR4WcEKD.mjs} +2 -2
- package/.output/server/chunks/build/Separator-CR4WcEKD.mjs.map +1 -0
- package/.output/server/chunks/build/{SettingsField-DDD4oqys.mjs → SettingsField-D6iEYbEc.mjs} +6 -6
- package/.output/server/chunks/build/SettingsField-D6iEYbEc.mjs.map +1 -0
- package/.output/server/chunks/build/{Slideover-B95Rj237.mjs → Slideover-DgCa80mf.mjs} +3 -3
- package/.output/server/chunks/build/Slideover-DgCa80mf.mjs.map +1 -0
- package/.output/server/chunks/build/{Switch-xQQ3_ME1.mjs → Switch-CgUioOYB.mjs} +5 -5
- package/.output/server/chunks/build/Switch-CgUioOYB.mjs.map +1 -0
- package/.output/server/chunks/build/{Table-CPhhVzDv.mjs → Table-BRk04Hd2.mjs} +3 -3
- package/.output/server/chunks/build/Table-BRk04Hd2.mjs.map +1 -0
- package/.output/server/chunks/build/{Tabs-BV9XqjoO.mjs → Tabs-Bbsg9wag.mjs} +3 -3
- package/.output/server/chunks/build/Tabs-Bbsg9wag.mjs.map +1 -0
- package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs +31 -0
- package/.output/server/chunks/build/TagBadge-DwzoFCBb.mjs.map +1 -0
- package/.output/server/chunks/build/TagBadge-styles.jhuZ4NjP.mjs +8 -0
- package/.output/server/chunks/build/TagBadge-styles.jhuZ4NjP.mjs.map +1 -0
- package/.output/server/chunks/build/{TestCaseHistoryChart-DMb-xSJa.mjs → TestCaseHistoryChart-nMLPhdvD.mjs} +6 -6
- package/.output/server/chunks/build/TestCaseHistoryChart-nMLPhdvD.mjs.map +1 -0
- package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs +200 -0
- package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +1 -0
- package/.output/server/chunks/build/{TestStatusBar-CEzt76wk.mjs → TestStatusBar-j6h2Jp6A.mjs} +15 -15
- package/.output/server/chunks/build/TestStatusBar-j6h2Jp6A.mjs.map +1 -0
- package/.output/server/chunks/build/{Textarea-DrrqQUVG.mjs → Textarea-Dv2-lOvW.mjs} +2 -2
- package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +1 -0
- package/.output/server/chunks/build/{Tooltip-7vwuDPrZ.mjs → Tooltip-BOazooWP.mjs} +3 -3
- package/.output/server/chunks/build/Tooltip-BOazooWP.mjs.map +1 -0
- package/.output/server/chunks/build/{VisuallyHiddenInput-C9eJVpPW.mjs → VisuallyHiddenInput-D6kBJxVd.mjs} +2 -2
- package/.output/server/chunks/build/VisuallyHiddenInput-D6kBJxVd.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-B2yirIuA.mjs → _id_-B78ky13D.mjs} +798 -358
- package/.output/server/chunks/build/_id_-B78ky13D.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-bWcP2xFl.mjs → _id_-BHh65pfg.mjs} +690 -443
- package/.output/server/chunks/build/_id_-BHh65pfg.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-B4V5fop6.mjs → _id_-Rzkqx55x.mjs} +297 -60
- package/.output/server/chunks/build/{_id_-B4V5fop6.mjs.map → _id_-Rzkqx55x.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-CE0Gso6i.mjs → _id_-z5N6HPyC.mjs} +89 -40
- package/.output/server/chunks/build/_id_-z5N6HPyC.mjs.map +1 -0
- package/.output/server/chunks/build/{about-CoJjvUwM.mjs → about-CvSP73Ug.mjs} +100 -52
- package/.output/server/chunks/build/about-CvSP73Ug.mjs.map +1 -0
- package/.output/server/chunks/build/{account-Cn-eZqXM.mjs → account-DAfvaD-F.mjs} +21 -9
- package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +1 -0
- package/.output/server/chunks/build/{ai-7jdaPOmj.mjs → ai-B4VJ9K1K.mjs} +45 -23
- package/.output/server/chunks/build/{ai-7jdaPOmj.mjs.map → ai-B4VJ9K1K.mjs.map} +1 -1
- package/.output/server/chunks/build/{analytics-B276WPeU.mjs → analytics-CJPC6t4L.mjs} +65 -39
- package/.output/server/chunks/build/{analytics-B276WPeU.mjs.map → analytics-CJPC6t4L.mjs.map} +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/compare-RxHSOdsO.mjs +12 -0
- package/.output/server/chunks/build/{db.client-aHcD0wyX.mjs → db.client-CQoVTYB9.mjs} +83 -5
- package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +1 -0
- package/.output/server/chunks/build/{default-BSzdkM_L.mjs → default-zvbFgDJG.mjs} +36 -24
- package/.output/server/chunks/build/default-zvbFgDJG.mjs.map +1 -0
- package/.output/server/chunks/build/{docs-BN_x1OW3.mjs → docs-DyuVEgtB.mjs} +30 -49
- package/.output/server/chunks/build/{docs-BN_x1OW3.mjs.map → docs-DyuVEgtB.mjs.map} +1 -1
- package/.output/server/chunks/build/{edit-C9Z7oZeu.mjs → edit-CFR5g2Qf.mjs} +30 -18
- package/.output/server/chunks/build/edit-CFR5g2Qf.mjs.map +1 -0
- package/.output/server/chunks/build/{fetch-8kznMtBM.mjs → fetch-B4FwBOzu.mjs} +3 -3
- package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +1 -0
- package/.output/server/chunks/build/{forgot-password-BqPF4Rxs.mjs → forgot-password-CC__1OnV.mjs} +17 -5
- package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +1 -0
- package/.output/server/chunks/build/{help-content-DmFnuhNu.mjs → help-content-C876a9WD.mjs} +37 -8
- package/.output/server/chunks/build/help-content-C876a9WD.mjs.map +1 -0
- package/.output/server/chunks/build/import-CZo3djDi.mjs +1021 -0
- package/.output/server/chunks/build/import-CZo3djDi.mjs.map +1 -0
- package/.output/server/chunks/build/{index-CULN3-en.mjs → index-CU2nZhAa.mjs} +113 -42
- package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +1 -0
- package/.output/server/chunks/build/{index-DVUtBexc.mjs → index-D7fe97l3.mjs} +1305 -281
- package/.output/server/chunks/build/index-D7fe97l3.mjs.map +1 -0
- package/.output/server/chunks/build/{index-BR9hw6qk.mjs → index-Stqw0dEI.mjs} +50 -30
- package/.output/server/chunks/build/index-Stqw0dEI.mjs.map +1 -0
- package/.output/server/chunks/build/{index-BK9PTRpd.mjs → index-gCw_y4ZJ.mjs} +87 -70
- package/.output/server/chunks/build/{index-BK9PTRpd.mjs.map → index-gCw_y4ZJ.mjs.map} +1 -1
- package/.output/server/chunks/build/{index-Ba-Fifra.mjs → index-tR6owKzj.mjs} +18 -6
- package/.output/server/chunks/build/index-tR6owKzj.mjs.map +1 -0
- package/.output/server/chunks/build/{isValueEqualOrExist-DBZjbD_3.mjs → isValueEqualOrExist-D2qw9YEr.mjs} +3 -3
- package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs.map +1 -0
- package/.output/server/chunks/build/{login-D2XZDuek.mjs → login-Da4u1IlW.mjs} +19 -7
- package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +1 -0
- package/.output/server/chunks/build/{mcp-_o6cMS6m.mjs → mcp-B3IUvRgD.mjs} +27 -21
- package/.output/server/chunks/build/mcp-B3IUvRgD.mjs.map +1 -0
- package/.output/server/chunks/build/{notifications-Dzm9c0u_.mjs → notifications-abDv0id8.mjs} +27 -21
- package/.output/server/chunks/build/notifications-abDv0id8.mjs.map +1 -0
- package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs +368 -0
- package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs.map +1 -0
- package/.output/server/chunks/build/{reset-password-gpFzIEDj.mjs → reset-password-BmrUS4ZD.mjs} +17 -5
- package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +238 -36
- package/.output/server/chunks/build/{settings-pNyPBXVa.mjs → settings-Du7YqF8i.mjs} +23 -10
- package/.output/server/chunks/build/settings-Du7YqF8i.mjs.map +1 -0
- package/.output/server/chunks/build/{settings-metadata-B0wo5R-W.mjs → settings-metadata-DrEqWcW-.mjs} +11 -2
- package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +1 -0
- package/.output/server/chunks/build/{storage-XelzuyPy.mjs → storage-B4vzxd8G.mjs} +41 -31
- package/.output/server/chunks/build/storage-B4vzxd8G.mjs.map +1 -0
- package/.output/server/chunks/build/styles.mjs +1 -0
- package/.output/server/chunks/build/{tags-DrCQ7QSw.mjs → tags-DauTe_F-.mjs} +22 -10
- package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +1 -0
- package/.output/server/chunks/build/{test-cases-pmOxi-AN.mjs → test-cases-DUvaO1He.mjs} +38 -24
- package/.output/server/chunks/build/test-cases-DUvaO1He.mjs.map +1 -0
- package/.output/server/chunks/build/{timeout-hygiene-CNs71Iah.mjs → timeout-hygiene-CbnSaVbK.mjs} +20 -8
- package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +1 -0
- package/.output/server/chunks/build/{useAiStatus-ZO987RY7.mjs → useAiStatus-CWvIo32Q.mjs} +89 -89
- package/.output/server/chunks/build/useAiStatus-CWvIo32Q.mjs.map +1 -0
- package/.output/server/chunks/build/{useCopy-BQQKcwlq.mjs → useCopy-CeKWgHyT.mjs} +2 -2
- package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +1 -0
- package/.output/server/chunks/build/{PageStateCard-Bwee6JTk.mjs → useCopyRich-BemRsKgv.mjs} +418 -39
- package/.output/server/chunks/build/useCopyRich-BemRsKgv.mjs.map +1 -0
- package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs +46 -0
- package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs.map +1 -0
- package/.output/server/chunks/build/{useFormControl-BLpq1s4O.mjs → useFormControl-CZ9So7iX.mjs} +2 -2
- package/.output/server/chunks/build/useFormControl-CZ9So7iX.mjs.map +1 -0
- package/.output/server/chunks/build/{useOpenInIde-kMZ7Jw5c.mjs → useOpenInIde-4GFf-kdi.mjs} +2 -2
- package/.output/server/chunks/build/useOpenInIde-4GFf-kdi.mjs.map +1 -0
- package/.output/server/chunks/build/{useSettingsNav-NjI2seBy.mjs → useSettingsNav-C3O866KC.mjs} +6 -6
- package/.output/server/chunks/build/useSettingsNav-C3O866KC.mjs.map +1 -0
- package/.output/server/chunks/build/{useTreeViewCookie-DVYpxW-p.mjs → useTreeViewCookie-CQjQdTkH.mjs} +2 -2
- package/.output/server/chunks/build/useTreeViewCookie-CQjQdTkH.mjs.map +1 -0
- package/.output/server/chunks/build/{users-NmAUZs3i.mjs → users-CTUqXyGh.mjs} +22 -10
- package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +1 -0
- package/.output/server/chunks/build/{virtualizer-ZaqK4guJ.mjs → virtualizer-Cd1hhlxC.mjs} +5 -5
- package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs.map +1 -0
- package/.output/server/chunks/build/{wasted-time-CguAF9zc.mjs → wasted-time-lYkx5YO4.mjs} +26 -14
- package/.output/server/chunks/build/wasted-time-lYkx5YO4.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +4960 -1155
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs +13 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +12 -0
- package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/admin/stats.get.mjs +12 -0
- package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/ai/status.get.mjs +12 -0
- package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +12 -0
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/change-password.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/change-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/login.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/logout.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/me.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/reset-password.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/setup.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/setup.post.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/setup.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +12 -0
- package/.output/server/chunks/routes/api/auth/verify-email.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +12 -0
- package/.output/server/chunks/routes/api/channels/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +12 -0
- package/.output/server/chunks/routes/api/channels/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +12 -0
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +12 -0
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +12 -0
- package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +12 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +12 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +12 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +12 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +24 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +64 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +56 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +12 -0
- package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/files/_...path_.get.mjs +13 -32
- package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +13 -1
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +12 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +13 -1
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +13 -1
- package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +13 -1
- package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get5.mjs +12 -0
- package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +12 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +13 -1
- package/.output/server/chunks/routes/api/index.post2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +13 -1
- package/.output/server/chunks/routes/api/index.post3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +13 -1
- package/.output/server/chunks/routes/api/index.post4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post5.mjs +13 -1
- package/.output/server/chunks/routes/api/index.post5.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post6.mjs +12 -0
- package/.output/server/chunks/routes/api/index.post6.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +13 -1
- package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id_.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/links/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.put.mjs +13 -1
- package/.output/server/chunks/routes/api/markers/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/notifications/stream.get.mjs +13 -1
- package/.output/server/chunks/routes/api/notifications/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +22 -2
- package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/members.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/members.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +58 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +57 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +72 -0
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.put.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects.get.mjs +13 -1
- package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/search.get.mjs +13 -1
- package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/models.post.mjs +12 -0
- package/.output/server/chunks/routes/api/settings/ai/models.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai.put.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/ai.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +57 -0
- package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +63 -0
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +12 -0
- package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/smtp.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/smtp.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +13 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/stream.get.mjs +13 -1
- package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs +13 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +25 -3
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +60 -0
- package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +15 -1
- package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +196 -0
- package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +78 -0
- package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs +201 -0
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/recent.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/setup.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/start.post.mjs +13 -1
- package/.output/server/chunks/routes/api/test-runs/start.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +32 -15
- package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +21 -6
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +154 -3
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/traces/check.post.mjs +13 -1
- package/.output/server/chunks/routes/api/traces/check.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +12 -0
- package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/index.get.mjs +12 -0
- package/.output/server/chunks/routes/api/users/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/index.post.mjs +13 -1
- package/.output/server/chunks/routes/api/users/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +13 -1
- package/.output/server/chunks/routes/api/users/_id/invite.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +13 -1
- package/.output/server/chunks/routes/api/users/_id/projects.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +13 -1
- package/.output/server/chunks/routes/api/users/_id/projects.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +12 -0
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.patch.mjs +12 -0
- package/.output/server/chunks/routes/api/users/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/version.get.mjs +13 -1
- package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
- package/.output/server/chunks/routes/mcp.post.mjs +13 -1
- package/.output/server/chunks/routes/mcp.post.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/tasks/sweep.mjs +12 -0
- package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
- package/.output/server/chunks/tasks/sweep2.mjs +12 -0
- package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
- package/.output/server/database/migrations/0039_remarkable_jean_grey.sql +2 -0
- package/.output/server/database/migrations/0040_organic_phalanx.sql +8 -0
- package/.output/server/database/migrations/0041_tense_gravity.sql +5 -0
- package/.output/server/database/migrations/0042_burly_hemingway.sql +19 -0
- package/.output/server/database/migrations/meta/0039_snapshot.json +3403 -0
- package/.output/server/database/migrations/meta/0040_snapshot.json +3457 -0
- package/.output/server/database/migrations/meta/0041_snapshot.json +3492 -0
- package/.output/server/database/migrations/meta/0042_snapshot.json +3618 -0
- package/.output/server/database/migrations/meta/_journal.json +28 -0
- package/.output/server/database/migrations-pg/0040_lazy_layla_miller.sql +2 -0
- package/.output/server/database/migrations-pg/0041_light_screwball.sql +8 -0
- package/.output/server/database/migrations-pg/0042_serious_layla_miller.sql +5 -0
- package/.output/server/database/migrations-pg/0043_wonderful_mordo.sql +19 -0
- package/.output/server/database/migrations-pg/meta/0040_snapshot.json +4060 -0
- package/.output/server/database/migrations-pg/meta/0041_snapshot.json +4123 -0
- package/.output/server/database/migrations-pg/meta/0042_snapshot.json +4153 -0
- package/.output/server/database/migrations-pg/meta/0043_snapshot.json +4308 -0
- package/.output/server/database/migrations-pg/meta/_journal.json +28 -0
- package/.output/server/index.mjs +13 -1
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/node_modules/fflate/esm/index.mjs +2710 -0
- package/.output/server/node_modules/fflate/package.json +128 -0
- package/.output/server/node_modules/highlight.js/es/languages/yaml.js +213 -0
- package/.output/server/node_modules/marked/lib/marked.esm.js +72 -0
- package/.output/server/node_modules/marked/package.json +103 -0
- package/.output/server/package.json +3 -1
- package/package.json +2 -2
- package/.output/public/_nuxt/9-wVZMur.js +0 -4
- package/.output/public/_nuxt/B-5GukRk.js +0 -1
- package/.output/public/_nuxt/B1G3GGhQ.js +0 -1
- package/.output/public/_nuxt/B1zMFx24.js +0 -1
- package/.output/public/_nuxt/B4jvLMfS.js +0 -1
- package/.output/public/_nuxt/BBnX5xw4.js +0 -2
- package/.output/public/_nuxt/BHpUiv6j.js +0 -3
- package/.output/public/_nuxt/BLOUs6AE.js +0 -5
- package/.output/public/_nuxt/BT6p4Pgt.js +0 -2
- package/.output/public/_nuxt/BUXSUkJ_.js +0 -1
- package/.output/public/_nuxt/BVf6Yx9V.js +0 -26
- package/.output/public/_nuxt/BbS6Bwby.js +0 -1
- package/.output/public/_nuxt/BeKvLsja.js +0 -2
- package/.output/public/_nuxt/BeUm5UNV.js +0 -1
- package/.output/public/_nuxt/BfV444H3.js +0 -3
- package/.output/public/_nuxt/BjKamgHq.js +0 -1
- package/.output/public/_nuxt/BoJdjCVl.js +0 -4
- package/.output/public/_nuxt/BreO2PiA.js +0 -1
- package/.output/public/_nuxt/BvIDC_R-.js +0 -1
- package/.output/public/_nuxt/ByuJWADR.js +0 -34
- package/.output/public/_nuxt/C1dyLp_j.js +0 -1
- package/.output/public/_nuxt/CAUgpKsF.js +0 -2
- package/.output/public/_nuxt/CL9-VLTJ.js +0 -1
- package/.output/public/_nuxt/CazDIG_m.js +0 -1
- package/.output/public/_nuxt/CdMuck_X.js +0 -1
- package/.output/public/_nuxt/CfROFPse.js +0 -1
- package/.output/public/_nuxt/Cnapl7lZ.js +0 -1
- package/.output/public/_nuxt/CscWZxCi.js +0 -1
- package/.output/public/_nuxt/CuicKV-B.js +0 -34
- package/.output/public/_nuxt/Cyiu1VQD.js +0 -1
- package/.output/public/_nuxt/D6PUPmRC.js +0 -1
- package/.output/public/_nuxt/DCl2yo4g.js +0 -8
- package/.output/public/_nuxt/DHXWp5yD.js +0 -1
- package/.output/public/_nuxt/DHltYerF.js +0 -114
- package/.output/public/_nuxt/DLXydYJb.js +0 -47
- package/.output/public/_nuxt/DRPSi76A.js +0 -1
- package/.output/public/_nuxt/DS53kyHJ.js +0 -1
- package/.output/public/_nuxt/DWhBqv_7.js +0 -1
- package/.output/public/_nuxt/Dd0kK5WH.js +0 -1
- package/.output/public/_nuxt/Dga3Av-m.js +0 -1
- package/.output/public/_nuxt/DgwTpwfB.js +0 -1
- package/.output/public/_nuxt/DkI145a5.js +0 -1
- package/.output/public/_nuxt/DoFBTaDR.js +0 -1
- package/.output/public/_nuxt/Dr_dI5hB.js +0 -1
- package/.output/public/_nuxt/EPZOxdgq.js +0 -1
- package/.output/public/_nuxt/R1nNqTru.js +0 -1
- package/.output/public/_nuxt/builds/meta/7caf3cb3-d272-4dbd-bb3f-1eeb64fab5d1.json +0 -1
- package/.output/public/_nuxt/entry.ChQMshd4.css +0 -1
- package/.output/public/_nuxt/gCELhaU9.js +0 -1
- package/.output/public/_nuxt/ipDzNHcs.js +0 -5
- package/.output/public/_nuxt/qH_j2A3a.js +0 -1
- package/.output/public/_nuxt/r3SBLxtE.js +0 -1
- package/.output/public/_nuxt/rsiRgrVM.js +0 -1
- package/.output/public/_nuxt/swrbBdtB.js +0 -1
- package/.output/public/sw.js +0 -1
- package/.output/public/workbox-2fbc6a65.js +0 -1
- package/.output/server/chunks/build/Alert-Bp1Wz_sq.mjs.map +0 -1
- package/.output/server/chunks/build/Breadcrumb-C9ZPTLym.mjs.map +0 -1
- package/.output/server/chunks/build/BreadcrumbNav-C3y42Vun.mjs.map +0 -1
- package/.output/server/chunks/build/BrowserBadge-DNCp9pF-.mjs.map +0 -1
- package/.output/server/chunks/build/ChartCard-Fr557IbV.mjs.map +0 -1
- package/.output/server/chunks/build/Checkbox-cVOSIY93.mjs.map +0 -1
- package/.output/server/chunks/build/CiEnvCard-DXPOhdSG.mjs.map +0 -1
- package/.output/server/chunks/build/CodeBlock-BGwNmJ8J.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardNavbar-Bdp-OwTN.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardSidebarToggle-Ji6ADuqF.mjs.map +0 -1
- package/.output/server/chunks/build/DataLocationCard-D6xSOrme.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisPanel-DV1xwGu4.mjs.map +0 -1
- package/.output/server/chunks/build/EmptyState-DV3oT_xz.mjs.map +0 -1
- package/.output/server/chunks/build/EntityLinks-DeOP13Kr.mjs.map +0 -1
- package/.output/server/chunks/build/EnvManagedBadge-Qpn58Nmr.mjs.map +0 -1
- package/.output/server/chunks/build/FormField-B-GSn_VR.mjs.map +0 -1
- package/.output/server/chunks/build/HelpHint-YEMWtKu1.mjs.map +0 -1
- package/.output/server/chunks/build/Label-DBvbHd3A.mjs.map +0 -1
- package/.output/server/chunks/build/MiniRunBars-C3HG-EYm.mjs.map +0 -1
- package/.output/server/chunks/build/Modal-CfA78Hm1.mjs.map +0 -1
- package/.output/server/chunks/build/PageStateCard-Bwee6JTk.mjs.map +0 -1
- package/.output/server/chunks/build/ProjectTestCasesTable-9Ia825h8.mjs.map +0 -1
- package/.output/server/chunks/build/RovingFocusItem-CxhHdNGo.mjs.map +0 -1
- package/.output/server/chunks/build/RunReports-BpJqLHY9.mjs.map +0 -1
- package/.output/server/chunks/build/RunStatusBadge-BhmJ_RKM.mjs.map +0 -1
- package/.output/server/chunks/build/SectionCard-COd9TuDq.mjs.map +0 -1
- package/.output/server/chunks/build/Select-ppPz926C.mjs.map +0 -1
- package/.output/server/chunks/build/Separator-CxZdx8kw.mjs.map +0 -1
- package/.output/server/chunks/build/SettingsField-DDD4oqys.mjs.map +0 -1
- package/.output/server/chunks/build/Slideover-B95Rj237.mjs.map +0 -1
- package/.output/server/chunks/build/Switch-xQQ3_ME1.mjs.map +0 -1
- package/.output/server/chunks/build/Table-CPhhVzDv.mjs.map +0 -1
- package/.output/server/chunks/build/Tabs-BV9XqjoO.mjs.map +0 -1
- package/.output/server/chunks/build/TagBadge-BDcvvGxw.mjs +0 -47
- package/.output/server/chunks/build/TagBadge-BDcvvGxw.mjs.map +0 -1
- package/.output/server/chunks/build/TestCaseHistoryChart-DMb-xSJa.mjs.map +0 -1
- package/.output/server/chunks/build/TestStatusBar-CEzt76wk.mjs.map +0 -1
- package/.output/server/chunks/build/Textarea-DrrqQUVG.mjs.map +0 -1
- package/.output/server/chunks/build/Tooltip-7vwuDPrZ.mjs.map +0 -1
- package/.output/server/chunks/build/VisuallyHiddenInput-C9eJVpPW.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-B2yirIuA.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CE0Gso6i.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-bWcP2xFl.mjs.map +0 -1
- package/.output/server/chunks/build/about-CoJjvUwM.mjs.map +0 -1
- package/.output/server/chunks/build/account-Cn-eZqXM.mjs.map +0 -1
- package/.output/server/chunks/build/db.client-aHcD0wyX.mjs.map +0 -1
- package/.output/server/chunks/build/default-BSzdkM_L.mjs.map +0 -1
- package/.output/server/chunks/build/edit-C9Z7oZeu.mjs.map +0 -1
- package/.output/server/chunks/build/fetch-8kznMtBM.mjs.map +0 -1
- package/.output/server/chunks/build/forgot-password-BqPF4Rxs.mjs.map +0 -1
- package/.output/server/chunks/build/help-content-DmFnuhNu.mjs.map +0 -1
- package/.output/server/chunks/build/index-BR9hw6qk.mjs.map +0 -1
- package/.output/server/chunks/build/index-Ba-Fifra.mjs.map +0 -1
- package/.output/server/chunks/build/index-CULN3-en.mjs.map +0 -1
- package/.output/server/chunks/build/index-DVUtBexc.mjs.map +0 -1
- package/.output/server/chunks/build/isValueEqualOrExist-DBZjbD_3.mjs.map +0 -1
- package/.output/server/chunks/build/login-D2XZDuek.mjs.map +0 -1
- package/.output/server/chunks/build/mcp-_o6cMS6m.mjs.map +0 -1
- package/.output/server/chunks/build/notifications-Dzm9c0u_.mjs.map +0 -1
- package/.output/server/chunks/build/reset-password-gpFzIEDj.mjs.map +0 -1
- package/.output/server/chunks/build/settings-metadata-B0wo5R-W.mjs.map +0 -1
- package/.output/server/chunks/build/settings-pNyPBXVa.mjs.map +0 -1
- package/.output/server/chunks/build/storage-XelzuyPy.mjs.map +0 -1
- package/.output/server/chunks/build/tags-DrCQ7QSw.mjs.map +0 -1
- package/.output/server/chunks/build/test-cases-pmOxi-AN.mjs.map +0 -1
- package/.output/server/chunks/build/timeout-hygiene-CNs71Iah.mjs.map +0 -1
- package/.output/server/chunks/build/useAiStatus-ZO987RY7.mjs.map +0 -1
- package/.output/server/chunks/build/useCopy-BQQKcwlq.mjs.map +0 -1
- package/.output/server/chunks/build/useFormControl-BLpq1s4O.mjs.map +0 -1
- package/.output/server/chunks/build/useOpenInIde-kMZ7Jw5c.mjs.map +0 -1
- package/.output/server/chunks/build/useSettingsNav-NjI2seBy.mjs.map +0 -1
- package/.output/server/chunks/build/useTreeViewCookie-DVYpxW-p.mjs.map +0 -1
- package/.output/server/chunks/build/users-NmAUZs3i.mjs.map +0 -1
- package/.output/server/chunks/build/virtualizer-ZaqK4guJ.mjs.map +0 -1
- package/.output/server/chunks/build/wasted-time-CguAF9zc.mjs.map +0 -1
- /package/.output/public/_nuxt/{PageStateCard.BrM5HWjY.css → useCopyRich.BrM5HWjY.css} +0 -0
|
@@ -1,41 +1,44 @@
|
|
|
1
|
-
import { _ as _sfc_main$1$1, a as _sfc_main$
|
|
2
|
-
import { _ as _sfc_main$1$2 } from './Breadcrumb-
|
|
3
|
-
import { _ as __nuxt_component_3$1 } from './BreadcrumbNav-
|
|
4
|
-
import { u as useRoute, k as useRouter, r as useRuntimeConfig, l as useHead, j as useToast, n as _sfc_main$7$1, m as _sfc_main$k,
|
|
5
|
-
import { _ as _sfc_main$
|
|
1
|
+
import { _ as _sfc_main$1$1, a as _sfc_main$g } from './DashboardNavbar-BHmMSPX7.mjs';
|
|
2
|
+
import { _ as _sfc_main$1$2 } from './Breadcrumb-Ak2Lg3oM.mjs';
|
|
3
|
+
import { _ as __nuxt_component_3$1 } from './BreadcrumbNav-DO7I_z-n.mjs';
|
|
4
|
+
import { u as useRoute, k as useRouter, r as useRuntimeConfig, l as useHead, j as useToast, n as _sfc_main$7$1, m as _sfc_main$k, s as __nuxt_component_12$1, o as _sfc_main$p, y as __nuxt_component_7$1, _ as _sfc_main$d$1, v as _sfc_main$8$1, p as _sfc_main$j$1 } from './server.mjs';
|
|
5
|
+
import { _ as _sfc_main$h } from './Tooltip-BOazooWP.mjs';
|
|
6
6
|
import { _ as __nuxt_component_4 } from './NavbarActions-_YjrSUat.mjs';
|
|
7
|
-
import { _ as __nuxt_component_8, a as __nuxt_component_1$2, c as
|
|
8
|
-
import {
|
|
9
|
-
import { _ as
|
|
10
|
-
import { _ as
|
|
11
|
-
import { _ as
|
|
7
|
+
import { _ as __nuxt_component_8, a as __nuxt_component_1$2, c as __nuxt_component_13$2, b as __nuxt_component_14$3, d as __nuxt_component_15$1 } from './CiEnvCard-CrjOM17n.mjs';
|
|
8
|
+
import { u as useDetailGrid, _ as __nuxt_component_0$1 } from './useAiStatus-CWvIo32Q.mjs';
|
|
9
|
+
import { _ as __nuxt_component_14$2 } from './TestStatusBar-j6h2Jp6A.mjs';
|
|
10
|
+
import { _ as __nuxt_component_14$1 } from './DurationValue-D20oGbnc.mjs';
|
|
11
|
+
import { _ as _sfc_main$m } from './Card-BQP_oZkQ.mjs';
|
|
12
|
+
import { _ as __nuxt_component_2$2 } from './HelpHint-DrcIv-Oj.mjs';
|
|
12
13
|
import { _ as __nuxt_component_5 } from './MarkerBadge-D7meXy4u.mjs';
|
|
13
|
-
import { _ as
|
|
14
|
-
import {
|
|
14
|
+
import { _ as __nuxt_component_17$1 } from './EntityLinks-D3fp57pR.mjs';
|
|
15
|
+
import { p as prettyDateFormat, v as getStatusColor, f as formatRelativeTime, c as copyPreview, j as clusterStatusColor, i as clusterErrorTypeColor, z as reportIcon, n as fileApiUrl, w as createSortHeader, d as formatDuration, F as getStatusTextClass, E as getStatusIcon, a as formatStatusLabel, D as isStatusInFlight, C as isPiwiAnnotation } from './index-CU2nZhAa.mjs';
|
|
16
|
+
import { cB as formatBytes, bI as DEFAULT_WASTED_WAIT_PATTERNS, dP as isWastedWait } from '../nitro/nitro.mjs';
|
|
15
17
|
import { defineComponent, withAsyncContext, ref, computed, watch, withCtx, isRef, unref, createVNode, createTextVNode, openBlock, createBlock, createCommentVNode, toDisplayString, nextTick, mergeProps, Fragment, renderList, useModel, mergeModels, withDirectives, vModelText, useSSRContext } from 'vue';
|
|
16
18
|
import { ssrRenderComponent, ssrInterpolate, ssrRenderAttrs, ssrRenderClass, ssrRenderList, ssrRenderStyle, ssrRenderAttr, ssrRenderTeleport, ssrIncludeBooleanAttr } from 'vue/server-renderer';
|
|
17
|
-
import { b as buildRetryCommand } from './useOpenInIde-
|
|
18
|
-
import { u as useCopy } from './useCopy-
|
|
19
|
+
import { b as buildRetryCommand } from './useOpenInIde-4GFf-kdi.mjs';
|
|
20
|
+
import { u as useCopy } from './useCopy-CeKWgHyT.mjs';
|
|
19
21
|
import { _ as __nuxt_component_4$1 } from './FilterToolbar-BwXy8xSk.mjs';
|
|
20
|
-
import { _ as _sfc_main$
|
|
21
|
-
import { _ as _sfc_main$
|
|
22
|
-
import { _ as __nuxt_component_1$3 } from './OpenInIdeLink-
|
|
23
|
-
import {
|
|
22
|
+
import { _ as _sfc_main$o } from './Select-CUqj50wi.mjs';
|
|
23
|
+
import { _ as _sfc_main$q } from './Checkbox-DvUBGagc.mjs';
|
|
24
|
+
import { _ as __nuxt_component_1$3 } from './OpenInIdeLink-C4MXA8ya.mjs';
|
|
25
|
+
import { _ as __nuxt_component_2$3 } from './TestMetaBadges-D5_yUtIP.mjs';
|
|
26
|
+
import { _ as __nuxt_component_3$3 } from './BrowserBadge-D33lqUcj.mjs';
|
|
27
|
+
import { u as useTreeViewCookie } from './useTreeViewCookie-CQjQdTkH.mjs';
|
|
24
28
|
import { _ as __nuxt_component_5$1 } from './ErrorState-CktYyeEZ.mjs';
|
|
25
29
|
import { _ as __nuxt_component_1$1 } from './LoadingState-C3pBSuOO.mjs';
|
|
26
|
-
import { _ as
|
|
27
|
-
import { _ as __nuxt_component_11 } from './SectionCard-
|
|
30
|
+
import { _ as __nuxt_component_9$2 } from './EmptyState-Dtlab7S9.mjs';
|
|
31
|
+
import { _ as __nuxt_component_11 } from './SectionCard-CN-v0FZ_.mjs';
|
|
28
32
|
import { _ as __nuxt_component_3$2 } from './TableScroller-DMcdCVrH.mjs';
|
|
29
|
-
import { _ as _sfc_main$
|
|
30
|
-
import { _ as _sfc_main$
|
|
31
|
-
import { _ as __nuxt_component_0$2 } from './DiagnosisPanel-
|
|
32
|
-
import { u as useFetch } from './fetch-
|
|
33
|
-
import {
|
|
34
|
-
import { _ as
|
|
35
|
-
import { _ as
|
|
36
|
-
import { _ as _sfc_main$j } from './Alert-Bp1Wz_sq.mjs';
|
|
33
|
+
import { _ as _sfc_main$i } from './Table-BRk04Hd2.mjs';
|
|
34
|
+
import { _ as _sfc_main$n } from './Modal-Ck2XLt8d.mjs';
|
|
35
|
+
import { _ as __nuxt_component_0$2 } from './DiagnosisPanel-B646dK4p.mjs';
|
|
36
|
+
import { u as useFetch } from './fetch-B4FwBOzu.mjs';
|
|
37
|
+
import { _ as _sfc_main$j } from './SelectMenu-Db7osY7J.mjs';
|
|
38
|
+
import { _ as __nuxt_component_13$1 } from './RunStatusBadge-FfGb6bkW.mjs';
|
|
39
|
+
import { _ as _sfc_main$l } from './Alert-C4xq8lao.mjs';
|
|
37
40
|
import { u as useRunComparison } from './useRunComparison-CiMBLpe2.mjs';
|
|
38
|
-
import './DashboardSidebarToggle-
|
|
41
|
+
import './DashboardSidebarToggle-DCTnHiIv.mjs';
|
|
39
42
|
import 'vue-router';
|
|
40
43
|
import '@iconify/vue';
|
|
41
44
|
import 'tailwindcss/colors';
|
|
@@ -56,6 +59,18 @@ import 'path';
|
|
|
56
59
|
import 'fs/promises';
|
|
57
60
|
import 'zlib';
|
|
58
61
|
import 'util';
|
|
62
|
+
import 'marked';
|
|
63
|
+
import 'highlight.js/lib/core';
|
|
64
|
+
import 'highlight.js/lib/languages/bash';
|
|
65
|
+
import 'highlight.js/lib/languages/css';
|
|
66
|
+
import 'highlight.js/lib/languages/diff';
|
|
67
|
+
import 'highlight.js/lib/languages/javascript';
|
|
68
|
+
import 'highlight.js/lib/languages/json';
|
|
69
|
+
import 'highlight.js/lib/languages/python';
|
|
70
|
+
import 'highlight.js/lib/languages/typescript';
|
|
71
|
+
import 'highlight.js/lib/languages/xml';
|
|
72
|
+
import 'highlight.js/lib/languages/yaml';
|
|
73
|
+
import 'fflate';
|
|
59
74
|
import 'pixelmatch';
|
|
60
75
|
import 'sharp';
|
|
61
76
|
import '@anthropic-ai/sdk';
|
|
@@ -79,36 +94,26 @@ import 'node:zlib';
|
|
|
79
94
|
import 'consola';
|
|
80
95
|
import 'node:url';
|
|
81
96
|
import '@iconify/utils';
|
|
82
|
-
import './Tabs-
|
|
83
|
-
import './RovingFocusItem-
|
|
84
|
-
import './
|
|
85
|
-
import '
|
|
86
|
-
import '
|
|
87
|
-
import 'highlight.js/lib/languages/typescript';
|
|
88
|
-
import 'highlight.js/lib/languages/python';
|
|
89
|
-
import 'highlight.js/lib/languages/bash';
|
|
90
|
-
import 'highlight.js/lib/languages/json';
|
|
91
|
-
import 'highlight.js/lib/languages/css';
|
|
92
|
-
import 'highlight.js/lib/languages/xml';
|
|
93
|
-
import 'highlight.js/lib/languages/diff';
|
|
94
|
-
import './CodeBlock-BGwNmJ8J.mjs';
|
|
95
|
-
import './Textarea-DrrqQUVG.mjs';
|
|
96
|
-
import './help-content-DmFnuhNu.mjs';
|
|
97
|
+
import './Tabs-Bbsg9wag.mjs';
|
|
98
|
+
import './RovingFocusItem-BJSzTBjy.mjs';
|
|
99
|
+
import './CodeBlock-BgE-NSmE.mjs';
|
|
100
|
+
import './Textarea-Dv2-lOvW.mjs';
|
|
101
|
+
import './help-content-C876a9WD.mjs';
|
|
97
102
|
import '../_/marker-categories.mjs';
|
|
98
103
|
import 'date-fns';
|
|
99
|
-
import './useFormControl-
|
|
104
|
+
import './useFormControl-CZ9So7iX.mjs';
|
|
100
105
|
import './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
|
|
101
|
-
import './isValueEqualOrExist-
|
|
106
|
+
import './isValueEqualOrExist-D2qw9YEr.mjs';
|
|
102
107
|
import './useForwardScopeId-D0ameaSU.mjs';
|
|
103
|
-
import './VisuallyHiddenInput-
|
|
104
|
-
import './Label-
|
|
105
|
-
import './Separator-
|
|
108
|
+
import './VisuallyHiddenInput-D6kBJxVd.mjs';
|
|
109
|
+
import './Label-DYDR1Oeh.mjs';
|
|
110
|
+
import './Separator-CR4WcEKD.mjs';
|
|
106
111
|
import '@tanstack/vue-table';
|
|
107
112
|
import '@tanstack/vue-virtual';
|
|
108
113
|
import '@vue/shared';
|
|
109
|
-
import './virtualizer-
|
|
114
|
+
import './virtualizer-Cd1hhlxC.mjs';
|
|
110
115
|
|
|
111
|
-
const _sfc_main$
|
|
116
|
+
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
112
117
|
__name: "RunSummary",
|
|
113
118
|
__ssrInlineRender: true,
|
|
114
119
|
props: {
|
|
@@ -125,6 +130,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
125
130
|
const props = __props;
|
|
126
131
|
const emit = __emit;
|
|
127
132
|
const toast = useToast();
|
|
133
|
+
const config = useRuntimeConfig();
|
|
128
134
|
const storageStats = computed(() => props.testRun?.storageStats);
|
|
129
135
|
const showCiEnv = computed(
|
|
130
136
|
() => !!(props.testRun?.metadata?.ci || props.testRun?.environment || props.testRun?.playwrightVersion || props.testRun?.reporterVersion)
|
|
@@ -234,19 +240,20 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
234
240
|
const _component_StatusBlock = __nuxt_component_1$2;
|
|
235
241
|
const _component_UIcon = _sfc_main$p;
|
|
236
242
|
const _component_UBadge = _sfc_main$7$1;
|
|
237
|
-
const _component_TestStatusBar =
|
|
238
|
-
const
|
|
239
|
-
const
|
|
240
|
-
const
|
|
243
|
+
const _component_TestStatusBar = __nuxt_component_14$2;
|
|
244
|
+
const _component_DurationValue = __nuxt_component_14$1;
|
|
245
|
+
const _component_UCard = _sfc_main$m;
|
|
246
|
+
const _component_HelpHint = __nuxt_component_2$2;
|
|
247
|
+
const _component_UTooltip = _sfc_main$h;
|
|
241
248
|
const _component_NuxtLink = __nuxt_component_12$1;
|
|
242
249
|
const _component_MarkerBadge = __nuxt_component_5;
|
|
243
250
|
const _component_UButton = _sfc_main$k;
|
|
244
251
|
const _component_UPopover = _sfc_main$8$1;
|
|
245
|
-
const _component_CiEnvCard =
|
|
246
|
-
const _component_SourceInfoCard =
|
|
247
|
-
const _component_BlockCard =
|
|
252
|
+
const _component_CiEnvCard = __nuxt_component_13$2;
|
|
253
|
+
const _component_SourceInfoCard = __nuxt_component_14$3;
|
|
254
|
+
const _component_BlockCard = __nuxt_component_15$1;
|
|
248
255
|
const _component_UProgress = _sfc_main$j$1;
|
|
249
|
-
const _component_EntityLinks =
|
|
256
|
+
const _component_EntityLinks = __nuxt_component_17$1;
|
|
250
257
|
_push(ssrRenderComponent(_component_FoldableSummary, mergeProps({ "storage-key": "test-run" }, _attrs), {
|
|
251
258
|
folded: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
252
259
|
if (_push2) {
|
|
@@ -257,11 +264,11 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
257
264
|
}, null, _parent2, _scopeId));
|
|
258
265
|
_push2(`<span class="text-sm font-semibold truncate flex items-center gap-1"${_scopeId}> Run #${ssrInterpolate(__props.testRun?.id)} `);
|
|
259
266
|
if (unref(editingLabel)) {
|
|
260
|
-
_push2(`<!--[--><input${ssrRenderAttr("value", unref(labelInput))} type="text" placeholder="Add a label..." class="inline-block w-40 text-sm font-normal border-b border-dashed border-
|
|
267
|
+
_push2(`<!--[--><input${ssrRenderAttr("value", unref(labelInput))} type="text" placeholder="Add a label..." class="inline-block w-40 text-sm font-normal border-b border-dashed border-zinc-400 bg-transparent outline-none focus:border-primary px-0.5 py-0"${_scopeId}>`);
|
|
261
268
|
if (unref(savingLabel)) {
|
|
262
269
|
_push2(ssrRenderComponent(_component_UIcon, {
|
|
263
270
|
name: "i-lucide-loader-circle",
|
|
264
|
-
class: "size-3.5 text-
|
|
271
|
+
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
265
272
|
}, null, _parent2, _scopeId));
|
|
266
273
|
} else {
|
|
267
274
|
_push2(`<!---->`);
|
|
@@ -270,9 +277,9 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
270
277
|
} else {
|
|
271
278
|
_push2(`<!--[-->`);
|
|
272
279
|
if (__props.testRun?.label) {
|
|
273
|
-
_push2(`<span class="font-normal text-
|
|
280
|
+
_push2(`<span class="font-normal text-zinc-500 ml-1.5 cursor-pointer hover:text-zinc-700 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400"${_scopeId}>— ${ssrInterpolate(__props.testRun.label)}</span>`);
|
|
274
281
|
} else {
|
|
275
|
-
_push2(`<button class="text-xs text-
|
|
282
|
+
_push2(`<button class="text-xs text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400 ml-1" title="Add a label"${_scopeId}> + label </button>`);
|
|
276
283
|
}
|
|
277
284
|
_push2(`<!--]-->`);
|
|
278
285
|
}
|
|
@@ -307,7 +314,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
307
314
|
} else {
|
|
308
315
|
_push2(`<!---->`);
|
|
309
316
|
}
|
|
310
|
-
_push2(`</div><div class="flex items-center gap-3 shrink-0 max-sm:hidden"${_scopeId}><span class="text-xs text-
|
|
317
|
+
_push2(`</div><div class="flex items-center gap-3 shrink-0 max-sm:hidden"${_scopeId}><span class="text-xs text-zinc-500 tabular-nums whitespace-nowrap"${_scopeId}> T: <strong class="text-zinc-700 dark:text-zinc-300"${_scopeId}>${ssrInterpolate(__props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0)}</strong></span><span class="text-xs text-emerald-600 dark:text-emerald-400 tabular-nums whitespace-nowrap"${_scopeId}> P: <strong${_scopeId}>${ssrInterpolate(__props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0)}</strong></span><span class="text-xs text-rose-600 dark:text-rose-400 tabular-nums whitespace-nowrap"${_scopeId}> F: <strong${_scopeId}>${ssrInterpolate(__props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0)}</strong></span><span class="text-xs text-zinc-500 tabular-nums whitespace-nowrap"${_scopeId}> S: <strong${_scopeId}>${ssrInterpolate(__props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0)}</strong></span><span class="text-xs text-amber-600 dark:text-amber-400 tabular-nums whitespace-nowrap" title="Tests that never ran (maxFailures cutoff or a serial-group failure)"${_scopeId}> DNR: <strong${_scopeId}>${ssrInterpolate(__props.testRun?.didNotRunTests ?? 0)}</strong></span><span class="text-xs text-orange-600 dark:text-orange-400 tabular-nums whitespace-nowrap"${_scopeId}> Fl: <strong${_scopeId}>${ssrInterpolate(__props.testRun?.flakyTests ?? 0)}</strong></span>`);
|
|
311
318
|
_push2(ssrRenderComponent(_component_TestStatusBar, {
|
|
312
319
|
passed: __props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0,
|
|
313
320
|
failed: __props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0,
|
|
@@ -316,7 +323,11 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
316
323
|
"did-not-run": __props.testRun?.didNotRunTests ?? 0,
|
|
317
324
|
total: __props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0
|
|
318
325
|
}, null, _parent2, _scopeId));
|
|
319
|
-
_push2(
|
|
326
|
+
_push2(ssrRenderComponent(_component_DurationValue, {
|
|
327
|
+
ms: __props.testRun?.duration,
|
|
328
|
+
class: "text-xs text-zinc-400"
|
|
329
|
+
}, null, _parent2, _scopeId));
|
|
330
|
+
_push2(`</div></div>`);
|
|
320
331
|
} else {
|
|
321
332
|
return [
|
|
322
333
|
createVNode("div", { class: "flex items-center gap-3 flex-1 min-w-0 justify-between" }, [
|
|
@@ -334,7 +345,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
334
345
|
"onUpdate:modelValue": ($event) => isRef(labelInput) ? labelInput.value = $event : null,
|
|
335
346
|
type: "text",
|
|
336
347
|
placeholder: "Add a label...",
|
|
337
|
-
class: "inline-block w-40 text-sm font-normal border-b border-dashed border-
|
|
348
|
+
class: "inline-block w-40 text-sm font-normal border-b border-dashed border-zinc-400 bg-transparent outline-none focus:border-primary px-0.5 py-0",
|
|
338
349
|
onKeydown: onLabelKeydown,
|
|
339
350
|
onBlur: saveLabel
|
|
340
351
|
}, null, 40, ["onUpdate:modelValue"]), [
|
|
@@ -343,16 +354,16 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
343
354
|
unref(savingLabel) ? (openBlock(), createBlock(_component_UIcon, {
|
|
344
355
|
key: 0,
|
|
345
356
|
name: "i-lucide-loader-circle",
|
|
346
|
-
class: "size-3.5 text-
|
|
357
|
+
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
347
358
|
})) : createCommentVNode("", true)
|
|
348
359
|
], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
349
360
|
__props.testRun?.label ? (openBlock(), createBlock("span", {
|
|
350
361
|
key: 0,
|
|
351
|
-
class: "font-normal text-
|
|
362
|
+
class: "font-normal text-zinc-500 ml-1.5 cursor-pointer hover:text-zinc-700 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400",
|
|
352
363
|
onClick: startEditLabel
|
|
353
364
|
}, "— " + toDisplayString(__props.testRun.label), 1)) : (openBlock(), createBlock("button", {
|
|
354
365
|
key: 1,
|
|
355
|
-
class: "text-xs text-
|
|
366
|
+
class: "text-xs text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400 ml-1",
|
|
356
367
|
title: "Add a label",
|
|
357
368
|
onClick: startEditLabel
|
|
358
369
|
}, " + label "))
|
|
@@ -377,19 +388,19 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
377
388
|
}, 8, ["title"])) : createCommentVNode("", true)
|
|
378
389
|
]),
|
|
379
390
|
createVNode("div", { class: "flex items-center gap-3 shrink-0 max-sm:hidden" }, [
|
|
380
|
-
createVNode("span", { class: "text-xs text-
|
|
391
|
+
createVNode("span", { class: "text-xs text-zinc-500 tabular-nums whitespace-nowrap" }, [
|
|
381
392
|
createTextVNode(" T: "),
|
|
382
|
-
createVNode("strong", { class: "text-
|
|
393
|
+
createVNode("strong", { class: "text-zinc-700 dark:text-zinc-300" }, toDisplayString(__props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0), 1)
|
|
383
394
|
]),
|
|
384
|
-
createVNode("span", { class: "text-xs text-
|
|
395
|
+
createVNode("span", { class: "text-xs text-emerald-600 dark:text-emerald-400 tabular-nums whitespace-nowrap" }, [
|
|
385
396
|
createTextVNode(" P: "),
|
|
386
397
|
createVNode("strong", null, toDisplayString(__props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0), 1)
|
|
387
398
|
]),
|
|
388
|
-
createVNode("span", { class: "text-xs text-
|
|
399
|
+
createVNode("span", { class: "text-xs text-rose-600 dark:text-rose-400 tabular-nums whitespace-nowrap" }, [
|
|
389
400
|
createTextVNode(" F: "),
|
|
390
401
|
createVNode("strong", null, toDisplayString(__props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0), 1)
|
|
391
402
|
]),
|
|
392
|
-
createVNode("span", { class: "text-xs text-
|
|
403
|
+
createVNode("span", { class: "text-xs text-zinc-500 tabular-nums whitespace-nowrap" }, [
|
|
393
404
|
createTextVNode(" S: "),
|
|
394
405
|
createVNode("strong", null, toDisplayString(__props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0), 1)
|
|
395
406
|
]),
|
|
@@ -412,7 +423,10 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
412
423
|
"did-not-run": __props.testRun?.didNotRunTests ?? 0,
|
|
413
424
|
total: __props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0
|
|
414
425
|
}, null, 8, ["passed", "failed", "skipped", "flaky", "did-not-run", "total"]),
|
|
415
|
-
createVNode(
|
|
426
|
+
createVNode(_component_DurationValue, {
|
|
427
|
+
ms: __props.testRun?.duration,
|
|
428
|
+
class: "text-xs text-zinc-400"
|
|
429
|
+
}, null, 8, ["ms"])
|
|
416
430
|
])
|
|
417
431
|
])
|
|
418
432
|
];
|
|
@@ -431,11 +445,11 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
431
445
|
}, null, _parent3, _scopeId2));
|
|
432
446
|
_push3(`<div class="min-w-0 flex-1"${_scopeId2}><div class="flex items-center gap-2"${_scopeId2}><h2 class="text-base font-bold shrink-0 flex items-center gap-1"${_scopeId2}> Run #${ssrInterpolate(__props.testRun?.id)} `);
|
|
433
447
|
if (unref(editingLabel)) {
|
|
434
|
-
_push3(`<!--[--><input${ssrRenderAttr("value", unref(labelInput))} type="text" placeholder="Add a label..." class="inline-block w-48 text-sm font-normal border-b border-dashed border-
|
|
448
|
+
_push3(`<!--[--><input${ssrRenderAttr("value", unref(labelInput))} type="text" placeholder="Add a label..." class="inline-block w-48 text-sm font-normal border-b border-dashed border-zinc-400 bg-transparent outline-none focus:border-primary px-0.5 py-0"${_scopeId2}>`);
|
|
435
449
|
if (unref(savingLabel)) {
|
|
436
450
|
_push3(ssrRenderComponent(_component_UIcon, {
|
|
437
451
|
name: "i-lucide-loader-circle",
|
|
438
|
-
class: "size-3.5 text-
|
|
452
|
+
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
439
453
|
}, null, _parent3, _scopeId2));
|
|
440
454
|
} else {
|
|
441
455
|
_push3(`<!---->`);
|
|
@@ -444,9 +458,9 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
444
458
|
} else {
|
|
445
459
|
_push3(`<!--[-->`);
|
|
446
460
|
if (__props.testRun?.label) {
|
|
447
|
-
_push3(`<span class="font-normal text-
|
|
461
|
+
_push3(`<span class="font-normal text-zinc-500 ml-1.5 cursor-pointer hover:text-zinc-700 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400"${_scopeId2}>— ${ssrInterpolate(__props.testRun.label)}</span>`);
|
|
448
462
|
} else {
|
|
449
|
-
_push3(`<button class="text-xs text-
|
|
463
|
+
_push3(`<button class="text-xs text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400 ml-1.5" title="Add a label"${_scopeId2}> + label </button>`);
|
|
450
464
|
}
|
|
451
465
|
_push3(`<!--]-->`);
|
|
452
466
|
}
|
|
@@ -534,7 +548,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
534
548
|
} else {
|
|
535
549
|
_push3(`<!---->`);
|
|
536
550
|
}
|
|
537
|
-
_push3(`<span class="text-xs text-
|
|
551
|
+
_push3(`<span class="text-xs text-zinc-500 ml-auto whitespace-nowrap"${_scopeId2}>${ssrInterpolate(__props.testRun?.project?.label ?? __props.testRun?.project?.name)} · Started ${ssrInterpolate(("prettyDateFormat" in _ctx ? _ctx.prettyDateFormat : unref(prettyDateFormat))(__props.testRun?.startTime))}</span>`);
|
|
538
552
|
_push3(ssrRenderComponent(_component_UTooltip, {
|
|
539
553
|
text: unref(copied) ? "Copied!" : "Copy run summary"
|
|
540
554
|
}, {
|
|
@@ -545,7 +559,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
545
559
|
variant: "ghost",
|
|
546
560
|
color: "neutral",
|
|
547
561
|
icon: unref(copied) ? "i-lucide-check" : "i-lucide-clipboard",
|
|
548
|
-
class: "shrink-0 text-
|
|
562
|
+
class: "shrink-0 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
549
563
|
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
550
564
|
}, null, _parent4, _scopeId3));
|
|
551
565
|
} else {
|
|
@@ -555,7 +569,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
555
569
|
variant: "ghost",
|
|
556
570
|
color: "neutral",
|
|
557
571
|
icon: unref(copied) ? "i-lucide-check" : "i-lucide-clipboard",
|
|
558
|
-
class: "shrink-0 text-
|
|
572
|
+
class: "shrink-0 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
559
573
|
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
560
574
|
}, null, 8, ["icon", "onClick"])
|
|
561
575
|
];
|
|
@@ -567,19 +581,19 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
567
581
|
_push3(ssrRenderComponent(_component_UPopover, null, {
|
|
568
582
|
content: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
569
583
|
if (_push4) {
|
|
570
|
-
_push4(`<div class="p-2 space-y-1 min-w-32"${_scopeId3}><p class="text-xs font-medium text-
|
|
584
|
+
_push4(`<div class="p-2 space-y-1 min-w-32"${_scopeId3}><p class="text-xs font-medium text-zinc-500 px-2 py-1"${_scopeId3}>Mode</p><!--[-->`);
|
|
571
585
|
ssrRenderList(["file-line", "grep", "file"], (m) => {
|
|
572
|
-
_push4(`<button class="${ssrRenderClass([unref(retryMode) === m ? "bg-primary/10 text-primary" : "", "w-full text-left px-2 py-1 text-sm rounded hover:bg-
|
|
586
|
+
_push4(`<button class="${ssrRenderClass([unref(retryMode) === m ? "bg-primary/10 text-primary" : "", "w-full text-left px-2 py-1 text-sm rounded hover:bg-zinc-100 dark:hover:bg-zinc-800"])}"${_scopeId3}>${ssrInterpolate(m === "file-line" ? "File:line" : m === "grep" ? "Title (grep)" : "File only")}</button>`);
|
|
573
587
|
});
|
|
574
588
|
_push4(`<!--]--></div>`);
|
|
575
589
|
} else {
|
|
576
590
|
return [
|
|
577
591
|
createVNode("div", { class: "p-2 space-y-1 min-w-32" }, [
|
|
578
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
592
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 px-2 py-1" }, "Mode"),
|
|
579
593
|
(openBlock(), createBlock(Fragment, null, renderList(["file-line", "grep", "file"], (m) => {
|
|
580
594
|
return createVNode("button", {
|
|
581
595
|
key: m,
|
|
582
|
-
class: ["w-full text-left px-2 py-1 text-sm rounded hover:bg-
|
|
596
|
+
class: ["w-full text-left px-2 py-1 text-sm rounded hover:bg-zinc-100 dark:hover:bg-zinc-800", unref(retryMode) === m ? "bg-primary/10 text-primary" : ""],
|
|
583
597
|
onClick: ($event) => retryMode.value = m
|
|
584
598
|
}, toDisplayString(m === "file-line" ? "File:line" : m === "grep" ? "Title (grep)" : "File only"), 11, ["onClick"]);
|
|
585
599
|
}), 64))
|
|
@@ -632,12 +646,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
632
646
|
_push3(`<!---->`);
|
|
633
647
|
}
|
|
634
648
|
_push3(`</div></div></div></div><div class="grid grid-cols-3 sm:grid-cols-5 gap-2"${_scopeId2}><button class="${ssrRenderClass([
|
|
635
|
-
__props.activeFilter === "all" ? "bg-
|
|
649
|
+
__props.activeFilter === "all" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated",
|
|
636
650
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer"
|
|
637
|
-
])}"${_scopeId2}><p class="text-xs font-medium text-
|
|
638
|
-
__props.activeFilter === "passed" ? "bg-
|
|
651
|
+
])}"${_scopeId2}><p class="text-xs font-medium text-zinc-500 uppercase tracking-wider"${_scopeId2}>Total</p><p class="text-xl font-bold mt-0.5"${_scopeId2}>${ssrInterpolate(__props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0)}</p></button><div class="relative"${_scopeId2}><button class="${ssrRenderClass([
|
|
652
|
+
__props.activeFilter === "passed" ? "bg-emerald-100 dark:bg-emerald-900/30 ring-2 ring-emerald-400 dark:ring-emerald-600" : "bg-emerald-50 dark:bg-emerald-900/20 hover:bg-emerald-100 dark:hover:bg-emerald-900/30",
|
|
639
653
|
"rounded-lg p-3 text-left w-full h-full transition-colors cursor-pointer"
|
|
640
|
-
])}"${_scopeId2}><p class="text-xs font-medium text-
|
|
654
|
+
])}"${_scopeId2}><p class="text-xs font-medium text-emerald-700 dark:text-emerald-400 uppercase tracking-wider"${_scopeId2}> Passed </p><p class="text-xl font-bold mt-0.5 text-emerald-600 dark:text-emerald-400"${_scopeId2}>${ssrInterpolate(__props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0)}</p></button>`);
|
|
641
655
|
if ((__props.testRun?.flakyTests ?? 0) > 0) {
|
|
642
656
|
_push3(`<button class="${ssrRenderClass([
|
|
643
657
|
__props.activeFilter === "flaky" ? "bg-orange-200 dark:bg-orange-800/60 text-orange-800 dark:text-orange-200 ring-2 ring-orange-400 dark:ring-orange-600" : "bg-orange-100 dark:bg-orange-900/40 text-orange-700 dark:text-orange-300 hover:bg-orange-200 dark:hover:bg-orange-800/60",
|
|
@@ -652,12 +666,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
652
666
|
_push3(`<!---->`);
|
|
653
667
|
}
|
|
654
668
|
_push3(`</div><button class="${ssrRenderClass([
|
|
655
|
-
__props.activeFilter === "failed" ? "bg-
|
|
669
|
+
__props.activeFilter === "failed" ? "bg-rose-100 dark:bg-rose-900/30 ring-2 ring-rose-400 dark:ring-rose-600" : "bg-rose-50 dark:bg-rose-900/20 hover:bg-rose-100 dark:hover:bg-rose-900/30",
|
|
656
670
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer"
|
|
657
|
-
])}"${_scopeId2}><p class="text-xs font-medium text-
|
|
658
|
-
__props.activeFilter === "skipped" ? "bg-
|
|
671
|
+
])}"${_scopeId2}><p class="text-xs font-medium text-rose-700 dark:text-rose-400 uppercase tracking-wider"${_scopeId2}>Failed</p><p class="text-xl font-bold mt-0.5 text-rose-600 dark:text-rose-400"${_scopeId2}>${ssrInterpolate(__props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0)}</p></button><button class="${ssrRenderClass([
|
|
672
|
+
__props.activeFilter === "skipped" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated",
|
|
659
673
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer"
|
|
660
|
-
])}"${_scopeId2}><p class="text-xs font-medium text-
|
|
674
|
+
])}"${_scopeId2}><p class="text-xs font-medium text-zinc-500 uppercase tracking-wider"${_scopeId2}>Skipped</p><p class="text-xl font-bold mt-0.5 text-zinc-600 dark:text-zinc-400"${_scopeId2}>${ssrInterpolate(__props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0)}</p></button><button class="${ssrRenderClass([
|
|
661
675
|
__props.activeFilter === "didnotrun" ? "bg-amber-100 dark:bg-amber-900/30 ring-2 ring-amber-400 dark:ring-amber-600" : "bg-amber-50 dark:bg-amber-900/20 hover:bg-amber-100 dark:hover:bg-amber-900/30",
|
|
662
676
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer"
|
|
663
677
|
])}" title="Tests that never ran (maxFailures cutoff or a serial-group failure)"${_scopeId2}><p class="text-xs font-medium text-amber-700 dark:text-amber-400 uppercase tracking-wider"${_scopeId2}> Didn't run </p><p class="text-xl font-bold mt-0.5 text-amber-600 dark:text-amber-400"${_scopeId2}>${ssrInterpolate(__props.testRun?.didNotRunTests ?? 0)}</p></button></div><div${_scopeId2}>`);
|
|
@@ -674,16 +688,25 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
674
688
|
_push3(`</div><div class="flex items-center gap-3 text-xs shrink-0"${_scopeId2}><div class="flex items-center gap-1"${_scopeId2}>`);
|
|
675
689
|
_push3(ssrRenderComponent(_component_UIcon, {
|
|
676
690
|
name: "i-lucide-clock",
|
|
677
|
-
class: "size-3.5 text-
|
|
691
|
+
class: "size-3.5 text-zinc-400"
|
|
692
|
+
}, null, _parent3, _scopeId2));
|
|
693
|
+
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
694
|
+
ms: __props.testRun?.duration,
|
|
695
|
+
class: "font-medium"
|
|
678
696
|
}, null, _parent3, _scopeId2));
|
|
679
|
-
_push3(
|
|
697
|
+
_push3(`</div>`);
|
|
680
698
|
if (__props.testRun?.avgTestDuration) {
|
|
681
699
|
_push3(`<div class="flex items-center gap-1"${_scopeId2}>`);
|
|
682
700
|
_push3(ssrRenderComponent(_component_UIcon, {
|
|
683
701
|
name: "i-lucide-gauge",
|
|
684
|
-
class: "size-3.5 text-
|
|
702
|
+
class: "size-3.5 text-zinc-400"
|
|
703
|
+
}, null, _parent3, _scopeId2));
|
|
704
|
+
_push3(`<span class="text-zinc-500 hidden sm:inline"${_scopeId2}>Avg</span>`);
|
|
705
|
+
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
706
|
+
ms: __props.testRun.avgTestDuration,
|
|
707
|
+
class: "font-medium"
|
|
685
708
|
}, null, _parent3, _scopeId2));
|
|
686
|
-
_push3(
|
|
709
|
+
_push3(`</div>`);
|
|
687
710
|
} else {
|
|
688
711
|
_push3(`<!---->`);
|
|
689
712
|
}
|
|
@@ -693,7 +716,13 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
693
716
|
name: "i-lucide-arrow-up-right",
|
|
694
717
|
class: "size-3.5 text-orange-500"
|
|
695
718
|
}, null, _parent3, _scopeId2));
|
|
696
|
-
_push3(`<span class="text-
|
|
719
|
+
_push3(`<span class="text-zinc-500 hidden sm:inline"${_scopeId2}>P90</span>`);
|
|
720
|
+
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
721
|
+
ms: __props.testRun.p90TestDuration,
|
|
722
|
+
class: "font-medium text-orange-600 dark:text-orange-400",
|
|
723
|
+
"unit-class": "opacity-60"
|
|
724
|
+
}, null, _parent3, _scopeId2));
|
|
725
|
+
_push3(`</div>`);
|
|
697
726
|
} else {
|
|
698
727
|
_push3(`<!---->`);
|
|
699
728
|
}
|
|
@@ -703,7 +732,13 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
703
732
|
name: "i-lucide-clock",
|
|
704
733
|
class: "size-3.5 text-amber-500"
|
|
705
734
|
}, null, _parent3, _scopeId2));
|
|
706
|
-
_push3(`<span class="text-
|
|
735
|
+
_push3(`<span class="text-zinc-500 hidden sm:inline"${_scopeId2}>Wasted</span>`);
|
|
736
|
+
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
737
|
+
ms: __props.totalWastedTime,
|
|
738
|
+
class: "font-medium text-amber-600 dark:text-amber-400",
|
|
739
|
+
"unit-class": "opacity-60"
|
|
740
|
+
}, null, _parent3, _scopeId2));
|
|
741
|
+
_push3(`</div>`);
|
|
707
742
|
} else {
|
|
708
743
|
_push3(`<!---->`);
|
|
709
744
|
}
|
|
@@ -732,7 +767,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
732
767
|
"onUpdate:modelValue": ($event) => isRef(labelInput) ? labelInput.value = $event : null,
|
|
733
768
|
type: "text",
|
|
734
769
|
placeholder: "Add a label...",
|
|
735
|
-
class: "inline-block w-48 text-sm font-normal border-b border-dashed border-
|
|
770
|
+
class: "inline-block w-48 text-sm font-normal border-b border-dashed border-zinc-400 bg-transparent outline-none focus:border-primary px-0.5 py-0",
|
|
736
771
|
onKeydown: onLabelKeydown,
|
|
737
772
|
onBlur: saveLabel
|
|
738
773
|
}, null, 40, ["onUpdate:modelValue"]), [
|
|
@@ -741,16 +776,16 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
741
776
|
unref(savingLabel) ? (openBlock(), createBlock(_component_UIcon, {
|
|
742
777
|
key: 0,
|
|
743
778
|
name: "i-lucide-loader-circle",
|
|
744
|
-
class: "size-3.5 text-
|
|
779
|
+
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
745
780
|
})) : createCommentVNode("", true)
|
|
746
781
|
], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
747
782
|
__props.testRun?.label ? (openBlock(), createBlock("span", {
|
|
748
783
|
key: 0,
|
|
749
|
-
class: "font-normal text-
|
|
784
|
+
class: "font-normal text-zinc-500 ml-1.5 cursor-pointer hover:text-zinc-700 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400",
|
|
750
785
|
onClick: startEditLabel
|
|
751
786
|
}, "— " + toDisplayString(__props.testRun.label), 1)) : (openBlock(), createBlock("button", {
|
|
752
787
|
key: 1,
|
|
753
|
-
class: "text-xs text-
|
|
788
|
+
class: "text-xs text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400 ml-1.5",
|
|
754
789
|
title: "Add a label",
|
|
755
790
|
onClick: startEditLabel
|
|
756
791
|
}, " + label "))
|
|
@@ -795,7 +830,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
795
830
|
]),
|
|
796
831
|
_: 1
|
|
797
832
|
}, 8, ["text"])) : createCommentVNode("", true),
|
|
798
|
-
createVNode("span", { class: "text-xs text-
|
|
833
|
+
createVNode("span", { class: "text-xs text-zinc-500 ml-auto whitespace-nowrap" }, toDisplayString(__props.testRun?.project?.label ?? __props.testRun?.project?.name) + " · Started " + toDisplayString(("prettyDateFormat" in _ctx ? _ctx.prettyDateFormat : unref(prettyDateFormat))(__props.testRun?.startTime)), 1),
|
|
799
834
|
createVNode(_component_UTooltip, {
|
|
800
835
|
text: unref(copied) ? "Copied!" : "Copy run summary"
|
|
801
836
|
}, {
|
|
@@ -805,7 +840,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
805
840
|
variant: "ghost",
|
|
806
841
|
color: "neutral",
|
|
807
842
|
icon: unref(copied) ? "i-lucide-check" : "i-lucide-clipboard",
|
|
808
|
-
class: "shrink-0 text-
|
|
843
|
+
class: "shrink-0 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
809
844
|
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
810
845
|
}, null, 8, ["icon", "onClick"])
|
|
811
846
|
]),
|
|
@@ -814,11 +849,11 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
814
849
|
unref(failedCases).length > 0 ? (openBlock(), createBlock(_component_UPopover, { key: 2 }, {
|
|
815
850
|
content: withCtx(() => [
|
|
816
851
|
createVNode("div", { class: "p-2 space-y-1 min-w-32" }, [
|
|
817
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
852
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 px-2 py-1" }, "Mode"),
|
|
818
853
|
(openBlock(), createBlock(Fragment, null, renderList(["file-line", "grep", "file"], (m) => {
|
|
819
854
|
return createVNode("button", {
|
|
820
855
|
key: m,
|
|
821
|
-
class: ["w-full text-left px-2 py-1 text-sm rounded hover:bg-
|
|
856
|
+
class: ["w-full text-left px-2 py-1 text-sm rounded hover:bg-zinc-100 dark:hover:bg-zinc-800", unref(retryMode) === m ? "bg-primary/10 text-primary" : ""],
|
|
822
857
|
onClick: ($event) => retryMode.value = m
|
|
823
858
|
}, toDisplayString(m === "file-line" ? "File:line" : m === "grep" ? "Title (grep)" : "File only"), 11, ["onClick"]);
|
|
824
859
|
}), 64))
|
|
@@ -849,23 +884,23 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
849
884
|
createVNode("button", {
|
|
850
885
|
class: [
|
|
851
886
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
852
|
-
__props.activeFilter === "all" ? "bg-
|
|
887
|
+
__props.activeFilter === "all" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
853
888
|
],
|
|
854
889
|
onClick: ($event) => emit("filter-status", "all")
|
|
855
890
|
}, [
|
|
856
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
891
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 uppercase tracking-wider" }, "Total"),
|
|
857
892
|
createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0), 1)
|
|
858
893
|
], 10, ["onClick"]),
|
|
859
894
|
createVNode("div", { class: "relative" }, [
|
|
860
895
|
createVNode("button", {
|
|
861
896
|
class: [
|
|
862
897
|
"rounded-lg p-3 text-left w-full h-full transition-colors cursor-pointer",
|
|
863
|
-
__props.activeFilter === "passed" ? "bg-
|
|
898
|
+
__props.activeFilter === "passed" ? "bg-emerald-100 dark:bg-emerald-900/30 ring-2 ring-emerald-400 dark:ring-emerald-600" : "bg-emerald-50 dark:bg-emerald-900/20 hover:bg-emerald-100 dark:hover:bg-emerald-900/30"
|
|
864
899
|
],
|
|
865
900
|
onClick: ($event) => emit("filter-status", "passed")
|
|
866
901
|
}, [
|
|
867
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
868
|
-
createVNode("p", { class: "text-xl font-bold mt-0.5 text-
|
|
902
|
+
createVNode("p", { class: "text-xs font-medium text-emerald-700 dark:text-emerald-400 uppercase tracking-wider" }, " Passed "),
|
|
903
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5 text-emerald-600 dark:text-emerald-400" }, toDisplayString(__props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0), 1)
|
|
869
904
|
], 10, ["onClick"]),
|
|
870
905
|
(__props.testRun?.flakyTests ?? 0) > 0 ? (openBlock(), createBlock("button", {
|
|
871
906
|
key: 0,
|
|
@@ -886,22 +921,22 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
886
921
|
createVNode("button", {
|
|
887
922
|
class: [
|
|
888
923
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
889
|
-
__props.activeFilter === "failed" ? "bg-
|
|
924
|
+
__props.activeFilter === "failed" ? "bg-rose-100 dark:bg-rose-900/30 ring-2 ring-rose-400 dark:ring-rose-600" : "bg-rose-50 dark:bg-rose-900/20 hover:bg-rose-100 dark:hover:bg-rose-900/30"
|
|
890
925
|
],
|
|
891
926
|
onClick: ($event) => emit("filter-status", "failed")
|
|
892
927
|
}, [
|
|
893
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
894
|
-
createVNode("p", { class: "text-xl font-bold mt-0.5 text-
|
|
928
|
+
createVNode("p", { class: "text-xs font-medium text-rose-700 dark:text-rose-400 uppercase tracking-wider" }, "Failed"),
|
|
929
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5 text-rose-600 dark:text-rose-400" }, toDisplayString(__props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0), 1)
|
|
895
930
|
], 10, ["onClick"]),
|
|
896
931
|
createVNode("button", {
|
|
897
932
|
class: [
|
|
898
933
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
899
|
-
__props.activeFilter === "skipped" ? "bg-
|
|
934
|
+
__props.activeFilter === "skipped" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
900
935
|
],
|
|
901
936
|
onClick: ($event) => emit("filter-status", "skipped")
|
|
902
937
|
}, [
|
|
903
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
904
|
-
createVNode("p", { class: "text-xl font-bold mt-0.5 text-
|
|
938
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 uppercase tracking-wider" }, "Skipped"),
|
|
939
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5 text-zinc-600 dark:text-zinc-400" }, toDisplayString(__props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0), 1)
|
|
905
940
|
], 10, ["onClick"]),
|
|
906
941
|
createVNode("button", {
|
|
907
942
|
class: [
|
|
@@ -934,9 +969,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
934
969
|
createVNode("div", { class: "flex items-center gap-1" }, [
|
|
935
970
|
createVNode(_component_UIcon, {
|
|
936
971
|
name: "i-lucide-clock",
|
|
937
|
-
class: "size-3.5 text-
|
|
972
|
+
class: "size-3.5 text-zinc-400"
|
|
938
973
|
}),
|
|
939
|
-
createVNode(
|
|
974
|
+
createVNode(_component_DurationValue, {
|
|
975
|
+
ms: __props.testRun?.duration,
|
|
976
|
+
class: "font-medium"
|
|
977
|
+
}, null, 8, ["ms"])
|
|
940
978
|
]),
|
|
941
979
|
__props.testRun?.avgTestDuration ? (openBlock(), createBlock("div", {
|
|
942
980
|
key: 0,
|
|
@@ -944,10 +982,13 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
944
982
|
}, [
|
|
945
983
|
createVNode(_component_UIcon, {
|
|
946
984
|
name: "i-lucide-gauge",
|
|
947
|
-
class: "size-3.5 text-
|
|
985
|
+
class: "size-3.5 text-zinc-400"
|
|
948
986
|
}),
|
|
949
|
-
createVNode("span", { class: "text-
|
|
950
|
-
createVNode(
|
|
987
|
+
createVNode("span", { class: "text-zinc-500 hidden sm:inline" }, "Avg"),
|
|
988
|
+
createVNode(_component_DurationValue, {
|
|
989
|
+
ms: __props.testRun.avgTestDuration,
|
|
990
|
+
class: "font-medium"
|
|
991
|
+
}, null, 8, ["ms"])
|
|
951
992
|
])) : createCommentVNode("", true),
|
|
952
993
|
__props.testRun?.p90TestDuration ? (openBlock(), createBlock("div", {
|
|
953
994
|
key: 1,
|
|
@@ -957,8 +998,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
957
998
|
name: "i-lucide-arrow-up-right",
|
|
958
999
|
class: "size-3.5 text-orange-500"
|
|
959
1000
|
}),
|
|
960
|
-
createVNode("span", { class: "text-
|
|
961
|
-
createVNode(
|
|
1001
|
+
createVNode("span", { class: "text-zinc-500 hidden sm:inline" }, "P90"),
|
|
1002
|
+
createVNode(_component_DurationValue, {
|
|
1003
|
+
ms: __props.testRun.p90TestDuration,
|
|
1004
|
+
class: "font-medium text-orange-600 dark:text-orange-400",
|
|
1005
|
+
"unit-class": "opacity-60"
|
|
1006
|
+
}, null, 8, ["ms"])
|
|
962
1007
|
])) : createCommentVNode("", true),
|
|
963
1008
|
__props.totalWastedTime && __props.totalWastedTime > 0 ? (openBlock(), createBlock("div", {
|
|
964
1009
|
key: 2,
|
|
@@ -968,8 +1013,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
968
1013
|
name: "i-lucide-clock",
|
|
969
1014
|
class: "size-3.5 text-amber-500"
|
|
970
1015
|
}),
|
|
971
|
-
createVNode("span", { class: "text-
|
|
972
|
-
createVNode(
|
|
1016
|
+
createVNode("span", { class: "text-zinc-500 hidden sm:inline" }, "Wasted"),
|
|
1017
|
+
createVNode(_component_DurationValue, {
|
|
1018
|
+
ms: __props.totalWastedTime,
|
|
1019
|
+
class: "font-medium text-amber-600 dark:text-amber-400",
|
|
1020
|
+
"unit-class": "opacity-60"
|
|
1021
|
+
}, null, 8, ["ms"])
|
|
973
1022
|
])) : createCommentVNode("", true)
|
|
974
1023
|
])
|
|
975
1024
|
])) : createCommentVNode("", true)
|
|
@@ -1016,7 +1065,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1016
1065
|
name: "i-lucide-upload",
|
|
1017
1066
|
class: "size-5 text-info shrink-0 animate-pulse"
|
|
1018
1067
|
}, null, _parent3, _scopeId2));
|
|
1019
|
-
_push3(`<div class="flex-1 min-w-0"${_scopeId2}><div class="flex items-center justify-between mb-1"${_scopeId2}><span class="text-sm font-medium"${_scopeId2}>Finalizing test run</span><span class="text-xs text-
|
|
1068
|
+
_push3(`<div class="flex-1 min-w-0"${_scopeId2}><div class="flex items-center justify-between mb-1"${_scopeId2}><span class="text-sm font-medium"${_scopeId2}>Finalizing test run</span><span class="text-xs text-zinc-500"${_scopeId2}>Uploading reports & traces…</span></div>`);
|
|
1020
1069
|
_push3(ssrRenderComponent(_component_UProgress, {
|
|
1021
1070
|
value: null,
|
|
1022
1071
|
size: "sm",
|
|
@@ -1032,7 +1081,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1032
1081
|
ssrRenderList(__props.allReports, (report) => {
|
|
1033
1082
|
_push3(`<div class="flex items-center justify-between gap-2 min-w-0"${_scopeId2}>`);
|
|
1034
1083
|
_push3(ssrRenderComponent(_component_UButton, {
|
|
1035
|
-
href:
|
|
1084
|
+
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(report.path, null, unref(config).app?.baseURL),
|
|
1036
1085
|
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(report.type),
|
|
1037
1086
|
target: "_blank",
|
|
1038
1087
|
size: "xs",
|
|
@@ -1051,11 +1100,11 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1051
1100
|
}),
|
|
1052
1101
|
_: 2
|
|
1053
1102
|
}, _parent3, _scopeId2));
|
|
1054
|
-
_push3(`<span class="text-xs tabular-nums text-
|
|
1103
|
+
_push3(`<span class="text-xs tabular-nums text-zinc-400 dark:text-zinc-500 shrink-0"${_scopeId2}>${ssrInterpolate(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(report.size))}</span></div>`);
|
|
1055
1104
|
});
|
|
1056
1105
|
_push3(`<!--]-->`);
|
|
1057
1106
|
if (unref(storageStats).testCaseFilesCount > 0) {
|
|
1058
|
-
_push3(`<div class="flex items-center justify-between gap-2 min-w-0"${_scopeId2}><span class="truncate"${_scopeId2}>Test files (${ssrInterpolate(unref(storageStats).testCaseFilesCount)})</span><span class="text-xs tabular-nums text-
|
|
1107
|
+
_push3(`<div class="flex items-center justify-between gap-2 min-w-0"${_scopeId2}><span class="truncate"${_scopeId2}>Test files (${ssrInterpolate(unref(storageStats).testCaseFilesCount)})</span><span class="text-xs tabular-nums text-zinc-400 dark:text-zinc-500 shrink-0"${_scopeId2}>${ssrInterpolate(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(unref(storageStats).testCaseFilesSize))}</span></div>`);
|
|
1059
1108
|
} else {
|
|
1060
1109
|
_push3(`<!---->`);
|
|
1061
1110
|
}
|
|
@@ -1076,7 +1125,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1076
1125
|
createVNode("div", { class: "flex-1 min-w-0" }, [
|
|
1077
1126
|
createVNode("div", { class: "flex items-center justify-between mb-1" }, [
|
|
1078
1127
|
createVNode("span", { class: "text-sm font-medium" }, "Finalizing test run"),
|
|
1079
|
-
createVNode("span", { class: "text-xs text-
|
|
1128
|
+
createVNode("span", { class: "text-xs text-zinc-500" }, "Uploading reports & traces…")
|
|
1080
1129
|
]),
|
|
1081
1130
|
createVNode(_component_UProgress, {
|
|
1082
1131
|
value: null,
|
|
@@ -1096,7 +1145,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1096
1145
|
class: "flex items-center justify-between gap-2 min-w-0"
|
|
1097
1146
|
}, [
|
|
1098
1147
|
createVNode(_component_UButton, {
|
|
1099
|
-
href:
|
|
1148
|
+
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(report.path, null, unref(config).app?.baseURL),
|
|
1100
1149
|
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(report.type),
|
|
1101
1150
|
target: "_blank",
|
|
1102
1151
|
size: "xs",
|
|
@@ -1109,7 +1158,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1109
1158
|
]),
|
|
1110
1159
|
_: 2
|
|
1111
1160
|
}, 1032, ["href", "icon"]),
|
|
1112
|
-
createVNode("span", { class: "text-xs tabular-nums text-
|
|
1161
|
+
createVNode("span", { class: "text-xs tabular-nums text-zinc-400 dark:text-zinc-500 shrink-0" }, toDisplayString(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(report.size)), 1)
|
|
1113
1162
|
]);
|
|
1114
1163
|
}), 128)),
|
|
1115
1164
|
unref(storageStats).testCaseFilesCount > 0 ? (openBlock(), createBlock("div", {
|
|
@@ -1117,7 +1166,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1117
1166
|
class: "flex items-center justify-between gap-2 min-w-0"
|
|
1118
1167
|
}, [
|
|
1119
1168
|
createVNode("span", { class: "truncate" }, "Test files (" + toDisplayString(unref(storageStats).testCaseFilesCount) + ")", 1),
|
|
1120
|
-
createVNode("span", { class: "text-xs tabular-nums text-
|
|
1169
|
+
createVNode("span", { class: "text-xs tabular-nums text-zinc-400 dark:text-zinc-500 shrink-0" }, toDisplayString(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(unref(storageStats).testCaseFilesSize)), 1)
|
|
1121
1170
|
])) : createCommentVNode("", true)
|
|
1122
1171
|
])) : createCommentVNode("", true)
|
|
1123
1172
|
];
|
|
@@ -1167,7 +1216,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1167
1216
|
_push3(`<p class="flex items-center gap-1"${_scopeId2}>`);
|
|
1168
1217
|
_push3(ssrRenderComponent(_component_UIcon, {
|
|
1169
1218
|
name: "i-lucide-link",
|
|
1170
|
-
class: "w-3.5 h-3.5 text-
|
|
1219
|
+
class: "w-3.5 h-3.5 text-zinc-400 shrink-0"
|
|
1171
1220
|
}, null, _parent3, _scopeId2));
|
|
1172
1221
|
_push3(`<span${_scopeId2}>${ssrInterpolate(__props.testRun.metadata.relatedIssue)}</span></p>`);
|
|
1173
1222
|
} else {
|
|
@@ -1202,7 +1251,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1202
1251
|
_push3(`<!---->`);
|
|
1203
1252
|
}
|
|
1204
1253
|
if (__props.showCustomData && __props.testRun.metadata.customData) {
|
|
1205
|
-
_push3(`<div${_scopeId2}><div class="bg-
|
|
1254
|
+
_push3(`<div${_scopeId2}><div class="bg-zinc-50 dark:bg-zinc-900 p-2.5 rounded text-xs font-mono overflow-x-auto max-h-48 overflow-y-auto"${_scopeId2}><pre class="m-0"${_scopeId2}>${ssrInterpolate(JSON.stringify(__props.testRun.metadata.customData, null, 2))}</pre></div></div>`);
|
|
1206
1255
|
} else {
|
|
1207
1256
|
_push3(`<!---->`);
|
|
1208
1257
|
}
|
|
@@ -1233,7 +1282,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1233
1282
|
}, [
|
|
1234
1283
|
createVNode(_component_UIcon, {
|
|
1235
1284
|
name: "i-lucide-link",
|
|
1236
|
-
class: "w-3.5 h-3.5 text-
|
|
1285
|
+
class: "w-3.5 h-3.5 text-zinc-400 shrink-0"
|
|
1237
1286
|
}),
|
|
1238
1287
|
createVNode("span", null, toDisplayString(__props.testRun.metadata.relatedIssue), 1)
|
|
1239
1288
|
])) : createCommentVNode("", true),
|
|
@@ -1257,7 +1306,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1257
1306
|
_: 1
|
|
1258
1307
|
}, 8, ["icon", "onClick"])) : createCommentVNode("", true),
|
|
1259
1308
|
__props.showCustomData && __props.testRun.metadata.customData ? (openBlock(), createBlock("div", { key: 3 }, [
|
|
1260
|
-
createVNode("div", { class: "bg-
|
|
1309
|
+
createVNode("div", { class: "bg-zinc-50 dark:bg-zinc-900 p-2.5 rounded text-xs font-mono overflow-x-auto max-h-48 overflow-y-auto" }, [
|
|
1261
1310
|
createVNode("pre", { class: "m-0" }, toDisplayString(JSON.stringify(__props.testRun.metadata.customData, null, 2)), 1)
|
|
1262
1311
|
])
|
|
1263
1312
|
])) : createCommentVNode("", true)
|
|
@@ -1295,7 +1344,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1295
1344
|
"onUpdate:modelValue": ($event) => isRef(labelInput) ? labelInput.value = $event : null,
|
|
1296
1345
|
type: "text",
|
|
1297
1346
|
placeholder: "Add a label...",
|
|
1298
|
-
class: "inline-block w-48 text-sm font-normal border-b border-dashed border-
|
|
1347
|
+
class: "inline-block w-48 text-sm font-normal border-b border-dashed border-zinc-400 bg-transparent outline-none focus:border-primary px-0.5 py-0",
|
|
1299
1348
|
onKeydown: onLabelKeydown,
|
|
1300
1349
|
onBlur: saveLabel
|
|
1301
1350
|
}, null, 40, ["onUpdate:modelValue"]), [
|
|
@@ -1304,16 +1353,16 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1304
1353
|
unref(savingLabel) ? (openBlock(), createBlock(_component_UIcon, {
|
|
1305
1354
|
key: 0,
|
|
1306
1355
|
name: "i-lucide-loader-circle",
|
|
1307
|
-
class: "size-3.5 text-
|
|
1356
|
+
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
1308
1357
|
})) : createCommentVNode("", true)
|
|
1309
1358
|
], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
1310
1359
|
__props.testRun?.label ? (openBlock(), createBlock("span", {
|
|
1311
1360
|
key: 0,
|
|
1312
|
-
class: "font-normal text-
|
|
1361
|
+
class: "font-normal text-zinc-500 ml-1.5 cursor-pointer hover:text-zinc-700 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400",
|
|
1313
1362
|
onClick: startEditLabel
|
|
1314
1363
|
}, "— " + toDisplayString(__props.testRun.label), 1)) : (openBlock(), createBlock("button", {
|
|
1315
1364
|
key: 1,
|
|
1316
|
-
class: "text-xs text-
|
|
1365
|
+
class: "text-xs text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300 border-b border-dashed border-transparent hover:border-zinc-400 ml-1.5",
|
|
1317
1366
|
title: "Add a label",
|
|
1318
1367
|
onClick: startEditLabel
|
|
1319
1368
|
}, " + label "))
|
|
@@ -1358,7 +1407,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1358
1407
|
]),
|
|
1359
1408
|
_: 1
|
|
1360
1409
|
}, 8, ["text"])) : createCommentVNode("", true),
|
|
1361
|
-
createVNode("span", { class: "text-xs text-
|
|
1410
|
+
createVNode("span", { class: "text-xs text-zinc-500 ml-auto whitespace-nowrap" }, toDisplayString(__props.testRun?.project?.label ?? __props.testRun?.project?.name) + " · Started " + toDisplayString(("prettyDateFormat" in _ctx ? _ctx.prettyDateFormat : unref(prettyDateFormat))(__props.testRun?.startTime)), 1),
|
|
1362
1411
|
createVNode(_component_UTooltip, {
|
|
1363
1412
|
text: unref(copied) ? "Copied!" : "Copy run summary"
|
|
1364
1413
|
}, {
|
|
@@ -1368,7 +1417,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1368
1417
|
variant: "ghost",
|
|
1369
1418
|
color: "neutral",
|
|
1370
1419
|
icon: unref(copied) ? "i-lucide-check" : "i-lucide-clipboard",
|
|
1371
|
-
class: "shrink-0 text-
|
|
1420
|
+
class: "shrink-0 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
1372
1421
|
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
1373
1422
|
}, null, 8, ["icon", "onClick"])
|
|
1374
1423
|
]),
|
|
@@ -1377,11 +1426,11 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1377
1426
|
unref(failedCases).length > 0 ? (openBlock(), createBlock(_component_UPopover, { key: 2 }, {
|
|
1378
1427
|
content: withCtx(() => [
|
|
1379
1428
|
createVNode("div", { class: "p-2 space-y-1 min-w-32" }, [
|
|
1380
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
1429
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 px-2 py-1" }, "Mode"),
|
|
1381
1430
|
(openBlock(), createBlock(Fragment, null, renderList(["file-line", "grep", "file"], (m) => {
|
|
1382
1431
|
return createVNode("button", {
|
|
1383
1432
|
key: m,
|
|
1384
|
-
class: ["w-full text-left px-2 py-1 text-sm rounded hover:bg-
|
|
1433
|
+
class: ["w-full text-left px-2 py-1 text-sm rounded hover:bg-zinc-100 dark:hover:bg-zinc-800", unref(retryMode) === m ? "bg-primary/10 text-primary" : ""],
|
|
1385
1434
|
onClick: ($event) => retryMode.value = m
|
|
1386
1435
|
}, toDisplayString(m === "file-line" ? "File:line" : m === "grep" ? "Title (grep)" : "File only"), 11, ["onClick"]);
|
|
1387
1436
|
}), 64))
|
|
@@ -1412,23 +1461,23 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1412
1461
|
createVNode("button", {
|
|
1413
1462
|
class: [
|
|
1414
1463
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1415
|
-
__props.activeFilter === "all" ? "bg-
|
|
1464
|
+
__props.activeFilter === "all" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
1416
1465
|
],
|
|
1417
1466
|
onClick: ($event) => emit("filter-status", "all")
|
|
1418
1467
|
}, [
|
|
1419
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
1468
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 uppercase tracking-wider" }, "Total"),
|
|
1420
1469
|
createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0), 1)
|
|
1421
1470
|
], 10, ["onClick"]),
|
|
1422
1471
|
createVNode("div", { class: "relative" }, [
|
|
1423
1472
|
createVNode("button", {
|
|
1424
1473
|
class: [
|
|
1425
1474
|
"rounded-lg p-3 text-left w-full h-full transition-colors cursor-pointer",
|
|
1426
|
-
__props.activeFilter === "passed" ? "bg-
|
|
1475
|
+
__props.activeFilter === "passed" ? "bg-emerald-100 dark:bg-emerald-900/30 ring-2 ring-emerald-400 dark:ring-emerald-600" : "bg-emerald-50 dark:bg-emerald-900/20 hover:bg-emerald-100 dark:hover:bg-emerald-900/30"
|
|
1427
1476
|
],
|
|
1428
1477
|
onClick: ($event) => emit("filter-status", "passed")
|
|
1429
1478
|
}, [
|
|
1430
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
1431
|
-
createVNode("p", { class: "text-xl font-bold mt-0.5 text-
|
|
1479
|
+
createVNode("p", { class: "text-xs font-medium text-emerald-700 dark:text-emerald-400 uppercase tracking-wider" }, " Passed "),
|
|
1480
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5 text-emerald-600 dark:text-emerald-400" }, toDisplayString(__props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0), 1)
|
|
1432
1481
|
], 10, ["onClick"]),
|
|
1433
1482
|
(__props.testRun?.flakyTests ?? 0) > 0 ? (openBlock(), createBlock("button", {
|
|
1434
1483
|
key: 0,
|
|
@@ -1449,22 +1498,22 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1449
1498
|
createVNode("button", {
|
|
1450
1499
|
class: [
|
|
1451
1500
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1452
|
-
__props.activeFilter === "failed" ? "bg-
|
|
1501
|
+
__props.activeFilter === "failed" ? "bg-rose-100 dark:bg-rose-900/30 ring-2 ring-rose-400 dark:ring-rose-600" : "bg-rose-50 dark:bg-rose-900/20 hover:bg-rose-100 dark:hover:bg-rose-900/30"
|
|
1453
1502
|
],
|
|
1454
1503
|
onClick: ($event) => emit("filter-status", "failed")
|
|
1455
1504
|
}, [
|
|
1456
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
1457
|
-
createVNode("p", { class: "text-xl font-bold mt-0.5 text-
|
|
1505
|
+
createVNode("p", { class: "text-xs font-medium text-rose-700 dark:text-rose-400 uppercase tracking-wider" }, "Failed"),
|
|
1506
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5 text-rose-600 dark:text-rose-400" }, toDisplayString(__props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0), 1)
|
|
1458
1507
|
], 10, ["onClick"]),
|
|
1459
1508
|
createVNode("button", {
|
|
1460
1509
|
class: [
|
|
1461
1510
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1462
|
-
__props.activeFilter === "skipped" ? "bg-
|
|
1511
|
+
__props.activeFilter === "skipped" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
1463
1512
|
],
|
|
1464
1513
|
onClick: ($event) => emit("filter-status", "skipped")
|
|
1465
1514
|
}, [
|
|
1466
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
1467
|
-
createVNode("p", { class: "text-xl font-bold mt-0.5 text-
|
|
1515
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 uppercase tracking-wider" }, "Skipped"),
|
|
1516
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5 text-zinc-600 dark:text-zinc-400" }, toDisplayString(__props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0), 1)
|
|
1468
1517
|
], 10, ["onClick"]),
|
|
1469
1518
|
createVNode("button", {
|
|
1470
1519
|
class: [
|
|
@@ -1497,9 +1546,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1497
1546
|
createVNode("div", { class: "flex items-center gap-1" }, [
|
|
1498
1547
|
createVNode(_component_UIcon, {
|
|
1499
1548
|
name: "i-lucide-clock",
|
|
1500
|
-
class: "size-3.5 text-
|
|
1549
|
+
class: "size-3.5 text-zinc-400"
|
|
1501
1550
|
}),
|
|
1502
|
-
createVNode(
|
|
1551
|
+
createVNode(_component_DurationValue, {
|
|
1552
|
+
ms: __props.testRun?.duration,
|
|
1553
|
+
class: "font-medium"
|
|
1554
|
+
}, null, 8, ["ms"])
|
|
1503
1555
|
]),
|
|
1504
1556
|
__props.testRun?.avgTestDuration ? (openBlock(), createBlock("div", {
|
|
1505
1557
|
key: 0,
|
|
@@ -1507,10 +1559,13 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1507
1559
|
}, [
|
|
1508
1560
|
createVNode(_component_UIcon, {
|
|
1509
1561
|
name: "i-lucide-gauge",
|
|
1510
|
-
class: "size-3.5 text-
|
|
1562
|
+
class: "size-3.5 text-zinc-400"
|
|
1511
1563
|
}),
|
|
1512
|
-
createVNode("span", { class: "text-
|
|
1513
|
-
createVNode(
|
|
1564
|
+
createVNode("span", { class: "text-zinc-500 hidden sm:inline" }, "Avg"),
|
|
1565
|
+
createVNode(_component_DurationValue, {
|
|
1566
|
+
ms: __props.testRun.avgTestDuration,
|
|
1567
|
+
class: "font-medium"
|
|
1568
|
+
}, null, 8, ["ms"])
|
|
1514
1569
|
])) : createCommentVNode("", true),
|
|
1515
1570
|
__props.testRun?.p90TestDuration ? (openBlock(), createBlock("div", {
|
|
1516
1571
|
key: 1,
|
|
@@ -1520,8 +1575,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1520
1575
|
name: "i-lucide-arrow-up-right",
|
|
1521
1576
|
class: "size-3.5 text-orange-500"
|
|
1522
1577
|
}),
|
|
1523
|
-
createVNode("span", { class: "text-
|
|
1524
|
-
createVNode(
|
|
1578
|
+
createVNode("span", { class: "text-zinc-500 hidden sm:inline" }, "P90"),
|
|
1579
|
+
createVNode(_component_DurationValue, {
|
|
1580
|
+
ms: __props.testRun.p90TestDuration,
|
|
1581
|
+
class: "font-medium text-orange-600 dark:text-orange-400",
|
|
1582
|
+
"unit-class": "opacity-60"
|
|
1583
|
+
}, null, 8, ["ms"])
|
|
1525
1584
|
])) : createCommentVNode("", true),
|
|
1526
1585
|
__props.totalWastedTime && __props.totalWastedTime > 0 ? (openBlock(), createBlock("div", {
|
|
1527
1586
|
key: 2,
|
|
@@ -1531,8 +1590,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1531
1590
|
name: "i-lucide-clock",
|
|
1532
1591
|
class: "size-3.5 text-amber-500"
|
|
1533
1592
|
}),
|
|
1534
|
-
createVNode("span", { class: "text-
|
|
1535
|
-
createVNode(
|
|
1593
|
+
createVNode("span", { class: "text-zinc-500 hidden sm:inline" }, "Wasted"),
|
|
1594
|
+
createVNode(_component_DurationValue, {
|
|
1595
|
+
ms: __props.totalWastedTime,
|
|
1596
|
+
class: "font-medium text-amber-600 dark:text-amber-400",
|
|
1597
|
+
"unit-class": "opacity-60"
|
|
1598
|
+
}, null, 8, ["ms"])
|
|
1536
1599
|
])) : createCommentVNode("", true)
|
|
1537
1600
|
])
|
|
1538
1601
|
])) : createCommentVNode("", true)
|
|
@@ -1575,7 +1638,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1575
1638
|
createVNode("div", { class: "flex-1 min-w-0" }, [
|
|
1576
1639
|
createVNode("div", { class: "flex items-center justify-between mb-1" }, [
|
|
1577
1640
|
createVNode("span", { class: "text-sm font-medium" }, "Finalizing test run"),
|
|
1578
|
-
createVNode("span", { class: "text-xs text-
|
|
1641
|
+
createVNode("span", { class: "text-xs text-zinc-500" }, "Uploading reports & traces…")
|
|
1579
1642
|
]),
|
|
1580
1643
|
createVNode(_component_UProgress, {
|
|
1581
1644
|
value: null,
|
|
@@ -1595,7 +1658,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1595
1658
|
class: "flex items-center justify-between gap-2 min-w-0"
|
|
1596
1659
|
}, [
|
|
1597
1660
|
createVNode(_component_UButton, {
|
|
1598
|
-
href:
|
|
1661
|
+
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(report.path, null, unref(config).app?.baseURL),
|
|
1599
1662
|
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(report.type),
|
|
1600
1663
|
target: "_blank",
|
|
1601
1664
|
size: "xs",
|
|
@@ -1608,7 +1671,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1608
1671
|
]),
|
|
1609
1672
|
_: 2
|
|
1610
1673
|
}, 1032, ["href", "icon"]),
|
|
1611
|
-
createVNode("span", { class: "text-xs tabular-nums text-
|
|
1674
|
+
createVNode("span", { class: "text-xs tabular-nums text-zinc-400 dark:text-zinc-500 shrink-0" }, toDisplayString(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(report.size)), 1)
|
|
1612
1675
|
]);
|
|
1613
1676
|
}), 128)),
|
|
1614
1677
|
unref(storageStats).testCaseFilesCount > 0 ? (openBlock(), createBlock("div", {
|
|
@@ -1616,7 +1679,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1616
1679
|
class: "flex items-center justify-between gap-2 min-w-0"
|
|
1617
1680
|
}, [
|
|
1618
1681
|
createVNode("span", { class: "truncate" }, "Test files (" + toDisplayString(unref(storageStats).testCaseFilesCount) + ")", 1),
|
|
1619
|
-
createVNode("span", { class: "text-xs tabular-nums text-
|
|
1682
|
+
createVNode("span", { class: "text-xs tabular-nums text-zinc-400 dark:text-zinc-500 shrink-0" }, toDisplayString(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(unref(storageStats).testCaseFilesSize)), 1)
|
|
1620
1683
|
])) : createCommentVNode("", true)
|
|
1621
1684
|
])) : createCommentVNode("", true)
|
|
1622
1685
|
]),
|
|
@@ -1654,7 +1717,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1654
1717
|
}, [
|
|
1655
1718
|
createVNode(_component_UIcon, {
|
|
1656
1719
|
name: "i-lucide-link",
|
|
1657
|
-
class: "w-3.5 h-3.5 text-
|
|
1720
|
+
class: "w-3.5 h-3.5 text-zinc-400 shrink-0"
|
|
1658
1721
|
}),
|
|
1659
1722
|
createVNode("span", null, toDisplayString(__props.testRun.metadata.relatedIssue), 1)
|
|
1660
1723
|
])) : createCommentVNode("", true),
|
|
@@ -1678,7 +1741,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1678
1741
|
_: 1
|
|
1679
1742
|
}, 8, ["icon", "onClick"])) : createCommentVNode("", true),
|
|
1680
1743
|
__props.showCustomData && __props.testRun.metadata.customData ? (openBlock(), createBlock("div", { key: 3 }, [
|
|
1681
|
-
createVNode("div", { class: "bg-
|
|
1744
|
+
createVNode("div", { class: "bg-zinc-50 dark:bg-zinc-900 p-2.5 rounded text-xs font-mono overflow-x-auto max-h-48 overflow-y-auto" }, [
|
|
1682
1745
|
createVNode("pre", { class: "m-0" }, toDisplayString(JSON.stringify(__props.testRun.metadata.customData, null, 2)), 1)
|
|
1683
1746
|
])
|
|
1684
1747
|
])) : createCommentVNode("", true)
|
|
@@ -1695,36 +1758,27 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
1695
1758
|
};
|
|
1696
1759
|
}
|
|
1697
1760
|
});
|
|
1698
|
-
const _sfc_setup$
|
|
1699
|
-
_sfc_main$
|
|
1761
|
+
const _sfc_setup$f = _sfc_main$f.setup;
|
|
1762
|
+
_sfc_main$f.setup = (props, ctx) => {
|
|
1700
1763
|
const ssrContext = useSSRContext();
|
|
1701
1764
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/run/RunSummary.vue");
|
|
1702
|
-
return _sfc_setup$
|
|
1765
|
+
return _sfc_setup$f ? _sfc_setup$f(props, ctx) : void 0;
|
|
1703
1766
|
};
|
|
1704
|
-
const __nuxt_component_9$1 = Object.assign(_sfc_main$
|
|
1705
|
-
const _sfc_main$
|
|
1706
|
-
__name: "
|
|
1767
|
+
const __nuxt_component_9$1 = Object.assign(_sfc_main$f, { __name: "RunSummary" });
|
|
1768
|
+
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
1769
|
+
__name: "TestRowBadges",
|
|
1707
1770
|
__ssrInlineRender: true,
|
|
1708
1771
|
props: {
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1772
|
+
mode: { default: null },
|
|
1773
|
+
isNewRegression: { type: [Boolean, null], default: false },
|
|
1774
|
+
isNewFlaky: { type: [Boolean, null], default: false },
|
|
1775
|
+
annotations: { default: null },
|
|
1776
|
+
tags: { default: null },
|
|
1777
|
+
meta: { default: null },
|
|
1778
|
+
maxTags: { default: 0 }
|
|
1715
1779
|
},
|
|
1716
1780
|
setup(__props) {
|
|
1717
1781
|
const props = __props;
|
|
1718
|
-
const suiteLookup = computed(() => {
|
|
1719
|
-
const map = /* @__PURE__ */ new Map();
|
|
1720
|
-
for (const s of props.suites) {
|
|
1721
|
-
map.set(`${s.filePath}${s.suitePath.join("")}`, s);
|
|
1722
|
-
}
|
|
1723
|
-
return map;
|
|
1724
|
-
});
|
|
1725
|
-
function normalizeStatus(s) {
|
|
1726
|
-
return s === "timedOut" || s === "timedout" ? "failed" : s;
|
|
1727
|
-
}
|
|
1728
1782
|
function annotationColor(type) {
|
|
1729
1783
|
if (type === "fixme" || type === "slow") return "warning";
|
|
1730
1784
|
if (type === "fail") return "error";
|
|
@@ -1751,6 +1805,193 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
1751
1805
|
function annotationLabel(ann) {
|
|
1752
1806
|
return ann.type === "tag" ? ann.description ?? ann.type : ann.type;
|
|
1753
1807
|
}
|
|
1808
|
+
const marks = computed(() => (props.annotations ?? []).filter((ann) => !isPiwiAnnotation(ann.type)));
|
|
1809
|
+
const hasMeta = computed(
|
|
1810
|
+
() => Boolean(
|
|
1811
|
+
(props.tags?.length ?? 0) > 0 || props.meta?.owner || props.meta?.priority || props.meta?.feature || props.meta?.link
|
|
1812
|
+
)
|
|
1813
|
+
);
|
|
1814
|
+
const hasAnything = computed(
|
|
1815
|
+
() => props.mode === "parallel" || props.mode === "serial" || Boolean(props.isNewRegression) || Boolean(props.isNewFlaky) || marks.value.length > 0 || hasMeta.value
|
|
1816
|
+
);
|
|
1817
|
+
return (_ctx, _push, _parent, _attrs) => {
|
|
1818
|
+
const _component_UBadge = _sfc_main$7$1;
|
|
1819
|
+
const _component_UIcon = _sfc_main$p;
|
|
1820
|
+
const _component_TestMetaBadges = __nuxt_component_2$3;
|
|
1821
|
+
if (unref(hasAnything)) {
|
|
1822
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "inline-flex items-center gap-1 flex-wrap" }, _attrs))}>`);
|
|
1823
|
+
if (__props.mode === "parallel") {
|
|
1824
|
+
_push(ssrRenderComponent(_component_UBadge, {
|
|
1825
|
+
color: "success",
|
|
1826
|
+
variant: "soft",
|
|
1827
|
+
size: "xs",
|
|
1828
|
+
class: "shrink-0"
|
|
1829
|
+
}, {
|
|
1830
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
1831
|
+
if (_push2) {
|
|
1832
|
+
_push2(`parallel`);
|
|
1833
|
+
} else {
|
|
1834
|
+
return [
|
|
1835
|
+
createTextVNode("parallel")
|
|
1836
|
+
];
|
|
1837
|
+
}
|
|
1838
|
+
}),
|
|
1839
|
+
_: 1
|
|
1840
|
+
}, _parent));
|
|
1841
|
+
} else {
|
|
1842
|
+
_push(`<!---->`);
|
|
1843
|
+
}
|
|
1844
|
+
if (__props.mode === "serial") {
|
|
1845
|
+
_push(ssrRenderComponent(_component_UBadge, {
|
|
1846
|
+
color: "warning",
|
|
1847
|
+
variant: "soft",
|
|
1848
|
+
size: "xs",
|
|
1849
|
+
class: "shrink-0"
|
|
1850
|
+
}, {
|
|
1851
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
1852
|
+
if (_push2) {
|
|
1853
|
+
_push2(`serial`);
|
|
1854
|
+
} else {
|
|
1855
|
+
return [
|
|
1856
|
+
createTextVNode("serial")
|
|
1857
|
+
];
|
|
1858
|
+
}
|
|
1859
|
+
}),
|
|
1860
|
+
_: 1
|
|
1861
|
+
}, _parent));
|
|
1862
|
+
} else {
|
|
1863
|
+
_push(`<!---->`);
|
|
1864
|
+
}
|
|
1865
|
+
if (__props.isNewRegression) {
|
|
1866
|
+
_push(ssrRenderComponent(_component_UBadge, {
|
|
1867
|
+
color: "error",
|
|
1868
|
+
variant: "solid",
|
|
1869
|
+
size: "xs",
|
|
1870
|
+
class: "uppercase tracking-wider shrink-0",
|
|
1871
|
+
title: "First run in which this test failed"
|
|
1872
|
+
}, {
|
|
1873
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
1874
|
+
if (_push2) {
|
|
1875
|
+
_push2(` NEW `);
|
|
1876
|
+
} else {
|
|
1877
|
+
return [
|
|
1878
|
+
createTextVNode(" NEW ")
|
|
1879
|
+
];
|
|
1880
|
+
}
|
|
1881
|
+
}),
|
|
1882
|
+
_: 1
|
|
1883
|
+
}, _parent));
|
|
1884
|
+
} else {
|
|
1885
|
+
_push(`<!---->`);
|
|
1886
|
+
}
|
|
1887
|
+
if (__props.isNewFlaky) {
|
|
1888
|
+
_push(ssrRenderComponent(_component_UBadge, {
|
|
1889
|
+
color: "info",
|
|
1890
|
+
variant: "solid",
|
|
1891
|
+
size: "xs",
|
|
1892
|
+
class: "uppercase tracking-wider shrink-0",
|
|
1893
|
+
title: "First run in which this test was flaky"
|
|
1894
|
+
}, {
|
|
1895
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
1896
|
+
if (_push2) {
|
|
1897
|
+
_push2(` FLAKY `);
|
|
1898
|
+
} else {
|
|
1899
|
+
return [
|
|
1900
|
+
createTextVNode(" FLAKY ")
|
|
1901
|
+
];
|
|
1902
|
+
}
|
|
1903
|
+
}),
|
|
1904
|
+
_: 1
|
|
1905
|
+
}, _parent));
|
|
1906
|
+
} else {
|
|
1907
|
+
_push(`<!---->`);
|
|
1908
|
+
}
|
|
1909
|
+
_push(`<!--[-->`);
|
|
1910
|
+
ssrRenderList(unref(marks), (ann) => {
|
|
1911
|
+
_push(ssrRenderComponent(_component_UBadge, {
|
|
1912
|
+
key: `${ann.type}:${ann.description ?? ""}`,
|
|
1913
|
+
color: annotationColor(ann.type),
|
|
1914
|
+
variant: "soft",
|
|
1915
|
+
size: "xs",
|
|
1916
|
+
title: ann.type !== "tag" ? ann.description ?? void 0 : void 0,
|
|
1917
|
+
class: "shrink-0 gap-1"
|
|
1918
|
+
}, {
|
|
1919
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
1920
|
+
if (_push2) {
|
|
1921
|
+
if (annotationIcon(ann.type)) {
|
|
1922
|
+
_push2(ssrRenderComponent(_component_UIcon, {
|
|
1923
|
+
name: annotationIcon(ann.type),
|
|
1924
|
+
class: "size-2.5 shrink-0"
|
|
1925
|
+
}, null, _parent2, _scopeId));
|
|
1926
|
+
} else {
|
|
1927
|
+
_push2(`<!---->`);
|
|
1928
|
+
}
|
|
1929
|
+
_push2(` ${ssrInterpolate(annotationLabel(ann))}`);
|
|
1930
|
+
} else {
|
|
1931
|
+
return [
|
|
1932
|
+
annotationIcon(ann.type) ? (openBlock(), createBlock(_component_UIcon, {
|
|
1933
|
+
key: 0,
|
|
1934
|
+
name: annotationIcon(ann.type),
|
|
1935
|
+
class: "size-2.5 shrink-0"
|
|
1936
|
+
}, null, 8, ["name"])) : createCommentVNode("", true),
|
|
1937
|
+
createTextVNode(" " + toDisplayString(annotationLabel(ann)), 1)
|
|
1938
|
+
];
|
|
1939
|
+
}
|
|
1940
|
+
}),
|
|
1941
|
+
_: 2
|
|
1942
|
+
}, _parent));
|
|
1943
|
+
});
|
|
1944
|
+
_push(`<!--]-->`);
|
|
1945
|
+
_push(ssrRenderComponent(_component_TestMetaBadges, {
|
|
1946
|
+
tags: __props.tags,
|
|
1947
|
+
meta: __props.meta,
|
|
1948
|
+
"max-tags": __props.maxTags
|
|
1949
|
+
}, null, _parent));
|
|
1950
|
+
_push(`</div>`);
|
|
1951
|
+
} else {
|
|
1952
|
+
_push(`<!---->`);
|
|
1953
|
+
}
|
|
1954
|
+
};
|
|
1955
|
+
}
|
|
1956
|
+
});
|
|
1957
|
+
const _sfc_setup$e = _sfc_main$e.setup;
|
|
1958
|
+
_sfc_main$e.setup = (props, ctx) => {
|
|
1959
|
+
const ssrContext = useSSRContext();
|
|
1960
|
+
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/shared/TestRowBadges.vue");
|
|
1961
|
+
return _sfc_setup$e ? _sfc_setup$e(props, ctx) : void 0;
|
|
1962
|
+
};
|
|
1963
|
+
const __nuxt_component_2$1 = Object.assign(_sfc_main$e, { __name: "TestRowBadges" });
|
|
1964
|
+
const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
1965
|
+
__name: "TestCasesTree",
|
|
1966
|
+
__ssrInlineRender: true,
|
|
1967
|
+
props: {
|
|
1968
|
+
testCases: {},
|
|
1969
|
+
suites: {},
|
|
1970
|
+
hasFilter: { type: Boolean },
|
|
1971
|
+
highlightedCaseId: {},
|
|
1972
|
+
projectKey: {},
|
|
1973
|
+
projectName: {}
|
|
1974
|
+
},
|
|
1975
|
+
setup(__props) {
|
|
1976
|
+
const props = __props;
|
|
1977
|
+
const suiteLookup = computed(() => {
|
|
1978
|
+
const map = /* @__PURE__ */ new Map();
|
|
1979
|
+
for (const s of props.suites) {
|
|
1980
|
+
map.set(`${s.filePath}${s.suitePath.join("")}`, s);
|
|
1981
|
+
}
|
|
1982
|
+
return map;
|
|
1983
|
+
});
|
|
1984
|
+
function normalizeStatus(s) {
|
|
1985
|
+
return s === "timedOut" || s === "timedout" ? "failed" : s;
|
|
1986
|
+
}
|
|
1987
|
+
const GROUP_STAT_KEYS = ["failed", "passed", "skipped", "didnotrun", "running"];
|
|
1988
|
+
function visibleStats(stats) {
|
|
1989
|
+
return GROUP_STAT_KEYS.filter((key) => stats[key] > 0).map((key) => ({
|
|
1990
|
+
key,
|
|
1991
|
+
count: stats[key],
|
|
1992
|
+
label: formatStatusLabel(key)
|
|
1993
|
+
}));
|
|
1994
|
+
}
|
|
1754
1995
|
function computeStats(tests) {
|
|
1755
1996
|
const stats = { passed: 0, failed: 0, skipped: 0, didnotrun: 0, running: 0, total: 0 };
|
|
1756
1997
|
for (const t of tests) {
|
|
@@ -1816,9 +2057,11 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
1816
2057
|
return (_ctx, _push, _parent, _attrs) => {
|
|
1817
2058
|
const _component_UIcon = _sfc_main$p;
|
|
1818
2059
|
const _component_OpenInIdeLink = __nuxt_component_1$3;
|
|
2060
|
+
const _component_TestRowBadges = __nuxt_component_2$1;
|
|
2061
|
+
const _component_BrowserBadge = __nuxt_component_3$3;
|
|
2062
|
+
const _component_DurationValue = __nuxt_component_14$1;
|
|
1819
2063
|
const _component_UBadge = _sfc_main$7$1;
|
|
1820
|
-
|
|
1821
|
-
_push(`<div${ssrRenderAttrs(mergeProps({ class: "rounded-lg border border-default text-sm flex flex-col flex-1 min-h-0" }, _attrs))}><div class="flex items-center justify-end px-3 py-1.5 border-b border-default bg-elevated shrink-0"><button class="${ssrRenderClass([__props.hasFilter ? "text-muted cursor-not-allowed opacity-50" : "text-muted hover:text-default", "flex items-center gap-1 text-xs transition-colors"])}"${ssrIncludeBooleanAttr(__props.hasFilter) ? " disabled" : ""}${ssrRenderAttr("title", __props.hasFilter ? "Clear filters to collapse/expand" : isAllExpanded.value ? "Collapse all" : "Expand all")}>`);
|
|
2064
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "rounded-lg border border-default bg-default text-sm flex flex-col flex-1 min-h-0" }, _attrs))}><div class="flex items-center justify-end px-3 py-1.5 border-b border-default bg-elevated shrink-0"><button class="${ssrRenderClass([__props.hasFilter ? "text-muted cursor-not-allowed opacity-50" : "text-muted hover:text-default", "flex items-center gap-1 text-xs transition-colors"])}"${ssrIncludeBooleanAttr(__props.hasFilter) ? " disabled" : ""}${ssrRenderAttr("title", __props.hasFilter ? "Clear filters to collapse/expand" : isAllExpanded.value ? "Collapse all" : "Expand all")}>`);
|
|
1822
2065
|
_push(ssrRenderComponent(_component_UIcon, {
|
|
1823
2066
|
name: isAllExpanded.value ? "i-lucide-fold-vertical" : "i-lucide-unfold-vertical",
|
|
1824
2067
|
class: "size-3.5"
|
|
@@ -1853,177 +2096,55 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
1853
2096
|
_push(`<span class="font-medium truncate min-w-0 text-muted">${ssrInterpolate(row.label)}</span>`);
|
|
1854
2097
|
}
|
|
1855
2098
|
if (row.depth > 0) {
|
|
1856
|
-
_push(
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
size: "xs"
|
|
1862
|
-
}, {
|
|
1863
|
-
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
1864
|
-
if (_push2) {
|
|
1865
|
-
_push2(`parallel`);
|
|
1866
|
-
} else {
|
|
1867
|
-
return [
|
|
1868
|
-
createTextVNode("parallel")
|
|
1869
|
-
];
|
|
1870
|
-
}
|
|
1871
|
-
}),
|
|
1872
|
-
_: 2
|
|
1873
|
-
}, _parent));
|
|
1874
|
-
} else {
|
|
1875
|
-
_push(`<!---->`);
|
|
1876
|
-
}
|
|
1877
|
-
if (row.mode === "serial") {
|
|
1878
|
-
_push(ssrRenderComponent(_component_UBadge, {
|
|
1879
|
-
color: "warning",
|
|
1880
|
-
variant: "soft",
|
|
1881
|
-
size: "xs"
|
|
1882
|
-
}, {
|
|
1883
|
-
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
1884
|
-
if (_push2) {
|
|
1885
|
-
_push2(`serial`);
|
|
1886
|
-
} else {
|
|
1887
|
-
return [
|
|
1888
|
-
createTextVNode("serial")
|
|
1889
|
-
];
|
|
1890
|
-
}
|
|
1891
|
-
}),
|
|
1892
|
-
_: 2
|
|
1893
|
-
}, _parent));
|
|
1894
|
-
} else {
|
|
1895
|
-
_push(`<!---->`);
|
|
1896
|
-
}
|
|
1897
|
-
_push(`<!--[-->`);
|
|
1898
|
-
ssrRenderList(row.annotations, (ann) => {
|
|
1899
|
-
_push(ssrRenderComponent(_component_UBadge, {
|
|
1900
|
-
key: `${ann.type}:${ann.description ?? ""}`,
|
|
1901
|
-
color: annotationColor(ann.type),
|
|
1902
|
-
variant: "soft",
|
|
1903
|
-
size: "xs",
|
|
1904
|
-
title: ann.type !== "tag" ? ann.description ?? void 0 : void 0,
|
|
1905
|
-
class: "gap-1"
|
|
1906
|
-
}, {
|
|
1907
|
-
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
1908
|
-
if (_push2) {
|
|
1909
|
-
if (annotationIcon(ann.type)) {
|
|
1910
|
-
_push2(ssrRenderComponent(_component_UIcon, {
|
|
1911
|
-
name: annotationIcon(ann.type),
|
|
1912
|
-
class: "size-2.5 shrink-0"
|
|
1913
|
-
}, null, _parent2, _scopeId));
|
|
1914
|
-
} else {
|
|
1915
|
-
_push2(`<!---->`);
|
|
1916
|
-
}
|
|
1917
|
-
_push2(` ${ssrInterpolate(annotationLabel(ann))}`);
|
|
1918
|
-
} else {
|
|
1919
|
-
return [
|
|
1920
|
-
annotationIcon(ann.type) ? (openBlock(), createBlock(_component_UIcon, {
|
|
1921
|
-
key: 0,
|
|
1922
|
-
name: annotationIcon(ann.type),
|
|
1923
|
-
class: "size-2.5 shrink-0"
|
|
1924
|
-
}, null, 8, ["name"])) : createCommentVNode("", true),
|
|
1925
|
-
createTextVNode(" " + toDisplayString(annotationLabel(ann)), 1)
|
|
1926
|
-
];
|
|
1927
|
-
}
|
|
1928
|
-
}),
|
|
1929
|
-
_: 2
|
|
1930
|
-
}, _parent));
|
|
1931
|
-
});
|
|
1932
|
-
_push(`<!--]--></div>`);
|
|
1933
|
-
} else {
|
|
1934
|
-
_push(`<!---->`);
|
|
1935
|
-
}
|
|
1936
|
-
_push(`<div class="flex-1"></div><div class="flex items-center gap-2 shrink-0 tabular-nums">`);
|
|
1937
|
-
if (row.stats.failed > 0) {
|
|
1938
|
-
_push(`<span class="text-xs text-red-600 dark:text-red-400 font-medium">${ssrInterpolate(row.stats.failed)} failed </span>`);
|
|
1939
|
-
} else {
|
|
1940
|
-
_push(`<!---->`);
|
|
1941
|
-
}
|
|
1942
|
-
if (row.stats.passed > 0) {
|
|
1943
|
-
_push(`<span class="text-xs text-green-600 dark:text-green-400">${ssrInterpolate(row.stats.passed)} passed </span>`);
|
|
1944
|
-
} else {
|
|
1945
|
-
_push(`<!---->`);
|
|
1946
|
-
}
|
|
1947
|
-
if (row.stats.skipped > 0) {
|
|
1948
|
-
_push(`<span class="text-xs text-muted">${ssrInterpolate(row.stats.skipped)} skipped</span>`);
|
|
1949
|
-
} else {
|
|
1950
|
-
_push(`<!---->`);
|
|
1951
|
-
}
|
|
1952
|
-
if (row.stats.didnotrun > 0) {
|
|
1953
|
-
_push(`<span class="text-xs text-amber-600 dark:text-amber-400">${ssrInterpolate(row.stats.didnotrun)} didn't run </span>`);
|
|
1954
|
-
} else {
|
|
1955
|
-
_push(`<!---->`);
|
|
1956
|
-
}
|
|
1957
|
-
if (row.stats.running > 0) {
|
|
1958
|
-
_push(`<span class="text-xs text-info">${ssrInterpolate(row.stats.running)} running</span>`);
|
|
2099
|
+
_push(ssrRenderComponent(_component_TestRowBadges, {
|
|
2100
|
+
mode: row.mode,
|
|
2101
|
+
annotations: row.annotations,
|
|
2102
|
+
class: "shrink-0"
|
|
2103
|
+
}, null, _parent));
|
|
1959
2104
|
} else {
|
|
1960
2105
|
_push(`<!---->`);
|
|
1961
2106
|
}
|
|
1962
|
-
_push(
|
|
2107
|
+
_push(`<div class="flex-1"></div><div class="flex items-center gap-1.5 sm:gap-2 shrink-0 tabular-nums"><!--[-->`);
|
|
2108
|
+
ssrRenderList(visibleStats(row.stats), (stat) => {
|
|
2109
|
+
_push(`<span class="${ssrRenderClass([[("getStatusTextClass" in _ctx ? _ctx.getStatusTextClass : unref(getStatusTextClass))(stat.key), stat.key === "failed" ? "font-medium" : ""], "text-xs inline-flex items-center gap-0.5"])}"${ssrRenderAttr("title", `${stat.count} ${stat.label}`)}>`);
|
|
2110
|
+
_push(ssrRenderComponent(_component_UIcon, {
|
|
2111
|
+
name: ("getStatusIcon" in _ctx ? _ctx.getStatusIcon : unref(getStatusIcon))(stat.key),
|
|
2112
|
+
class: "size-3 shrink-0 sm:hidden"
|
|
2113
|
+
}, null, _parent));
|
|
2114
|
+
_push(` ${ssrInterpolate(stat.count)}<span class="max-sm:sr-only">${ssrInterpolate(stat.label)}</span></span>`);
|
|
2115
|
+
});
|
|
2116
|
+
_push(`<!--]--></div></div>`);
|
|
1963
2117
|
} else {
|
|
1964
|
-
_push(`<div class="${ssrRenderClass([__props.highlightedCaseId === row.test.id ? "animate-pulse bg-yellow-100 dark:bg-yellow-900/30" : "", "flex items-center gap-2 pr-3 py-1.5 border-b border-default last:border-b-0 hover:bg-
|
|
2118
|
+
_push(`<div class="${ssrRenderClass([__props.highlightedCaseId === row.test.id ? "animate-pulse bg-yellow-100 dark:bg-yellow-900/30" : "", "flex flex-wrap items-center gap-x-2 gap-y-1 pr-3 py-2 sm:py-1.5 border-b border-default last:border-b-0 hover:bg-zinc-50 dark:hover:bg-zinc-900/40 transition-colors"])}" style="${ssrRenderStyle({ paddingLeft: `${row.depth * 20 + 12}px` })}">`);
|
|
2119
|
+
_push(ssrRenderComponent(_component_BrowserBadge, {
|
|
2120
|
+
browser: row.test.browser,
|
|
2121
|
+
size: "sm"
|
|
2122
|
+
}, null, _parent));
|
|
1965
2123
|
_push(ssrRenderComponent(_component_UIcon, {
|
|
1966
|
-
name: "
|
|
1967
|
-
class: "size-
|
|
2124
|
+
name: ("getStatusIcon" in _ctx ? _ctx.getStatusIcon : unref(getStatusIcon))(row.test.status),
|
|
2125
|
+
class: ["size-4 shrink-0", [("getStatusTextClass" in _ctx ? _ctx.getStatusTextClass : unref(getStatusTextClass))(row.test.status), ("isStatusInFlight" in _ctx ? _ctx.isStatusInFlight : unref(isStatusInFlight))(row.test.status) ? "animate-spin" : ""]],
|
|
2126
|
+
role: "img",
|
|
2127
|
+
"aria-label": `Status: ${("formatStatusLabel" in _ctx ? _ctx.formatStatusLabel : unref(formatStatusLabel))(row.test.status)}`,
|
|
2128
|
+
title: ("formatStatusLabel" in _ctx ? _ctx.formatStatusLabel : unref(formatStatusLabel))(row.test.status)
|
|
1968
2129
|
}, null, _parent));
|
|
1969
|
-
_push(
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
),
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
return [
|
|
1981
|
-
createTextVNode(toDisplayString(("formatStatusLabel" in _ctx ? _ctx.formatStatusLabel : unref(formatStatusLabel))(row.test.status)), 1)
|
|
1982
|
-
];
|
|
1983
|
-
}
|
|
1984
|
-
}),
|
|
1985
|
-
_: 2
|
|
1986
|
-
}, _parent));
|
|
1987
|
-
_push(`<!--[-->`);
|
|
1988
|
-
ssrRenderList(row.test.testAnnotations ?? [], (ann) => {
|
|
1989
|
-
_push(ssrRenderComponent(_component_UBadge, {
|
|
1990
|
-
key: `${ann.type}:${ann.description ?? ""}`,
|
|
1991
|
-
color: annotationColor(ann.type),
|
|
1992
|
-
variant: "soft",
|
|
1993
|
-
size: "xs",
|
|
1994
|
-
title: ann.type !== "tag" ? ann.description ?? void 0 : void 0,
|
|
1995
|
-
class: "shrink-0 gap-1"
|
|
1996
|
-
}, {
|
|
1997
|
-
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
1998
|
-
if (_push2) {
|
|
1999
|
-
if (annotationIcon(ann.type)) {
|
|
2000
|
-
_push2(ssrRenderComponent(_component_UIcon, {
|
|
2001
|
-
name: annotationIcon(ann.type),
|
|
2002
|
-
class: "size-2.5 shrink-0"
|
|
2003
|
-
}, null, _parent2, _scopeId));
|
|
2004
|
-
} else {
|
|
2005
|
-
_push2(`<!---->`);
|
|
2006
|
-
}
|
|
2007
|
-
_push2(` ${ssrInterpolate(annotationLabel(ann))}`);
|
|
2008
|
-
} else {
|
|
2009
|
-
return [
|
|
2010
|
-
annotationIcon(ann.type) ? (openBlock(), createBlock(_component_UIcon, {
|
|
2011
|
-
key: 0,
|
|
2012
|
-
name: annotationIcon(ann.type),
|
|
2013
|
-
class: "size-2.5 shrink-0"
|
|
2014
|
-
}, null, 8, ["name"])) : createCommentVNode("", true),
|
|
2015
|
-
createTextVNode(" " + toDisplayString(annotationLabel(ann)), 1)
|
|
2016
|
-
];
|
|
2017
|
-
}
|
|
2018
|
-
}),
|
|
2019
|
-
_: 2
|
|
2020
|
-
}, _parent));
|
|
2021
|
-
});
|
|
2022
|
-
_push(`<!--]--><a${ssrRenderAttr("href", `/test-run-cases/${row.test.id}`)} class="text-primary hover:underline truncate flex-1 min-w-0">${ssrInterpolate(row.test.title)}</a><div class="flex items-center gap-2 shrink-0">`);
|
|
2130
|
+
_push(`<a${ssrRenderAttr("href", `/test-run-cases/${row.test.id}`)} class="text-highlighted hover:text-primary hover:underline min-w-32 self-stretch flex items-center"${ssrRenderAttr("title", row.test.title)}><span class="truncate">${ssrInterpolate(row.test.title)}</span></a>`);
|
|
2131
|
+
_push(ssrRenderComponent(_component_TestRowBadges, {
|
|
2132
|
+
"is-new-regression": Boolean(row.test.isNewRegression),
|
|
2133
|
+
"is-new-flaky": Boolean(row.test.isNewFlaky),
|
|
2134
|
+
annotations: row.test.testAnnotations,
|
|
2135
|
+
tags: row.test.tags,
|
|
2136
|
+
meta: row.test.testMeta,
|
|
2137
|
+
"max-tags": 3,
|
|
2138
|
+
class: "shrink-0"
|
|
2139
|
+
}, null, _parent));
|
|
2140
|
+
_push(`<div class="flex items-center gap-1.5 sm:gap-2 shrink-0 ml-auto">`);
|
|
2023
2141
|
if (row.test.status === "running") {
|
|
2024
2142
|
_push(`<span class="text-xs text-info">In progress...</span>`);
|
|
2025
2143
|
} else if (row.test.duration) {
|
|
2026
|
-
_push(
|
|
2144
|
+
_push(ssrRenderComponent(_component_DurationValue, {
|
|
2145
|
+
ms: row.test.duration,
|
|
2146
|
+
class: "text-xs text-muted"
|
|
2147
|
+
}, null, _parent));
|
|
2027
2148
|
} else {
|
|
2028
2149
|
_push(`<!---->`);
|
|
2029
2150
|
}
|
|
@@ -2069,22 +2190,21 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
2069
2190
|
} else {
|
|
2070
2191
|
_push(`<!---->`);
|
|
2071
2192
|
}
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
}, _parent));
|
|
2193
|
+
if (row.test.wastedTimeMs) {
|
|
2194
|
+
_push(`<span class="inline-flex items-center gap-0.5 text-xs text-amber-600 dark:text-amber-400" title="Wasted in fixed waits">`);
|
|
2195
|
+
_push(ssrRenderComponent(_component_UIcon, {
|
|
2196
|
+
name: "i-lucide-hourglass",
|
|
2197
|
+
class: "size-3 shrink-0"
|
|
2198
|
+
}, null, _parent));
|
|
2199
|
+
_push(ssrRenderComponent(_component_DurationValue, {
|
|
2200
|
+
ms: row.test.wastedTimeMs,
|
|
2201
|
+
"unit-class": "opacity-60",
|
|
2202
|
+
"no-title": ""
|
|
2203
|
+
}, null, _parent));
|
|
2204
|
+
_push(`</span>`);
|
|
2205
|
+
} else {
|
|
2206
|
+
_push(`<!---->`);
|
|
2207
|
+
}
|
|
2088
2208
|
_push(`</div></div>`);
|
|
2089
2209
|
}
|
|
2090
2210
|
_push(`<!--]-->`);
|
|
@@ -2094,7 +2214,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
2094
2214
|
_push(`<div class="text-center py-8 text-muted">`);
|
|
2095
2215
|
_push(ssrRenderComponent(_component_UIcon, {
|
|
2096
2216
|
name: "i-lucide-search-x",
|
|
2097
|
-
class: "size-6 mx-auto mb-2 text-
|
|
2217
|
+
class: "size-6 mx-auto mb-2 text-zinc-300 dark:text-zinc-600"
|
|
2098
2218
|
}, null, _parent));
|
|
2099
2219
|
_push(`<p class="text-sm">No test cases match your filters.</p></div>`);
|
|
2100
2220
|
} else {
|
|
@@ -2110,7 +2230,8 @@ _sfc_main$d.setup = (props, ctx) => {
|
|
|
2110
2230
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/run/TestCasesTree.vue");
|
|
2111
2231
|
return _sfc_setup$d ? _sfc_setup$d(props, ctx) : void 0;
|
|
2112
2232
|
};
|
|
2113
|
-
const
|
|
2233
|
+
const __nuxt_component_7 = Object.assign(_sfc_main$d, { __name: "TestCasesTree" });
|
|
2234
|
+
const NATURAL_ORDER = "natural";
|
|
2114
2235
|
const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
2115
2236
|
__name: "TestCasesList",
|
|
2116
2237
|
__ssrInlineRender: true,
|
|
@@ -2246,11 +2367,21 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2246
2367
|
if (hasWastedTime.value) {
|
|
2247
2368
|
cols.push({ key: "wastedTimeMs", label: "Wasted", sortable: true, width: "6rem", align: "left" });
|
|
2248
2369
|
}
|
|
2249
|
-
cols.push({ key: "actions", label: "Actions", sortable: false, width: "7.5rem", align: "right" });
|
|
2250
2370
|
return cols;
|
|
2251
2371
|
});
|
|
2372
|
+
const sortOptions = computed(() => [
|
|
2373
|
+
{ label: "Run order", value: NATURAL_ORDER },
|
|
2374
|
+
...columns.value.map((c) => ({ label: c.label, value: c.key }))
|
|
2375
|
+
]);
|
|
2376
|
+
const mobileSortKey = computed({
|
|
2377
|
+
get: () => sortKey.value ?? NATURAL_ORDER,
|
|
2378
|
+
set: (value) => {
|
|
2379
|
+
sortKey.value = value === NATURAL_ORDER ? null : value;
|
|
2380
|
+
if (value !== NATURAL_ORDER) sortDir.value = "asc";
|
|
2381
|
+
}
|
|
2382
|
+
});
|
|
2252
2383
|
const gridTemplate = computed(() => columns.value.map((c) => c.width).join(" "));
|
|
2253
|
-
const gridMinWidth = computed(() => hasWastedTime.value ? "
|
|
2384
|
+
const gridMinWidth = computed(() => hasWastedTime.value ? "47.5rem" : "41.5rem");
|
|
2254
2385
|
const hasFilter = computed(
|
|
2255
2386
|
() => testCaseSearch.value !== "" || activeStatuses.value.length > 0 || testCaseBrowserFilter.value !== "all" || props.failureClusterFilter != null
|
|
2256
2387
|
);
|
|
@@ -2289,12 +2420,13 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2289
2420
|
return (_ctx, _push, _parent, _attrs) => {
|
|
2290
2421
|
const _component_FilterToolbar = __nuxt_component_4$1;
|
|
2291
2422
|
const _component_UIcon = _sfc_main$p;
|
|
2292
|
-
const _component_HelpHint = __nuxt_component_2$
|
|
2423
|
+
const _component_HelpHint = __nuxt_component_2$2;
|
|
2293
2424
|
const _component_UInput = _sfc_main$d$1;
|
|
2294
|
-
const _component_USelect = _sfc_main$
|
|
2295
|
-
const _component_UCheckbox = _sfc_main$
|
|
2296
|
-
const
|
|
2297
|
-
const
|
|
2425
|
+
const _component_USelect = _sfc_main$o;
|
|
2426
|
+
const _component_UCheckbox = _sfc_main$q;
|
|
2427
|
+
const _component_UButton = _sfc_main$k;
|
|
2428
|
+
const _component_TestCasesTree = __nuxt_component_7;
|
|
2429
|
+
const _component_ClientOnly = __nuxt_component_7$1;
|
|
2298
2430
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "flex flex-col min-h-0" }, _attrs))}>`);
|
|
2299
2431
|
_push(ssrRenderComponent(_component_FilterToolbar, { class: "mb-4 shrink-0" }, {
|
|
2300
2432
|
start: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
@@ -2311,11 +2443,11 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2311
2443
|
}, null, _parent2, _scopeId));
|
|
2312
2444
|
_push2(`</button></div>`);
|
|
2313
2445
|
if (__props.isLive) {
|
|
2314
|
-
_push2(`<span class="text-sm text-
|
|
2446
|
+
_push2(`<span class="text-sm text-zinc-500 tabular-nums inline-flex items-center gap-1"${_scopeId}>${ssrInterpolate(__props.testCases.length)} completed `);
|
|
2315
2447
|
_push2(ssrRenderComponent(_component_HelpHint, { topic: "run.live" }, null, _parent2, _scopeId));
|
|
2316
2448
|
_push2(`</span>`);
|
|
2317
2449
|
} else {
|
|
2318
|
-
_push2(`<span class="text-sm text-
|
|
2450
|
+
_push2(`<span class="text-sm text-zinc-500 tabular-nums inline-flex items-center gap-1"${_scopeId}>${ssrInterpolate(sortedTestCases.value.length)}${ssrInterpolate(sortedTestCases.value.length !== __props.testCases.length ? ` / ${__props.testCases.length}` : "")} cases `);
|
|
2319
2451
|
_push2(ssrRenderComponent(_component_HelpHint, { topic: "run.test-cases" }, null, _parent2, _scopeId));
|
|
2320
2452
|
_push2(`</span>`);
|
|
2321
2453
|
}
|
|
@@ -2345,13 +2477,13 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2345
2477
|
]),
|
|
2346
2478
|
__props.isLive ? (openBlock(), createBlock("span", {
|
|
2347
2479
|
key: 0,
|
|
2348
|
-
class: "text-sm text-
|
|
2480
|
+
class: "text-sm text-zinc-500 tabular-nums inline-flex items-center gap-1"
|
|
2349
2481
|
}, [
|
|
2350
2482
|
createTextVNode(toDisplayString(__props.testCases.length) + " completed ", 1),
|
|
2351
2483
|
createVNode(_component_HelpHint, { topic: "run.live" })
|
|
2352
2484
|
])) : (openBlock(), createBlock("span", {
|
|
2353
2485
|
key: 1,
|
|
2354
|
-
class: "text-sm text-
|
|
2486
|
+
class: "text-sm text-zinc-500 tabular-nums inline-flex items-center gap-1"
|
|
2355
2487
|
}, [
|
|
2356
2488
|
createTextVNode(toDisplayString(sortedTestCases.value.length) + toDisplayString(sortedTestCases.value.length !== __props.testCases.length ? ` / ${__props.testCases.length}` : "") + " cases ", 1),
|
|
2357
2489
|
createVNode(_component_HelpHint, { topic: "run.test-cases" })
|
|
@@ -2372,10 +2504,10 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2372
2504
|
_push2(`<div class="flex flex-wrap items-center gap-1"${_scopeId}><!--[-->`);
|
|
2373
2505
|
ssrRenderList(STATUS_OPTIONS, (opt) => {
|
|
2374
2506
|
_push2(`<button class="${ssrRenderClass([
|
|
2375
|
-
activeStatuses.value.includes(opt.value) ? opt.color === "green" ? "bg-
|
|
2507
|
+
activeStatuses.value.includes(opt.value) ? opt.color === "green" ? "bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400" : opt.color === "red" ? "bg-rose-100 text-rose-700 dark:bg-rose-900/30 dark:text-rose-400" : opt.color === "orange" ? "bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400" : "bg-zinc-200 text-zinc-700 dark:bg-zinc-700 dark:text-zinc-300" : "bg-zinc-100 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400 hover:bg-zinc-200 dark:hover:bg-zinc-700",
|
|
2376
2508
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium transition-colors whitespace-nowrap"
|
|
2377
2509
|
])}"${_scopeId}><span class="${ssrRenderClass([
|
|
2378
|
-
opt.color === "green" ? "bg-
|
|
2510
|
+
opt.color === "green" ? "bg-emerald-500" : opt.color === "red" ? "bg-rose-500" : opt.color === "orange" ? "bg-orange-500" : "bg-zinc-400",
|
|
2379
2511
|
"size-2 rounded-full shrink-0"
|
|
2380
2512
|
])}"${_scopeId}></span> ${ssrInterpolate(opt.label)}</button>`);
|
|
2381
2513
|
});
|
|
@@ -2407,6 +2539,30 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2407
2539
|
} else {
|
|
2408
2540
|
_push2(`<!---->`);
|
|
2409
2541
|
}
|
|
2542
|
+
if (!unref(treeView)) {
|
|
2543
|
+
_push2(`<div class="flex items-center gap-1 md:hidden"${_scopeId}>`);
|
|
2544
|
+
_push2(ssrRenderComponent(_component_USelect, {
|
|
2545
|
+
modelValue: mobileSortKey.value,
|
|
2546
|
+
"onUpdate:modelValue": ($event) => mobileSortKey.value = $event,
|
|
2547
|
+
items: sortOptions.value,
|
|
2548
|
+
size: "sm",
|
|
2549
|
+
class: "w-32",
|
|
2550
|
+
"aria-label": "Sort cases by"
|
|
2551
|
+
}, null, _parent2, _scopeId));
|
|
2552
|
+
_push2(ssrRenderComponent(_component_UButton, {
|
|
2553
|
+
size: "sm",
|
|
2554
|
+
variant: "outline",
|
|
2555
|
+
color: "neutral",
|
|
2556
|
+
disabled: sortKey.value === null,
|
|
2557
|
+
icon: sortDir.value === "asc" ? "i-lucide-arrow-up-narrow-wide" : "i-lucide-arrow-down-wide-narrow",
|
|
2558
|
+
title: sortDir.value === "asc" ? "Sorted ascending" : "Sorted descending",
|
|
2559
|
+
"aria-label": sortDir.value === "asc" ? "Sorted ascending" : "Sorted descending",
|
|
2560
|
+
onClick: ($event) => sortDir.value = sortDir.value === "asc" ? "desc" : "asc"
|
|
2561
|
+
}, null, _parent2, _scopeId));
|
|
2562
|
+
_push2(`</div>`);
|
|
2563
|
+
} else {
|
|
2564
|
+
_push2(`<!---->`);
|
|
2565
|
+
}
|
|
2410
2566
|
} else {
|
|
2411
2567
|
return [
|
|
2412
2568
|
createVNode(_component_UInput, {
|
|
@@ -2423,14 +2579,14 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2423
2579
|
key: opt.value,
|
|
2424
2580
|
class: [
|
|
2425
2581
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-md text-xs font-medium transition-colors whitespace-nowrap",
|
|
2426
|
-
activeStatuses.value.includes(opt.value) ? opt.color === "green" ? "bg-
|
|
2582
|
+
activeStatuses.value.includes(opt.value) ? opt.color === "green" ? "bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400" : opt.color === "red" ? "bg-rose-100 text-rose-700 dark:bg-rose-900/30 dark:text-rose-400" : opt.color === "orange" ? "bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-400" : "bg-zinc-200 text-zinc-700 dark:bg-zinc-700 dark:text-zinc-300" : "bg-zinc-100 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400 hover:bg-zinc-200 dark:hover:bg-zinc-700"
|
|
2427
2583
|
],
|
|
2428
2584
|
onClick: ($event) => toggleStatus(opt.value)
|
|
2429
2585
|
}, [
|
|
2430
2586
|
createVNode("span", {
|
|
2431
2587
|
class: [
|
|
2432
2588
|
"size-2 rounded-full shrink-0",
|
|
2433
|
-
opt.color === "green" ? "bg-
|
|
2589
|
+
opt.color === "green" ? "bg-emerald-500" : opt.color === "red" ? "bg-rose-500" : opt.color === "orange" ? "bg-orange-500" : "bg-zinc-400"
|
|
2434
2590
|
]
|
|
2435
2591
|
}, null, 2),
|
|
2436
2592
|
createTextVNode(" " + toDisplayString(opt.label), 1)
|
|
@@ -2457,7 +2613,30 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2457
2613
|
"onUpdate:modelValue": ($event) => showNewFlakyOnly.value = $event,
|
|
2458
2614
|
label: "New flaky",
|
|
2459
2615
|
size: "sm"
|
|
2460
|
-
}, null, 8, ["modelValue", "onUpdate:modelValue"])) : createCommentVNode("", true)
|
|
2616
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue"])) : createCommentVNode("", true),
|
|
2617
|
+
!unref(treeView) ? (openBlock(), createBlock("div", {
|
|
2618
|
+
key: 2,
|
|
2619
|
+
class: "flex items-center gap-1 md:hidden"
|
|
2620
|
+
}, [
|
|
2621
|
+
createVNode(_component_USelect, {
|
|
2622
|
+
modelValue: mobileSortKey.value,
|
|
2623
|
+
"onUpdate:modelValue": ($event) => mobileSortKey.value = $event,
|
|
2624
|
+
items: sortOptions.value,
|
|
2625
|
+
size: "sm",
|
|
2626
|
+
class: "w-32",
|
|
2627
|
+
"aria-label": "Sort cases by"
|
|
2628
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "items"]),
|
|
2629
|
+
createVNode(_component_UButton, {
|
|
2630
|
+
size: "sm",
|
|
2631
|
+
variant: "outline",
|
|
2632
|
+
color: "neutral",
|
|
2633
|
+
disabled: sortKey.value === null,
|
|
2634
|
+
icon: sortDir.value === "asc" ? "i-lucide-arrow-up-narrow-wide" : "i-lucide-arrow-down-wide-narrow",
|
|
2635
|
+
title: sortDir.value === "asc" ? "Sorted ascending" : "Sorted descending",
|
|
2636
|
+
"aria-label": sortDir.value === "asc" ? "Sorted ascending" : "Sorted descending",
|
|
2637
|
+
onClick: ($event) => sortDir.value = sortDir.value === "asc" ? "desc" : "asc"
|
|
2638
|
+
}, null, 8, ["disabled", "icon", "title", "aria-label", "onClick"])
|
|
2639
|
+
])) : createCommentVNode("", true)
|
|
2461
2640
|
];
|
|
2462
2641
|
}
|
|
2463
2642
|
}),
|
|
@@ -2476,7 +2655,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2476
2655
|
} else if (!unref(treeView)) {
|
|
2477
2656
|
_push(`<!--[-->`);
|
|
2478
2657
|
if (sortedTestCases.value.length > 0) {
|
|
2479
|
-
_push(`<div class="flex-1 min-h-0 max-lg:h-[70dvh] overflow-x-auto overflow-y-hidden rounded-lg border border-default"><div class="flex flex-col h-full" role="table" aria-label="Test cases"${ssrRenderAttr("aria-rowcount", sortedTestCases.value.length + 1)} style="${ssrRenderStyle({
|
|
2658
|
+
_push(`<div class="flex-1 min-h-0 max-lg:h-[70dvh] md:overflow-x-auto overflow-y-hidden rounded-lg border border-default bg-default"><div class="flex flex-col h-full md:min-w-(--grid-min-width)" role="table" aria-label="Test cases"${ssrRenderAttr("aria-rowcount", sortedTestCases.value.length + 1)} style="${ssrRenderStyle({ "--grid-min-width": gridMinWidth.value })}"><div class="hidden md:grid shrink-0 bg-elevated/50 border-b border-default" role="row" style="${ssrRenderStyle({ gridTemplateColumns: gridTemplate.value })}"><!--[-->`);
|
|
2480
2659
|
ssrRenderList(columns.value, (col) => {
|
|
2481
2660
|
_push(`<!--[-->`);
|
|
2482
2661
|
if (col.sortable) {
|
|
@@ -2503,7 +2682,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2503
2682
|
_push(ssrRenderComponent(_component_ClientOnly, null, {
|
|
2504
2683
|
fallback: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
2505
2684
|
if (_push2) {
|
|
2506
|
-
_push2(`<div class="flex-1 min-h-0 flex items-center justify-center py-10 text-sm text-
|
|
2685
|
+
_push2(`<div class="flex-1 min-h-0 flex items-center justify-center py-10 text-sm text-zinc-500"${_scopeId}>`);
|
|
2507
2686
|
_push2(ssrRenderComponent(_component_UIcon, {
|
|
2508
2687
|
name: "i-lucide-loader-circle",
|
|
2509
2688
|
class: "size-4 mr-2 animate-spin"
|
|
@@ -2511,7 +2690,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2511
2690
|
_push2(` Loading test cases… </div>`);
|
|
2512
2691
|
} else {
|
|
2513
2692
|
return [
|
|
2514
|
-
createVNode("div", { class: "flex-1 min-h-0 flex items-center justify-center py-10 text-sm text-
|
|
2693
|
+
createVNode("div", { class: "flex-1 min-h-0 flex items-center justify-center py-10 text-sm text-zinc-500" }, [
|
|
2515
2694
|
createVNode(_component_UIcon, {
|
|
2516
2695
|
name: "i-lucide-loader-circle",
|
|
2517
2696
|
class: "size-4 mr-2 animate-spin"
|
|
@@ -2524,17 +2703,17 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2524
2703
|
}, _parent));
|
|
2525
2704
|
_push(`</div></div>`);
|
|
2526
2705
|
} else if (__props.testCases.length === 0) {
|
|
2527
|
-
_push(`<div class="text-center py-10 text-
|
|
2706
|
+
_push(`<div class="text-center py-10 text-zinc-500">`);
|
|
2528
2707
|
_push(ssrRenderComponent(_component_UIcon, {
|
|
2529
2708
|
name: "i-lucide-beaker",
|
|
2530
|
-
class: "size-8 mx-auto mb-2 text-
|
|
2709
|
+
class: "size-8 mx-auto mb-2 text-zinc-300 dark:text-zinc-600"
|
|
2531
2710
|
}, null, _parent));
|
|
2532
2711
|
_push(`<p>No test cases recorded for this run.</p></div>`);
|
|
2533
2712
|
} else {
|
|
2534
|
-
_push(`<div class="text-center py-10 text-
|
|
2713
|
+
_push(`<div class="text-center py-10 text-zinc-500">`);
|
|
2535
2714
|
_push(ssrRenderComponent(_component_UIcon, {
|
|
2536
2715
|
name: "i-lucide-search-x",
|
|
2537
|
-
class: "size-8 mx-auto mb-2 text-
|
|
2716
|
+
class: "size-8 mx-auto mb-2 text-zinc-300 dark:text-zinc-600"
|
|
2538
2717
|
}, null, _parent));
|
|
2539
2718
|
_push(`<p>No test cases match your filters.</p></div>`);
|
|
2540
2719
|
}
|
|
@@ -2624,9 +2803,9 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
2624
2803
|
const _component_ErrorState = __nuxt_component_5$1;
|
|
2625
2804
|
const _component_UButton = _sfc_main$k;
|
|
2626
2805
|
const _component_LoadingState = __nuxt_component_1$1;
|
|
2627
|
-
const _component_EmptyState =
|
|
2806
|
+
const _component_EmptyState = __nuxt_component_9$2;
|
|
2628
2807
|
const _component_UIcon = _sfc_main$p;
|
|
2629
|
-
const _component_HelpHint = __nuxt_component_2$
|
|
2808
|
+
const _component_HelpHint = __nuxt_component_2$2;
|
|
2630
2809
|
const _component_SectionCard = __nuxt_component_11;
|
|
2631
2810
|
const _component_NuxtLink = __nuxt_component_12$1;
|
|
2632
2811
|
const _component_UBadge = _sfc_main$7$1;
|
|
@@ -3649,14 +3828,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
3649
3828
|
const totalCases = computed(() => groups.value?.reduce((sum, g) => sum + g.caseCount, 0) ?? 0);
|
|
3650
3829
|
return (_ctx, _push, _parent, _attrs) => {
|
|
3651
3830
|
const _component_UIcon = _sfc_main$p;
|
|
3652
|
-
const _component_HelpHint = __nuxt_component_2$
|
|
3831
|
+
const _component_HelpHint = __nuxt_component_2$2;
|
|
3653
3832
|
const _component_UButton = _sfc_main$k;
|
|
3654
|
-
const _component_UCard = _sfc_main$
|
|
3833
|
+
const _component_UCard = _sfc_main$m;
|
|
3655
3834
|
const _component_TableScroller = __nuxt_component_3$2;
|
|
3656
|
-
const _component_UTable = _sfc_main$
|
|
3835
|
+
const _component_UTable = _sfc_main$i;
|
|
3657
3836
|
const _component_UBadge = _sfc_main$7$1;
|
|
3658
3837
|
const _component_NuxtLink = __nuxt_component_12$1;
|
|
3659
|
-
const _component_UModal = _sfc_main$
|
|
3838
|
+
const _component_UModal = _sfc_main$n;
|
|
3660
3839
|
const _component_ClusterDiagnosis = __nuxt_component_9;
|
|
3661
3840
|
_push(`<!--[--><div class="pt-4 space-y-3">`);
|
|
3662
3841
|
if (unref(loading)) {
|
|
@@ -4780,12 +4959,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
4780
4959
|
}
|
|
4781
4960
|
return (_ctx, _push, _parent, _attrs) => {
|
|
4782
4961
|
const _component_LoadingState = __nuxt_component_1$1;
|
|
4783
|
-
const _component_EmptyState =
|
|
4962
|
+
const _component_EmptyState = __nuxt_component_9$2;
|
|
4784
4963
|
const _component_UIcon = _sfc_main$p;
|
|
4785
|
-
const _component_HelpHint = __nuxt_component_2$
|
|
4964
|
+
const _component_HelpHint = __nuxt_component_2$2;
|
|
4786
4965
|
const _component_NuxtLink = __nuxt_component_12$1;
|
|
4787
4966
|
const _component_UBadge = _sfc_main$7$1;
|
|
4788
|
-
const _component_UCard = _sfc_main$
|
|
4967
|
+
const _component_UCard = _sfc_main$m;
|
|
4789
4968
|
const _component_UButton = _sfc_main$k;
|
|
4790
4969
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "pt-4" }, _attrs))}>`);
|
|
4791
4970
|
if (unref(loading)) {
|
|
@@ -5144,10 +5323,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
5144
5323
|
emits: ["reset", "toggleSpan"],
|
|
5145
5324
|
setup(__props) {
|
|
5146
5325
|
return (_ctx, _push, _parent, _attrs) => {
|
|
5147
|
-
const _component_HelpHint = __nuxt_component_2$
|
|
5326
|
+
const _component_HelpHint = __nuxt_component_2$2;
|
|
5148
5327
|
const _component_UPopover = _sfc_main$8$1;
|
|
5149
5328
|
const _component_UButton = _sfc_main$k;
|
|
5150
|
-
const _component_UCheckbox = _sfc_main$
|
|
5329
|
+
const _component_UCheckbox = _sfc_main$q;
|
|
5151
5330
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "flex items-center justify-between mb-2" }, _attrs))}><span class="text-xs text-gray-500 inline-flex items-center gap-1"><span>${ssrInterpolate(__props.workerCount)} worker${ssrInterpolate(__props.workerCount > 1 ? "s" : "")} `);
|
|
5152
5331
|
if (__props.shardTotal && __props.shardTotal > 1) {
|
|
5153
5332
|
_push(`<!--[--> · ${ssrInterpolate(__props.shardTotal)} shard${ssrInterpolate(__props.shardTotal > 1 ? "s" : "")}<!--]-->`);
|
|
@@ -6048,15 +6227,16 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6048
6227
|
}
|
|
6049
6228
|
];
|
|
6050
6229
|
return (_ctx, _push, _parent, _attrs) => {
|
|
6051
|
-
const _component_USelectMenu = _sfc_main$
|
|
6230
|
+
const _component_USelectMenu = _sfc_main$j;
|
|
6052
6231
|
const _component_RunStatusBadge = __nuxt_component_13$1;
|
|
6053
6232
|
const _component_UButton = _sfc_main$k;
|
|
6054
6233
|
const _component_UIcon = _sfc_main$p;
|
|
6055
|
-
const _component_UAlert = _sfc_main$
|
|
6234
|
+
const _component_UAlert = _sfc_main$l;
|
|
6056
6235
|
const _component_MarkerBadge = __nuxt_component_5;
|
|
6057
6236
|
const _component_UBadge = _sfc_main$7$1;
|
|
6058
6237
|
const _component_TableScroller = __nuxt_component_3$2;
|
|
6059
|
-
const _component_UTable = _sfc_main$
|
|
6238
|
+
const _component_UTable = _sfc_main$i;
|
|
6239
|
+
const _component_DurationValue = __nuxt_component_14$1;
|
|
6060
6240
|
_push(`<div${ssrRenderAttrs(_attrs)}>`);
|
|
6061
6241
|
if (__props.testRun && !isLive.value) {
|
|
6062
6242
|
_push(`<div class="space-y-4"><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div><label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1">Run A (baseline)</label>`);
|
|
@@ -6274,6 +6454,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6274
6454
|
} else {
|
|
6275
6455
|
_push3(ssrRenderComponent(_component_UBadge, {
|
|
6276
6456
|
color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
|
|
6457
|
+
variant: "subtle",
|
|
6277
6458
|
class: "capitalize"
|
|
6278
6459
|
}, {
|
|
6279
6460
|
default: withCtx((_2, _push4, _parent4, _scopeId3) => {
|
|
@@ -6296,6 +6477,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6296
6477
|
}, "—")) : (openBlock(), createBlock(_component_UBadge, {
|
|
6297
6478
|
key: 1,
|
|
6298
6479
|
color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
|
|
6480
|
+
variant: "subtle",
|
|
6299
6481
|
class: "capitalize"
|
|
6300
6482
|
}, {
|
|
6301
6483
|
default: withCtx(() => [
|
|
@@ -6313,6 +6495,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6313
6495
|
} else {
|
|
6314
6496
|
_push3(ssrRenderComponent(_component_UBadge, {
|
|
6315
6497
|
color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
|
|
6498
|
+
variant: "subtle",
|
|
6316
6499
|
class: "capitalize"
|
|
6317
6500
|
}, {
|
|
6318
6501
|
default: withCtx((_2, _push4, _parent4, _scopeId3) => {
|
|
@@ -6335,6 +6518,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6335
6518
|
}, "—")) : (openBlock(), createBlock(_component_UBadge, {
|
|
6336
6519
|
key: 1,
|
|
6337
6520
|
color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
|
|
6521
|
+
variant: "subtle",
|
|
6338
6522
|
class: "capitalize"
|
|
6339
6523
|
}, {
|
|
6340
6524
|
default: withCtx(() => [
|
|
@@ -6348,13 +6532,18 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6348
6532
|
"durationA-cell": withCtx(({ row }, _push3, _parent3, _scopeId2) => {
|
|
6349
6533
|
if (_push3) {
|
|
6350
6534
|
if (row.original.durationA !== null) {
|
|
6351
|
-
_push3(
|
|
6535
|
+
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
6536
|
+
ms: row.original.durationA
|
|
6537
|
+
}, null, _parent3, _scopeId2));
|
|
6352
6538
|
} else {
|
|
6353
6539
|
_push3(`<span class="text-gray-400"${_scopeId2}>—</span>`);
|
|
6354
6540
|
}
|
|
6355
6541
|
} else {
|
|
6356
6542
|
return [
|
|
6357
|
-
row.original.durationA !== null ? (openBlock(), createBlock(
|
|
6543
|
+
row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
|
|
6544
|
+
key: 0,
|
|
6545
|
+
ms: row.original.durationA
|
|
6546
|
+
}, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
|
|
6358
6547
|
key: 1,
|
|
6359
6548
|
class: "text-gray-400"
|
|
6360
6549
|
}, "—"))
|
|
@@ -6364,13 +6553,18 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6364
6553
|
"durationB-cell": withCtx(({ row }, _push3, _parent3, _scopeId2) => {
|
|
6365
6554
|
if (_push3) {
|
|
6366
6555
|
if (row.original.durationB !== null) {
|
|
6367
|
-
_push3(
|
|
6556
|
+
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
6557
|
+
ms: row.original.durationB
|
|
6558
|
+
}, null, _parent3, _scopeId2));
|
|
6368
6559
|
} else {
|
|
6369
6560
|
_push3(`<span class="text-gray-400"${_scopeId2}>—</span>`);
|
|
6370
6561
|
}
|
|
6371
6562
|
} else {
|
|
6372
6563
|
return [
|
|
6373
|
-
row.original.durationB !== null ? (openBlock(), createBlock(
|
|
6564
|
+
row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
|
|
6565
|
+
key: 0,
|
|
6566
|
+
ms: row.original.durationB
|
|
6567
|
+
}, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
|
|
6374
6568
|
key: 1,
|
|
6375
6569
|
class: "text-gray-400"
|
|
6376
6570
|
}, "—"))
|
|
@@ -6384,7 +6578,12 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6384
6578
|
} else {
|
|
6385
6579
|
_push3(`<span class="${ssrRenderClass(
|
|
6386
6580
|
row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
|
|
6387
|
-
)}"${_scopeId2}>${ssrInterpolate(row.original.delta > 0 ? "+" : "")}
|
|
6581
|
+
)}"${_scopeId2}>${ssrInterpolate(row.original.delta > 0 ? "+" : "")}`);
|
|
6582
|
+
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
6583
|
+
ms: row.original.delta,
|
|
6584
|
+
"unit-class": "opacity-60"
|
|
6585
|
+
}, null, _parent3, _scopeId2));
|
|
6586
|
+
_push3(`</span>`);
|
|
6388
6587
|
}
|
|
6389
6588
|
} else {
|
|
6390
6589
|
return [
|
|
@@ -6394,7 +6593,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6394
6593
|
}, "—")) : (openBlock(), createBlock("span", {
|
|
6395
6594
|
key: 1,
|
|
6396
6595
|
class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
|
|
6397
|
-
},
|
|
6596
|
+
}, [
|
|
6597
|
+
createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
|
|
6598
|
+
createVNode(_component_DurationValue, {
|
|
6599
|
+
ms: row.original.delta,
|
|
6600
|
+
"unit-class": "opacity-60"
|
|
6601
|
+
}, null, 8, ["ms"])
|
|
6602
|
+
], 2))
|
|
6398
6603
|
];
|
|
6399
6604
|
}
|
|
6400
6605
|
}),
|
|
@@ -6441,6 +6646,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6441
6646
|
}, "—")) : (openBlock(), createBlock(_component_UBadge, {
|
|
6442
6647
|
key: 1,
|
|
6443
6648
|
color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusA),
|
|
6649
|
+
variant: "subtle",
|
|
6444
6650
|
class: "capitalize"
|
|
6445
6651
|
}, {
|
|
6446
6652
|
default: withCtx(() => [
|
|
@@ -6456,6 +6662,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6456
6662
|
}, "—")) : (openBlock(), createBlock(_component_UBadge, {
|
|
6457
6663
|
key: 1,
|
|
6458
6664
|
color: ("getStatusColor" in _ctx ? _ctx.getStatusColor : unref(getStatusColor))(row.original.statusB),
|
|
6665
|
+
variant: "subtle",
|
|
6459
6666
|
class: "capitalize"
|
|
6460
6667
|
}, {
|
|
6461
6668
|
default: withCtx(() => [
|
|
@@ -6465,13 +6672,19 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6465
6672
|
}, 1032, ["color"]))
|
|
6466
6673
|
]),
|
|
6467
6674
|
"durationA-cell": withCtx(({ row }) => [
|
|
6468
|
-
row.original.durationA !== null ? (openBlock(), createBlock(
|
|
6675
|
+
row.original.durationA !== null ? (openBlock(), createBlock(_component_DurationValue, {
|
|
6676
|
+
key: 0,
|
|
6677
|
+
ms: row.original.durationA
|
|
6678
|
+
}, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
|
|
6469
6679
|
key: 1,
|
|
6470
6680
|
class: "text-gray-400"
|
|
6471
6681
|
}, "—"))
|
|
6472
6682
|
]),
|
|
6473
6683
|
"durationB-cell": withCtx(({ row }) => [
|
|
6474
|
-
row.original.durationB !== null ? (openBlock(), createBlock(
|
|
6684
|
+
row.original.durationB !== null ? (openBlock(), createBlock(_component_DurationValue, {
|
|
6685
|
+
key: 0,
|
|
6686
|
+
ms: row.original.durationB
|
|
6687
|
+
}, null, 8, ["ms"])) : (openBlock(), createBlock("span", {
|
|
6475
6688
|
key: 1,
|
|
6476
6689
|
class: "text-gray-400"
|
|
6477
6690
|
}, "—"))
|
|
@@ -6483,7 +6696,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6483
6696
|
}, "—")) : (openBlock(), createBlock("span", {
|
|
6484
6697
|
key: 1,
|
|
6485
6698
|
class: row.original.delta > 0 ? "text-red-600" : row.original.delta < 0 ? "text-green-600" : "text-gray-500"
|
|
6486
|
-
},
|
|
6699
|
+
}, [
|
|
6700
|
+
createTextVNode(toDisplayString(row.original.delta > 0 ? "+" : ""), 1),
|
|
6701
|
+
createVNode(_component_DurationValue, {
|
|
6702
|
+
ms: row.original.delta,
|
|
6703
|
+
"unit-class": "opacity-60"
|
|
6704
|
+
}, null, 8, ["ms"])
|
|
6705
|
+
], 2))
|
|
6487
6706
|
]),
|
|
6488
6707
|
"percentChange-cell": withCtx(({ row }) => [
|
|
6489
6708
|
row.original.percentChange === null ? (openBlock(), createBlock("span", {
|
|
@@ -6603,8 +6822,9 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
6603
6822
|
];
|
|
6604
6823
|
return (_ctx, _push, _parent, _attrs) => {
|
|
6605
6824
|
const _component_UIcon = _sfc_main$p;
|
|
6606
|
-
const _component_UTable = _sfc_main$
|
|
6825
|
+
const _component_UTable = _sfc_main$i;
|
|
6607
6826
|
const _component_UBadge = _sfc_main$7$1;
|
|
6827
|
+
const _component_DurationValue = __nuxt_component_14$1;
|
|
6608
6828
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "flex flex-col overflow-hidden" }, _attrs))}>`);
|
|
6609
6829
|
if (unref(loading)) {
|
|
6610
6830
|
_push(`<div class="flex-1 flex items-center justify-center text-gray-500 gap-2">`);
|
|
@@ -6673,12 +6893,22 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
6673
6893
|
if (_push2) {
|
|
6674
6894
|
_push2(`<span class="${ssrRenderClass(
|
|
6675
6895
|
row.original.avgDuration > 1e3 ? "text-red-600 font-medium" : row.original.avgDuration > 500 ? "text-orange-500 font-medium" : ""
|
|
6676
|
-
)}"${_scopeId}
|
|
6896
|
+
)}"${_scopeId}>`);
|
|
6897
|
+
_push2(ssrRenderComponent(_component_DurationValue, {
|
|
6898
|
+
ms: row.original.avgDuration,
|
|
6899
|
+
"unit-class": "opacity-60"
|
|
6900
|
+
}, null, _parent2, _scopeId));
|
|
6901
|
+
_push2(`</span>`);
|
|
6677
6902
|
} else {
|
|
6678
6903
|
return [
|
|
6679
6904
|
createVNode("span", {
|
|
6680
6905
|
class: row.original.avgDuration > 1e3 ? "text-red-600 font-medium" : row.original.avgDuration > 500 ? "text-orange-500 font-medium" : ""
|
|
6681
|
-
},
|
|
6906
|
+
}, [
|
|
6907
|
+
createVNode(_component_DurationValue, {
|
|
6908
|
+
ms: row.original.avgDuration,
|
|
6909
|
+
"unit-class": "opacity-60"
|
|
6910
|
+
}, null, 8, ["ms"])
|
|
6911
|
+
], 2)
|
|
6682
6912
|
];
|
|
6683
6913
|
}
|
|
6684
6914
|
}),
|
|
@@ -6686,12 +6916,22 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
6686
6916
|
if (_push2) {
|
|
6687
6917
|
_push2(`<span class="${ssrRenderClass(
|
|
6688
6918
|
row.original.p90Duration > 2e3 ? "text-red-600 font-medium" : row.original.p90Duration > 1e3 ? "text-orange-500" : ""
|
|
6689
|
-
)}"${_scopeId}
|
|
6919
|
+
)}"${_scopeId}>`);
|
|
6920
|
+
_push2(ssrRenderComponent(_component_DurationValue, {
|
|
6921
|
+
ms: row.original.p90Duration,
|
|
6922
|
+
"unit-class": "opacity-60"
|
|
6923
|
+
}, null, _parent2, _scopeId));
|
|
6924
|
+
_push2(`</span>`);
|
|
6690
6925
|
} else {
|
|
6691
6926
|
return [
|
|
6692
6927
|
createVNode("span", {
|
|
6693
6928
|
class: row.original.p90Duration > 2e3 ? "text-red-600 font-medium" : row.original.p90Duration > 1e3 ? "text-orange-500" : ""
|
|
6694
|
-
},
|
|
6929
|
+
}, [
|
|
6930
|
+
createVNode(_component_DurationValue, {
|
|
6931
|
+
ms: row.original.p90Duration,
|
|
6932
|
+
"unit-class": "opacity-60"
|
|
6933
|
+
}, null, 8, ["ms"])
|
|
6934
|
+
], 2)
|
|
6695
6935
|
];
|
|
6696
6936
|
}
|
|
6697
6937
|
}),
|
|
@@ -6872,15 +7112,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
6872
7112
|
value: "insights",
|
|
6873
7113
|
slot: "insights"
|
|
6874
7114
|
},
|
|
6875
|
-
|
|
6876
|
-
|
|
6877
|
-
|
|
6878
|
-
|
|
6879
|
-
|
|
6880
|
-
|
|
6881
|
-
|
|
6882
|
-
|
|
6883
|
-
|
|
7115
|
+
// Failure-only tabs stay visible but disabled on a green run: tabs that
|
|
7116
|
+
// appear and disappear shift every other tab's position between runs.
|
|
7117
|
+
{
|
|
7118
|
+
label: hasFailures.value ? `Failure groups (${failureGroupCount.value})` : "Failure groups",
|
|
7119
|
+
icon: "i-lucide-layers",
|
|
7120
|
+
value: "failure-groups",
|
|
7121
|
+
slot: "failure-groups",
|
|
7122
|
+
disabled: !hasFailures.value
|
|
7123
|
+
},
|
|
7124
|
+
{
|
|
7125
|
+
label: "Regression",
|
|
7126
|
+
icon: "i-lucide-git-pull-request-arrow",
|
|
7127
|
+
value: "regression",
|
|
7128
|
+
slot: "regression",
|
|
7129
|
+
disabled: !hasFailures.value
|
|
7130
|
+
},
|
|
6884
7131
|
{
|
|
6885
7132
|
label: `Timeline${uniqueWorkerCount.value > 0 ? ` (${uniqueWorkerCount.value})` : ""}`,
|
|
6886
7133
|
icon: "i-lucide-timeline",
|
|
@@ -6899,7 +7146,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
6899
7146
|
"test-cases": "overflow-hidden flex flex-col",
|
|
6900
7147
|
endpoints: "overflow-hidden flex flex-col"
|
|
6901
7148
|
};
|
|
6902
|
-
const runTabValues = computed(() => tabItems.value.map((t) => t.value));
|
|
7149
|
+
const runTabValues = computed(() => tabItems.value.filter((t) => !t.disabled).map((t) => t.value));
|
|
6903
7150
|
if (typeof route.query.tab === "string" && runTabValues.value.includes(route.query.tab)) {
|
|
6904
7151
|
activeTab.value = route.query.tab;
|
|
6905
7152
|
}
|
|
@@ -6923,11 +7170,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
6923
7170
|
}
|
|
6924
7171
|
return (_ctx, _push, _parent, _attrs) => {
|
|
6925
7172
|
const _component_UDashboardPanel = _sfc_main$1$1;
|
|
6926
|
-
const _component_UDashboardNavbar = _sfc_main$
|
|
7173
|
+
const _component_UDashboardNavbar = _sfc_main$g;
|
|
6927
7174
|
const _component_UDashboardSidebarCollapse = _sfc_main$1$2;
|
|
6928
7175
|
const _component_BreadcrumbNav = __nuxt_component_3$1;
|
|
6929
7176
|
const _component_NuxtLink = __nuxt_component_12$1;
|
|
6930
|
-
const _component_UTooltip = _sfc_main$
|
|
7177
|
+
const _component_UTooltip = _sfc_main$h;
|
|
6931
7178
|
const _component_UIcon = _sfc_main$p;
|
|
6932
7179
|
const _component_NavbarActions = __nuxt_component_4;
|
|
6933
7180
|
const _component_DetailPageLayout = __nuxt_component_8;
|
|
@@ -6941,7 +7188,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
6941
7188
|
const _component_WorkersTimeline = __nuxt_component_16;
|
|
6942
7189
|
const _component_RunCompare = __nuxt_component_17;
|
|
6943
7190
|
const _component_SlowEndpoints = __nuxt_component_18;
|
|
6944
|
-
const _component_ClientOnly = __nuxt_component_7;
|
|
7191
|
+
const _component_ClientOnly = __nuxt_component_7$1;
|
|
6945
7192
|
_push(`<!--[-->`);
|
|
6946
7193
|
_push(ssrRenderComponent(_component_UDashboardPanel, { id: "test-run-detail" }, {
|
|
6947
7194
|
header: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
@@ -7588,4 +7835,4 @@ _sfc_main.setup = (props, ctx) => {
|
|
|
7588
7835
|
};
|
|
7589
7836
|
|
|
7590
7837
|
export { _sfc_main as default };
|
|
7591
|
-
//# sourceMappingURL=_id_-
|
|
7838
|
+
//# sourceMappingURL=_id_-BHh65pfg.mjs.map
|