@piwitests/server 0.19.0 → 0.21.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/{279D2RYp.js → 9ti9eNH9.js} +1 -1
- package/.output/public/_nuxt/{DcmZRa_F.js → B-zdP-D4.js} +1 -1
- package/.output/public/_nuxt/{eaVkJRSa.js → B1RmmOsM.js} +1 -1
- package/.output/public/_nuxt/{DprVVyUQ.js → B3Fsod9X.js} +1 -1
- package/.output/public/_nuxt/{HXerICAi.js → B3rirOqU.js} +34 -34
- package/.output/public/_nuxt/B3zmIJYb.js +1 -0
- package/.output/public/_nuxt/{CDk0q2hV.js → BAKUqW95.js} +2 -2
- package/.output/public/_nuxt/BG0KKQiT.js +7 -0
- package/.output/public/_nuxt/BGL_V7Y4.js +1 -0
- package/.output/public/_nuxt/{Jo8kRmHz.js → BGusFAvZ.js} +1 -1
- package/.output/public/_nuxt/{CGNkHojN.js → BNurUTla.js} +3 -3
- package/.output/public/_nuxt/BR5cR2Ot.js +1 -0
- package/.output/public/_nuxt/BTCh_0zN.js +1 -0
- package/.output/public/_nuxt/{ZFiQCMUB.js → BTVqMsA3.js} +1 -1
- package/.output/public/_nuxt/{BqV0l12c.js → B_13C0GF.js} +1 -1
- package/.output/public/_nuxt/BeDIjhoR.js +44 -0
- package/.output/public/_nuxt/{BDicZ1gQ.js → BerCW7Ug.js} +1 -1
- package/.output/public/_nuxt/BfTNbVc_.js +1 -0
- package/.output/public/_nuxt/BnbSEpXX.js +1 -0
- package/.output/public/_nuxt/Bo_dxehb.js +1 -0
- package/.output/public/_nuxt/{ClOqkAcc.js → BpBHls4-.js} +1 -1
- package/.output/public/_nuxt/{C7P1UCO2.js → BpM6ZPIG.js} +1 -1
- package/.output/public/_nuxt/BqGumsDo.js +4 -0
- package/.output/public/_nuxt/{DS636elg.js → BrxtP_cN.js} +1 -1
- package/.output/public/_nuxt/{YVN7WG7q.js → C2hNxjjz.js} +1 -1
- package/.output/public/_nuxt/C5PSqfKi.js +2 -0
- package/.output/public/_nuxt/C5vsaU4G.js +1 -0
- package/.output/public/_nuxt/C9sdHaXd.js +1 -0
- package/.output/public/_nuxt/{SfMRXW25.js → CAxgBYIt.js} +2 -2
- package/.output/public/_nuxt/{CZfMdzfk.js → CES2i5Pl.js} +1 -1
- package/.output/public/_nuxt/{BX9ZXe98.js → CFEdRqaj.js} +1 -1
- package/.output/public/_nuxt/{B44A4LSJ.js → CFTZwazK.js} +1 -1
- package/.output/public/_nuxt/CIBS7ye6.js +1 -0
- package/.output/public/_nuxt/CIEceDOw.js +1 -0
- package/.output/public/_nuxt/{DHDtnj7p.js → CJBhojV6.js} +1 -1
- package/.output/public/_nuxt/{BPQoBGg5.js → CKYddHa6.js} +1 -1
- package/.output/public/_nuxt/{BccXfBfI.js → CLVWiCds.js} +1 -1
- package/.output/public/_nuxt/{DX-MDGb3.js → CMYAryzi.js} +1 -1
- package/.output/public/_nuxt/{BuMC3WjZ.js → COhdybDy.js} +1 -1
- package/.output/public/_nuxt/{Bu2aaVIY.js → CRBXM2d6.js} +2 -2
- package/.output/public/_nuxt/{BYDaY0Z7.js → CTD_pJ_v.js} +1 -1
- package/.output/public/_nuxt/{C9_jrmk9.js → CTP8Pw0-.js} +2 -2
- package/.output/public/_nuxt/{D55D4EYo.js → CV8iF2kG.js} +1 -1
- package/.output/public/_nuxt/{BCMuIgP5.js → CWKmbYlT.js} +1 -1
- package/.output/public/_nuxt/C_NfGMTd.js +9 -0
- package/.output/public/_nuxt/Cejoebel.js +6 -0
- package/.output/public/_nuxt/{Dnpkl-1q.js → Chpah_7l.js} +1 -1
- package/.output/public/_nuxt/Ci9d8YVV.js +1 -0
- package/.output/public/_nuxt/{C95YAaJq.js → CifRHVaR.js} +1 -1
- package/.output/public/_nuxt/{BMvCSA6h.js → Ckgsh9AT.js} +1 -1
- package/.output/public/_nuxt/{eptP4pGv.js → Cpsq-kYE.js} +1 -1
- package/.output/public/_nuxt/Cqc-DSTF.js +1 -0
- package/.output/public/_nuxt/{KnfsST6Y.js → CsHulb12.js} +1 -1
- package/.output/public/_nuxt/Ctb2CqUf.js +5 -0
- package/.output/public/_nuxt/CtstIQSh.js +1 -0
- package/.output/public/_nuxt/{DGfAxLHV.js → CvMzDKvu.js} +1 -1
- package/.output/public/_nuxt/{fVcG504p.js → D2pBhsH8.js} +1 -1
- package/.output/public/_nuxt/{rWNTSFD6.js → D8gX1Jde.js} +3 -3
- package/.output/public/_nuxt/D9knOn6D.js +1 -0
- package/.output/public/_nuxt/DAPTVdvA.js +1 -0
- package/.output/public/_nuxt/{NQikbhmK.js → DCFbQvIN.js} +44 -43
- package/.output/public/_nuxt/DCoJlz_q.js +1 -0
- package/.output/public/_nuxt/DGnQ69wW.js +64 -0
- package/.output/public/_nuxt/{CTxDO9fB.js → DHzij16p.js} +1 -1
- package/.output/public/_nuxt/DJMCXRuW.js +5 -0
- package/.output/public/_nuxt/DJXcGkJP.js +2 -0
- package/.output/public/_nuxt/{CK_2LZBS.js → DKFXZdWZ.js} +1 -1
- package/.output/public/_nuxt/{tvgqrYDd.js → DL24AjfW.js} +1 -1
- package/.output/public/_nuxt/DON74Yh6.js +1 -0
- package/.output/public/_nuxt/{CHEFCN8Q.js → DQM62mxB.js} +1 -1
- package/.output/public/_nuxt/DSe8DxMl.js +1 -0
- package/.output/public/_nuxt/DWwiVTZX.js +24 -0
- package/.output/public/_nuxt/DX4tAP78.js +1 -0
- package/.output/public/_nuxt/{DLSrtpsA.js → D_eDAIsT.js} +1 -1
- package/.output/public/_nuxt/Da8A92cF.js +1 -0
- package/.output/public/_nuxt/{BxCKKeYs.js → DdH3op4b.js} +1 -1
- package/.output/public/_nuxt/DepFDZO3.js +1 -0
- package/.output/public/_nuxt/{CV9-fTmY.js → DfSBKzrC.js} +1 -1
- package/.output/public/_nuxt/{DT53RWbC.js → DfnKh3dZ.js} +1 -1
- package/.output/public/_nuxt/{ndShiWE8.js → DhpTfeip.js} +1 -1
- package/.output/public/_nuxt/{ybDYeNxd.js → Dk9nD32g.js} +1 -1
- package/.output/public/_nuxt/{D0HNloZ9.js → DkT2nCqn.js} +1 -1
- package/.output/public/_nuxt/DlW85lQq.js +4 -0
- package/.output/public/_nuxt/DnNio-ut.js +1 -0
- package/.output/public/_nuxt/{BfTuX0wq.js → DnQv_hst.js} +1 -1
- package/.output/public/_nuxt/{FUXhyidq.js → DqEOMteW.js} +1 -1
- package/.output/public/_nuxt/{Bti38m-M.js → Dsvu7YJT.js} +1 -1
- package/.output/public/_nuxt/DvhCDBrR.js +2 -0
- package/.output/public/_nuxt/DwQaVMZR.js +1 -0
- package/.output/public/_nuxt/E-_n_6vi.js +1 -0
- package/.output/public/_nuxt/{DP8hfJ9h.js → Ebw5l7n8.js} +1 -1
- package/.output/public/_nuxt/{nv9-6vBK.js → IPePdbzl.js} +1 -1
- package/.output/public/_nuxt/{BPRffDuo.js → LHoUGrfi.js} +1 -1
- package/.output/public/_nuxt/{CYsTqbBS.js → NERLHpOL.js} +1 -1
- package/.output/public/_nuxt/RAdNGxcF.js +1 -0
- package/.output/public/_nuxt/Vxyo_mU9.js +1 -0
- package/.output/public/_nuxt/{IvQlbZk6.js → YE1kAkU9.js} +1 -1
- package/.output/public/_nuxt/{DgE2YE3R.js → YmT5WiN5.js} +1 -1
- package/.output/public/_nuxt/ZcAfCxWE.js +17 -0
- package/.output/public/_nuxt/{cHAnlQbv.js → _rglcvXN.js} +1 -1
- package/.output/public/_nuxt/bFU9Y1Vw.js +10 -0
- package/.output/public/_nuxt/bfecIH89.js +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/31ca2be4-a949-4df6-9818-773fc085557a.json +1 -0
- package/.output/public/_nuxt/entry.BAvBQY-h.css +1 -0
- package/.output/public/_nuxt/four-S1Y.js +1 -0
- package/.output/public/_nuxt/{DiOLdHBC.js → gV2U_Gqd.js} +1 -1
- package/.output/public/_nuxt/{C-elpgyr.js → lGC893pn.js} +1 -1
- package/.output/public/_nuxt/nOfj-ar8.js +1 -0
- package/.output/public/_nuxt/oKrbs1XK.js +1 -0
- package/.output/public/_nuxt/oSJFAC38.js +1 -0
- package/.output/public/_nuxt/rL4C0HV5.js +1 -0
- package/.output/public/_nuxt/{Cdff9XNh.js → tQoyVPCE.js} +1 -1
- package/.output/public/_nuxt/{DEFEpYzn.js → uSPCvASp.js} +1 -1
- package/.output/public/_nuxt/{y17lMTFy.js → wkz5-1SO.js} +1 -1
- package/.output/public/_nuxt/yYlVYKCz.js +34 -0
- package/.output/public/_nuxt/{B9WhzpKO.js → zv8WdMx0.js} +1 -1
- package/.output/server/chunks/_/collect.mjs +1 -1
- package/.output/server/chunks/_/markers.mjs +1 -1
- package/.output/server/chunks/_/quarantine.mjs +1 -1
- package/.output/server/chunks/_/scope.mjs +43 -27
- package/.output/server/chunks/_/scope.mjs.map +1 -1
- package/.output/server/chunks/_/users.mjs +1 -1
- package/.output/server/chunks/build/{Breadcrumb-Ak2Lg3oM.mjs → Breadcrumb-3itRZ1uz.mjs} +2 -2
- package/.output/server/chunks/build/Breadcrumb-3itRZ1uz.mjs.map +1 -0
- package/.output/server/chunks/build/{BreadcrumbNav-DO7I_z-n.mjs → BreadcrumbNav-GnjBvXuT.mjs} +2 -2
- package/.output/server/chunks/build/BreadcrumbNav-GnjBvXuT.mjs.map +1 -0
- package/.output/server/chunks/build/{BrowserBadge-D33lqUcj.mjs → BrowserBadge-DQqJS9CV.mjs} +66 -6
- package/.output/server/chunks/build/BrowserBadge-DQqJS9CV.mjs.map +1 -0
- package/.output/server/chunks/build/{ChartCard-Y1UKwMsf.mjs → ChartCard-D0rzMf-N.mjs} +2 -2
- package/.output/server/chunks/build/ChartCard-D0rzMf-N.mjs.map +1 -0
- package/.output/server/chunks/build/{Checkbox-DvUBGagc.mjs → Checkbox-DmRKG-0s.mjs} +5 -5
- package/.output/server/chunks/build/Checkbox-DmRKG-0s.mjs.map +1 -0
- package/.output/server/chunks/build/{CodeBlock-BgE-NSmE.mjs → CodeBlock-DGhKVFad.mjs} +4 -4
- package/.output/server/chunks/build/CodeBlock-DGhKVFad.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardNavbar-BHmMSPX7.mjs → DashboardNavbar-DCr10nxL.mjs} +2 -2
- package/.output/server/chunks/build/DashboardNavbar-DCr10nxL.mjs.map +1 -0
- package/.output/server/chunks/build/{DashboardSidebarToggle-DCTnHiIv.mjs → DashboardSidebarToggle-8EpBhX0R.mjs} +3 -3
- package/.output/server/chunks/build/DashboardSidebarToggle-8EpBhX0R.mjs.map +1 -0
- package/.output/server/chunks/build/{DataLocationCard-B_YHdzSz.mjs → DataLocationCard-rzS-pgCP.mjs} +5 -5
- package/.output/server/chunks/build/DataLocationCard-rzS-pgCP.mjs.map +1 -0
- package/.output/server/chunks/build/{DiagnosisPanel-B646dK4p.mjs → DiagnosisPanel-BWTpoCKy.mjs} +8 -7
- package/.output/server/chunks/build/DiagnosisPanel-BWTpoCKy.mjs.map +1 -0
- package/.output/server/chunks/build/{useAiStatus-CWvIo32Q.mjs → DiagnosisResult-Br3qBLXe.mjs} +14 -36
- package/.output/server/chunks/build/DiagnosisResult-Br3qBLXe.mjs.map +1 -0
- package/.output/server/chunks/build/{DurationValue-D20oGbnc.mjs → DurationValue-CWKfjIF2.mjs} +2 -2
- package/.output/server/chunks/build/DurationValue-CWKfjIF2.mjs.map +1 -0
- package/.output/server/chunks/build/{EmptyState-Dtlab7S9.mjs → EmptyState-DC2q_7TD.mjs} +3 -3
- package/.output/server/chunks/build/EmptyState-DC2q_7TD.mjs.map +1 -0
- package/.output/server/chunks/build/{EntityLinks-D3fp57pR.mjs → EntityLinks-CF0xG3Y8.mjs} +6 -6
- package/.output/server/chunks/build/EntityLinks-CF0xG3Y8.mjs.map +1 -0
- package/.output/server/chunks/build/{EnvManagedBadge-Bg3FSiU1.mjs → EnvManagedBadge-UwD2b9v2.mjs} +3 -3
- package/.output/server/chunks/build/EnvManagedBadge-UwD2b9v2.mjs.map +1 -0
- package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs +83 -0
- package/.output/server/chunks/build/FeatureUnavailable-CwPms6X_.mjs.map +1 -0
- package/.output/server/chunks/build/{FormField-B0HKsdMd.mjs → FormField-e7OnSKPM.mjs} +2 -2
- package/.output/server/chunks/build/FormField-e7OnSKPM.mjs.map +1 -0
- package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs +510 -0
- package/.output/server/chunks/build/GetStartedWizard-CB5v1Xzu.mjs.map +1 -0
- package/.output/server/chunks/build/{HelpHint-DrcIv-Oj.mjs → HelpHint-DjGrGFA7.mjs} +3 -3
- package/.output/server/chunks/build/HelpHint-DjGrGFA7.mjs.map +1 -0
- package/.output/server/chunks/build/{LoadingState-C3pBSuOO.mjs → LoadingState-B8v1nWJt.mjs} +3 -3
- package/.output/server/chunks/build/LoadingState-B8v1nWJt.mjs.map +1 -0
- package/.output/server/chunks/build/MetaStripGroup-dXXa_MzF.mjs +1205 -0
- package/.output/server/chunks/build/MetaStripGroup-dXXa_MzF.mjs.map +1 -0
- package/.output/server/chunks/build/{MiniRunBars-CZMugDrh.mjs → MiniRunBars-fgLMgRUp.mjs} +2 -2
- package/.output/server/chunks/build/MiniRunBars-fgLMgRUp.mjs.map +1 -0
- package/.output/server/chunks/build/{Modal-Ck2XLt8d.mjs → Modal-pSDlXzT3.mjs} +2 -2
- package/.output/server/chunks/build/Modal-pSDlXzT3.mjs.map +1 -0
- package/.output/server/chunks/build/{useSettingsNav-C3O866KC.mjs → NavigationMenu-cqpt11Ce.mjs} +6 -29
- package/.output/server/chunks/build/NavigationMenu-cqpt11Ce.mjs.map +1 -0
- package/.output/server/chunks/build/{OpenInIdeLink-C4MXA8ya.mjs → OpenInIdeLink-B9wvQkhy.mjs} +5 -5
- package/.output/server/chunks/build/{OpenInIdeLink-C4MXA8ya.mjs.map → OpenInIdeLink-B9wvQkhy.mjs.map} +1 -1
- package/.output/server/chunks/build/{ProjectTestCasesTable-CxfQ5wtN.mjs → ProjectTestCasesTable-BwHEtZTz.mjs} +19 -19
- package/.output/server/chunks/build/ProjectTestCasesTable-BwHEtZTz.mjs.map +1 -0
- package/.output/server/chunks/build/{RovingFocusItem-BJSzTBjy.mjs → RovingFocusItem--OEHI2P3.mjs} +2 -2
- package/.output/server/chunks/build/RovingFocusItem--OEHI2P3.mjs.map +1 -0
- package/.output/server/chunks/build/{RunReports-DFLv51TX.mjs → RunReports-BDRIWn3o.mjs} +3 -3
- package/.output/server/chunks/build/RunReports-BDRIWn3o.mjs.map +1 -0
- package/.output/server/chunks/build/{RunStatusBadge-FfGb6bkW.mjs → RunStatusBadge-CuTDknRJ.mjs} +2 -2
- package/.output/server/chunks/build/RunStatusBadge-CuTDknRJ.mjs.map +1 -0
- package/.output/server/chunks/build/{SectionCard-CN-v0FZ_.mjs → SectionCard-BW5Lynrr.mjs} +2 -2
- package/.output/server/chunks/build/SectionCard-BW5Lynrr.mjs.map +1 -0
- package/.output/server/chunks/build/{Select-CUqj50wi.mjs → Select-CVctwpib.mjs} +3 -3
- package/.output/server/chunks/build/Select-CVctwpib.mjs.map +1 -0
- package/.output/server/chunks/build/{SelectMenu-Db7osY7J.mjs → SelectMenu-XLVBEa11.mjs} +939 -7
- package/.output/server/chunks/build/{SelectMenu-Db7osY7J.mjs.map → SelectMenu-XLVBEa11.mjs.map} +1 -1
- package/.output/server/chunks/build/{SettingsField-D6iEYbEc.mjs → SettingsField-DvtRvI6O.mjs} +4 -4
- package/.output/server/chunks/build/SettingsField-DvtRvI6O.mjs.map +1 -0
- package/.output/server/chunks/build/{Slideover-DgCa80mf.mjs → Slideover-D270EZZD.mjs} +3 -3
- package/.output/server/chunks/build/Slideover-D270EZZD.mjs.map +1 -0
- package/.output/server/chunks/build/{StatTile-D61Vzo6e.mjs → StatTile-DpcVQFVI.mjs} +2 -26
- package/.output/server/chunks/build/StatTile-DpcVQFVI.mjs.map +1 -0
- package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs +30 -0
- package/.output/server/chunks/build/StatTileGrid-7zOFUQ6j.mjs.map +1 -0
- package/.output/server/chunks/build/{Switch-CgUioOYB.mjs → Switch-8zWfwI5B.mjs} +3 -3
- package/.output/server/chunks/build/Switch-8zWfwI5B.mjs.map +1 -0
- package/.output/server/chunks/build/Table-BRk04Hd2.mjs +1 -1
- package/.output/server/chunks/build/{Tabs-Bbsg9wag.mjs → Tabs-BkSOnbaB.mjs} +2 -2
- package/.output/server/chunks/build/Tabs-BkSOnbaB.mjs.map +1 -0
- package/.output/server/chunks/build/{TestCaseHistoryChart-nMLPhdvD.mjs → TestCaseHistoryChart-C6t5RrCG.mjs} +6 -6
- package/.output/server/chunks/build/TestCaseHistoryChart-C6t5RrCG.mjs.map +1 -0
- package/.output/server/chunks/build/{TestMetaBadges-D5_yUtIP.mjs → TestMetaBadges-BlyKmfeP.mjs} +1 -1
- package/.output/server/chunks/build/TestMetaBadges-BlyKmfeP.mjs.map +1 -0
- package/.output/server/chunks/build/{TestStatusBar-j6h2Jp6A.mjs → TestStatusBar-DhbrM_rQ.mjs} +4 -4
- package/.output/server/chunks/build/TestStatusBar-DhbrM_rQ.mjs.map +1 -0
- package/.output/server/chunks/build/{Textarea-Dv2-lOvW.mjs → Textarea-vkMKVQTJ.mjs} +2 -2
- package/.output/server/chunks/build/Textarea-vkMKVQTJ.mjs.map +1 -0
- package/.output/server/chunks/build/{Tooltip-BOazooWP.mjs → Tooltip-Dv4htNP6.mjs} +3 -3
- package/.output/server/chunks/build/Tooltip-Dv4htNP6.mjs.map +1 -0
- package/.output/server/chunks/build/{VisuallyHiddenInput-D6kBJxVd.mjs → VisuallyHiddenInput-BHvzNumK.mjs} +2 -2
- package/.output/server/chunks/build/VisuallyHiddenInput-BHvzNumK.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-z5N6HPyC.mjs → _id_-2PMH6rl8.mjs} +26 -25
- package/.output/server/chunks/build/_id_-2PMH6rl8.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-BHh65pfg.mjs → _id_-8cGIgeg6.mjs} +1912 -1098
- package/.output/server/chunks/build/_id_-8cGIgeg6.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-Rzkqx55x.mjs → _id_-CUZ5S6y5.mjs} +43 -44
- package/.output/server/chunks/build/_id_-CUZ5S6y5.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-B78ky13D.mjs → _id_-DMkgWSLZ.mjs} +956 -429
- package/.output/server/chunks/build/_id_-DMkgWSLZ.mjs.map +1 -0
- package/.output/server/chunks/build/about-D3WXTDro.mjs +696 -0
- package/.output/server/chunks/build/about-D3WXTDro.mjs.map +1 -0
- package/.output/server/chunks/build/{account-DAfvaD-F.mjs → account-BslDNCoo.mjs} +6 -6
- package/.output/server/chunks/build/account-BslDNCoo.mjs.map +1 -0
- package/.output/server/chunks/build/{ai-B4VJ9K1K.mjs → ai-C23R9l94.mjs} +18 -18
- package/.output/server/chunks/build/{ai-B4VJ9K1K.mjs.map → ai-C23R9l94.mjs.map} +1 -1
- package/.output/server/chunks/build/{analytics-CJPC6t4L.mjs → analytics-DQHeToK0.mjs} +106 -80
- package/.output/server/chunks/build/analytics-DQHeToK0.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/compare-RxHSOdsO.mjs +1 -0
- package/.output/server/chunks/build/{db.client-CQoVTYB9.mjs → db.client-D74DghqX.mjs} +38 -2
- package/.output/server/chunks/build/db.client-D74DghqX.mjs.map +1 -0
- package/.output/server/chunks/build/{default-zvbFgDJG.mjs → default-CeyePZ5I.mjs} +624 -79
- package/.output/server/chunks/build/default-CeyePZ5I.mjs.map +1 -0
- package/.output/server/chunks/build/{docs-DyuVEgtB.mjs → docs-f_bnC75q.mjs} +17 -17
- package/.output/server/chunks/build/{docs-DyuVEgtB.mjs.map → docs-f_bnC75q.mjs.map} +1 -1
- package/.output/server/chunks/build/{edit-CFR5g2Qf.mjs → edit-BOC4zWuH.mjs} +13 -15
- package/.output/server/chunks/build/edit-BOC4zWuH.mjs.map +1 -0
- package/.output/server/chunks/build/{fetch-B4FwBOzu.mjs → fetch-BQg_fhX0.mjs} +32 -4
- package/.output/server/chunks/build/fetch-BQg_fhX0.mjs.map +1 -0
- package/.output/server/chunks/build/{forgot-password-CC__1OnV.mjs → forgot-password-CxuVbGWy.mjs} +4 -3
- package/.output/server/chunks/build/forgot-password-CxuVbGWy.mjs.map +1 -0
- package/.output/server/chunks/build/{import-CZo3djDi.mjs → import-CC27wEIu.mjs} +14 -14
- package/.output/server/chunks/build/import-CC27wEIu.mjs.map +1 -0
- package/.output/server/chunks/build/{index-gCw_y4ZJ.mjs → index-B6PjfyTY.mjs} +44 -543
- package/.output/server/chunks/build/index-B6PjfyTY.mjs.map +1 -0
- package/.output/server/chunks/build/{index-CU2nZhAa.mjs → index-BOK1aJk9.mjs} +2 -1
- package/.output/server/chunks/build/index-BOK1aJk9.mjs.map +1 -0
- package/.output/server/chunks/build/{index-D7fe97l3.mjs → index-BhS1DuCr.mjs} +400 -151
- package/.output/server/chunks/build/index-BhS1DuCr.mjs.map +1 -0
- package/.output/server/chunks/build/{index-Stqw0dEI.mjs → index-DUmjP3Gr.mjs} +18 -19
- package/.output/server/chunks/build/index-DUmjP3Gr.mjs.map +1 -0
- package/.output/server/chunks/build/index-jvF53f7_.mjs +91 -0
- package/.output/server/chunks/build/index-jvF53f7_.mjs.map +1 -0
- package/.output/server/chunks/build/isValueEqualOrExist-D2qw9YEr.mjs +1 -1
- package/.output/server/chunks/build/{login-Da4u1IlW.mjs → login-CdpOhiP8.mjs} +8 -7
- package/.output/server/chunks/build/login-CdpOhiP8.mjs.map +1 -0
- package/.output/server/chunks/build/{mcp-B3IUvRgD.mjs → mcp-WTeO5WRo.mjs} +528 -16
- package/.output/server/chunks/build/mcp-WTeO5WRo.mjs.map +1 -0
- package/.output/server/chunks/build/{notifications-abDv0id8.mjs → notifications-yY6ik-fi.mjs} +11 -11
- package/.output/server/chunks/build/notifications-yY6ik-fi.mjs.map +1 -0
- package/.output/server/chunks/build/{pr-feedback-DjZID6q-.mjs → pr-feedback-Hv2Ydh_6.mjs} +8 -8
- package/.output/server/chunks/build/pr-feedback-Hv2Ydh_6.mjs.map +1 -0
- package/.output/server/chunks/build/{reset-password-BmrUS4ZD.mjs → reset-password-CFtO8A6n.mjs} +4 -3
- package/.output/server/chunks/build/reset-password-CFtO8A6n.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +51 -34
- package/.output/server/chunks/build/{settings-Du7YqF8i.mjs → settings-DIpvnY8_.mjs} +11 -9
- package/.output/server/chunks/build/settings-DIpvnY8_.mjs.map +1 -0
- package/.output/server/chunks/build/{settings-metadata-DrEqWcW-.mjs → settings-metadata-DRv9VveS.mjs} +32 -2
- package/.output/server/chunks/build/settings-metadata-DRv9VveS.mjs.map +1 -0
- package/.output/server/chunks/build/setup-Di0UMyWx.mjs +1116 -0
- package/.output/server/chunks/build/setup-Di0UMyWx.mjs.map +1 -0
- package/.output/server/chunks/build/{storage-B4vzxd8G.mjs → storage-gAbY1KbQ.mjs} +13 -13
- package/.output/server/chunks/build/storage-gAbY1KbQ.mjs.map +1 -0
- package/.output/server/chunks/build/{tags-DauTe_F-.mjs → tags-DJ80wCqt.mjs} +6 -7
- package/.output/server/chunks/build/tags-DJ80wCqt.mjs.map +1 -0
- package/.output/server/chunks/build/{test-cases-DUvaO1He.mjs → test-cases-YP83YlnL.mjs} +21 -21
- package/.output/server/chunks/build/test-cases-YP83YlnL.mjs.map +1 -0
- package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs +550 -0
- package/.output/server/chunks/build/test-functions-BwLTxGmM.mjs.map +1 -0
- package/.output/server/chunks/build/{timeout-hygiene-CbnSaVbK.mjs → timeout-hygiene-RpXDjXTX.mjs} +6 -6
- package/.output/server/chunks/build/timeout-hygiene-RpXDjXTX.mjs.map +1 -0
- package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs +9 -0
- package/.output/server/chunks/build/useAiStatus-UR8x-feE.mjs.map +1 -0
- package/.output/server/chunks/build/{useCopyRich-BemRsKgv.mjs → useCopyRich-Cd5Yj_Wy.mjs} +721 -239
- package/.output/server/chunks/build/useCopyRich-Cd5Yj_Wy.mjs.map +1 -0
- package/.output/server/chunks/build/{useDesktopDownload-D49JRQSw.mjs → useDesktopDownload-BmR6ouz2.mjs} +3 -3
- package/.output/server/chunks/build/useDesktopDownload-BmR6ouz2.mjs.map +1 -0
- package/.output/server/chunks/build/{useOpenInIde-4GFf-kdi.mjs → useOpenInIde-DolN3bZ5.mjs} +2 -2
- package/.output/server/chunks/build/useOpenInIde-DolN3bZ5.mjs.map +1 -0
- package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs +19 -0
- package/.output/server/chunks/build/useSettingsNav-DfnOFlR_.mjs.map +1 -0
- package/.output/server/chunks/build/useTauri-Kf3HE_42.mjs +11 -0
- package/.output/server/chunks/build/useTauri-Kf3HE_42.mjs.map +1 -0
- package/.output/server/chunks/build/{users-CTUqXyGh.mjs → users-I2K7HXS2.mjs} +6 -7
- package/.output/server/chunks/build/users-I2K7HXS2.mjs.map +1 -0
- package/.output/server/chunks/build/{wasted-time-lYkx5YO4.mjs → wasted-time-DyIk0olc.mjs} +11 -11
- package/.output/server/chunks/build/wasted-time-DyIk0olc.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +3124 -1782
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs +2 -1
- package/.output/server/chunks/routes/__piwi/session.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/admin/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/admin/stats.get.mjs +1 -0
- package/.output/server/chunks/routes/api/admin/stats.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/ai/status.get.mjs +1 -0
- package/.output/server/chunks/routes/api/ai/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -0
- package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -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 +1 -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 +1 -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 +1 -0
- package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -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 +1 -0
- package/.output/server/chunks/routes/api/auth/setup.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -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 +1 -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 +1 -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 +1 -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 +1 -0
- package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +89 -0
- package/.output/server/chunks/routes/api/desktop/import-local.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/desktop/reporter-config.get.mjs +1 -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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +2 -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 +2 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +2 -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 +2 -1
- 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 +2 -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 +2 -1
- package/.output/server/chunks/routes/api/files/_...path_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +2 -1
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +2 -1
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +2 -1
- package/.output/server/chunks/routes/api/index.get3.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +2 -1
- package/.output/server/chunks/routes/api/index.get4.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get5.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get5.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
- package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +2 -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 +2 -1
- package/.output/server/chunks/routes/api/links/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/markers/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/notifications/stream.get.mjs +2 -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 +2 -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 +2 -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 +2 -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 +2 -1
- 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 +2 -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 +2 -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 +1 -1
- package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +2 -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 +1 -1
- package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +2 -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 +2 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +2 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +2 -1
- package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +2 -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 +2 -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 +2 -1
- package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +76 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +66 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +53 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +67 -0
- package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +2 -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 +2 -1
- package/.output/server/chunks/routes/api/projects/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs +2 -1
- package/.output/server/chunks/routes/api/projects/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs +2 -1
- package/.output/server/chunks/routes/api/projects/menu.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs +2 -1
- package/.output/server/chunks/routes/api/projects/overview.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/projects.get.mjs +2 -1
- package/.output/server/chunks/routes/api/projects.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/search.get.mjs +2 -1
- package/.output/server/chunks/routes/api/search.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +2 -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 +2 -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 +1 -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 +2 -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 +2 -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 +2 -1
- package/.output/server/chunks/routes/api/settings/ai.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/ai.put.mjs +2 -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 +2 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +2 -1
- package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/settings/smtp.get.mjs +2 -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 +2 -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 +2 -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 +2 -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 +2 -1
- package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/setup-status.get.mjs +99 -0
- package/.output/server/chunks/routes/api/setup-status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/stream.get.mjs +2 -1
- package/.output/server/chunks/routes/api/stream.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/tags/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +2 -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 +2 -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 +2 -1
- package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +60 -0
- package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +69 -0
- package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +2 -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 +2 -1
- 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 +2 -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 +2 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +2 -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 +2 -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 +2 -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 +2 -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 +6 -3
- 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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -1
- package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -2
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs +5 -128
- package/.output/server/chunks/routes/api/test-runs/import.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +2 -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 +2 -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 +2 -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 +2 -1
- 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 +2 -1
- package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +4 -1
- package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/traces/check.post.mjs +2 -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 +1 -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 +1 -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 +1 -1
- package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +2 -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 +2 -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 +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/version.get.mjs +2 -1
- package/.output/server/chunks/routes/api/version.get.mjs.map +1 -1
- package/.output/server/chunks/routes/mcp.post.mjs +41 -11
- 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 +1 -0
- package/.output/server/chunks/tasks/sweep.mjs.map +1 -1
- package/.output/server/chunks/tasks/sweep2.mjs +1 -0
- package/.output/server/chunks/tasks/sweep2.mjs.map +1 -1
- package/.output/server/database/migrations/0043_watery_dragon_lord.sql +22 -0
- package/.output/server/database/migrations/meta/0043_snapshot.json +3764 -0
- package/.output/server/database/migrations/meta/_journal.json +7 -0
- package/.output/server/database/migrations-pg/0044_dark_triathlon.sql +22 -0
- package/.output/server/database/migrations-pg/meta/0044_snapshot.json +4473 -0
- package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
- package/.output/server/index.mjs +2 -1
- package/.output/server/index.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/-09h6CA9.js +0 -1
- package/.output/public/_nuxt/81InBX9v.js +0 -1
- package/.output/public/_nuxt/Ar3IelOY.js +0 -1
- package/.output/public/_nuxt/B33iXw77.js +0 -1
- package/.output/public/_nuxt/B3B9Ii2A.js +0 -1
- package/.output/public/_nuxt/B3HO8kuh.js +0 -1
- package/.output/public/_nuxt/B7NBP1C-.js +0 -1
- package/.output/public/_nuxt/BJ0XQElc.js +0 -1
- package/.output/public/_nuxt/BSIxhGsh.js +0 -1
- package/.output/public/_nuxt/BVaxh6Nl.js +0 -4
- package/.output/public/_nuxt/Bc8mOoz9.js +0 -4
- package/.output/public/_nuxt/BeLWlVK0.js +0 -1
- package/.output/public/_nuxt/Bn0YQDyy.js +0 -1
- package/.output/public/_nuxt/Bp5ELvx9.js +0 -1
- package/.output/public/_nuxt/BpUaY9nH.js +0 -2
- package/.output/public/_nuxt/C2_3mdPC.js +0 -1
- package/.output/public/_nuxt/C5iG7O4O.js +0 -64
- package/.output/public/_nuxt/CHNwfU1y.js +0 -1
- package/.output/public/_nuxt/CNFYDQmj.js +0 -1
- package/.output/public/_nuxt/CU5S9GCh.js +0 -1
- package/.output/public/_nuxt/CUtJobDm.js +0 -1
- package/.output/public/_nuxt/CpjgB2aY.js +0 -1
- package/.output/public/_nuxt/CrwJAwhk.js +0 -1
- package/.output/public/_nuxt/CtQBsNUb.js +0 -1
- package/.output/public/_nuxt/CuSVQEkS.js +0 -3
- package/.output/public/_nuxt/CylWPruw.js +0 -1
- package/.output/public/_nuxt/CzGyac8q.js +0 -1
- package/.output/public/_nuxt/DDDpCFpF.js +0 -1
- package/.output/public/_nuxt/DVDXJYq2.js +0 -2
- package/.output/public/_nuxt/DW0xl3I6.js +0 -17
- package/.output/public/_nuxt/Dgf5N4Ng.js +0 -1
- package/.output/public/_nuxt/DiZyJYez.js +0 -1
- package/.output/public/_nuxt/Dk9fwOCm.js +0 -34
- package/.output/public/_nuxt/DoUy4UHi.js +0 -44
- package/.output/public/_nuxt/DslPMqfa.js +0 -1
- package/.output/public/_nuxt/OSduWzyz.js +0 -1
- package/.output/public/_nuxt/SlIRLREZ.js +0 -6
- package/.output/public/_nuxt/WsxFTEFq.js +0 -10
- package/.output/public/_nuxt/aQgs_c6e.js +0 -9
- package/.output/public/_nuxt/builds/meta/ab473028-4b37-4884-b243-b8f6e5046e5e.json +0 -1
- package/.output/public/_nuxt/dYCKgE-3.js +0 -5
- package/.output/public/_nuxt/entry.CPhW41mh.css +0 -1
- package/.output/public/_nuxt/g26aVPxc.js +0 -1
- package/.output/public/_nuxt/zQyPuvV1.js +0 -1
- package/.output/server/chunks/_/import-runs.mjs +0 -351
- package/.output/server/chunks/_/import-runs.mjs.map +0 -1
- package/.output/server/chunks/build/Breadcrumb-Ak2Lg3oM.mjs.map +0 -1
- package/.output/server/chunks/build/BreadcrumbNav-DO7I_z-n.mjs.map +0 -1
- package/.output/server/chunks/build/BrowserBadge-D33lqUcj.mjs.map +0 -1
- package/.output/server/chunks/build/ChartCard-Y1UKwMsf.mjs.map +0 -1
- package/.output/server/chunks/build/Checkbox-DvUBGagc.mjs.map +0 -1
- package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs +0 -631
- package/.output/server/chunks/build/CiEnvCard-CrjOM17n.mjs.map +0 -1
- package/.output/server/chunks/build/CodeBlock-BgE-NSmE.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardNavbar-BHmMSPX7.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardSidebarToggle-DCTnHiIv.mjs.map +0 -1
- package/.output/server/chunks/build/DataLocationCard-B_YHdzSz.mjs.map +0 -1
- package/.output/server/chunks/build/DiagnosisPanel-B646dK4p.mjs.map +0 -1
- package/.output/server/chunks/build/DurationValue-D20oGbnc.mjs.map +0 -1
- package/.output/server/chunks/build/EmptyState-Dtlab7S9.mjs.map +0 -1
- package/.output/server/chunks/build/EntityLinks-D3fp57pR.mjs.map +0 -1
- package/.output/server/chunks/build/EnvManagedBadge-Bg3FSiU1.mjs.map +0 -1
- package/.output/server/chunks/build/FormField-B0HKsdMd.mjs.map +0 -1
- package/.output/server/chunks/build/HelpHint-DrcIv-Oj.mjs.map +0 -1
- package/.output/server/chunks/build/LoadingState-C3pBSuOO.mjs.map +0 -1
- package/.output/server/chunks/build/MiniRunBars-CZMugDrh.mjs.map +0 -1
- package/.output/server/chunks/build/Modal-Ck2XLt8d.mjs.map +0 -1
- package/.output/server/chunks/build/ProjectTestCasesTable-CxfQ5wtN.mjs.map +0 -1
- package/.output/server/chunks/build/RovingFocusItem-BJSzTBjy.mjs.map +0 -1
- package/.output/server/chunks/build/RunReports-DFLv51TX.mjs.map +0 -1
- package/.output/server/chunks/build/RunStatusBadge-FfGb6bkW.mjs.map +0 -1
- package/.output/server/chunks/build/SectionCard-CN-v0FZ_.mjs.map +0 -1
- package/.output/server/chunks/build/Select-CUqj50wi.mjs.map +0 -1
- package/.output/server/chunks/build/SettingsField-D6iEYbEc.mjs.map +0 -1
- package/.output/server/chunks/build/Slideover-DgCa80mf.mjs.map +0 -1
- package/.output/server/chunks/build/StatTile-D61Vzo6e.mjs.map +0 -1
- package/.output/server/chunks/build/Switch-CgUioOYB.mjs.map +0 -1
- package/.output/server/chunks/build/Tabs-Bbsg9wag.mjs.map +0 -1
- package/.output/server/chunks/build/TestCaseHistoryChart-nMLPhdvD.mjs.map +0 -1
- package/.output/server/chunks/build/TestMetaBadges-D5_yUtIP.mjs.map +0 -1
- package/.output/server/chunks/build/TestStatusBar-j6h2Jp6A.mjs.map +0 -1
- package/.output/server/chunks/build/Textarea-Dv2-lOvW.mjs.map +0 -1
- package/.output/server/chunks/build/Tooltip-BOazooWP.mjs.map +0 -1
- package/.output/server/chunks/build/VisuallyHiddenInput-D6kBJxVd.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-B78ky13D.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-BHh65pfg.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-Rzkqx55x.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-z5N6HPyC.mjs.map +0 -1
- package/.output/server/chunks/build/about-CvSP73Ug.mjs +0 -781
- package/.output/server/chunks/build/about-CvSP73Ug.mjs.map +0 -1
- package/.output/server/chunks/build/account-DAfvaD-F.mjs.map +0 -1
- package/.output/server/chunks/build/analytics-CJPC6t4L.mjs.map +0 -1
- package/.output/server/chunks/build/db.client-CQoVTYB9.mjs.map +0 -1
- package/.output/server/chunks/build/default-zvbFgDJG.mjs.map +0 -1
- package/.output/server/chunks/build/edit-CFR5g2Qf.mjs.map +0 -1
- package/.output/server/chunks/build/fetch-B4FwBOzu.mjs.map +0 -1
- package/.output/server/chunks/build/forgot-password-CC__1OnV.mjs.map +0 -1
- package/.output/server/chunks/build/import-CZo3djDi.mjs.map +0 -1
- package/.output/server/chunks/build/index-CU2nZhAa.mjs.map +0 -1
- package/.output/server/chunks/build/index-D7fe97l3.mjs.map +0 -1
- package/.output/server/chunks/build/index-Stqw0dEI.mjs.map +0 -1
- package/.output/server/chunks/build/index-gCw_y4ZJ.mjs.map +0 -1
- package/.output/server/chunks/build/index-tR6owKzj.mjs +0 -167
- package/.output/server/chunks/build/index-tR6owKzj.mjs.map +0 -1
- package/.output/server/chunks/build/login-Da4u1IlW.mjs.map +0 -1
- package/.output/server/chunks/build/mcp-B3IUvRgD.mjs.map +0 -1
- package/.output/server/chunks/build/notifications-abDv0id8.mjs.map +0 -1
- package/.output/server/chunks/build/pr-feedback-DjZID6q-.mjs.map +0 -1
- package/.output/server/chunks/build/reset-password-BmrUS4ZD.mjs.map +0 -1
- package/.output/server/chunks/build/settings-Du7YqF8i.mjs.map +0 -1
- package/.output/server/chunks/build/settings-metadata-DrEqWcW-.mjs.map +0 -1
- package/.output/server/chunks/build/storage-B4vzxd8G.mjs.map +0 -1
- package/.output/server/chunks/build/tags-DauTe_F-.mjs.map +0 -1
- package/.output/server/chunks/build/test-cases-DUvaO1He.mjs.map +0 -1
- package/.output/server/chunks/build/timeout-hygiene-CbnSaVbK.mjs.map +0 -1
- package/.output/server/chunks/build/useAiStatus-CWvIo32Q.mjs.map +0 -1
- package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs +0 -33
- package/.output/server/chunks/build/useCopy-CeKWgHyT.mjs.map +0 -1
- package/.output/server/chunks/build/useCopyRich-BemRsKgv.mjs.map +0 -1
- package/.output/server/chunks/build/useDesktopDownload-D49JRQSw.mjs.map +0 -1
- package/.output/server/chunks/build/useOpenInIde-4GFf-kdi.mjs.map +0 -1
- package/.output/server/chunks/build/useSettingsNav-C3O866KC.mjs.map +0 -1
- package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs +0 -7
- package/.output/server/chunks/build/useTauri-lRT8zkLv.mjs.map +0 -1
- package/.output/server/chunks/build/users-CTUqXyGh.mjs.map +0 -1
- package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs +0 -940
- package/.output/server/chunks/build/virtualizer-Cd1hhlxC.mjs.map +0 -1
- package/.output/server/chunks/build/wasted-time-lYkx5YO4.mjs.map +0 -1
|
@@ -1,44 +1,45 @@
|
|
|
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$h } from './DashboardNavbar-DCr10nxL.mjs';
|
|
2
|
+
import { _ as _sfc_main$1$2 } from './Breadcrumb-3itRZ1uz.mjs';
|
|
3
|
+
import { _ as __nuxt_component_3$1 } from './BreadcrumbNav-GnjBvXuT.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, v as __nuxt_component_12$1, o as _sfc_main$p, s as __nuxt_component_7$1, _ as _sfc_main$d$1, w as _sfc_main$8$1, p as _sfc_main$j$1 } from './server.mjs';
|
|
5
|
+
import { _ as _sfc_main$i } from './Tooltip-Dv4htNP6.mjs';
|
|
6
6
|
import { _ as __nuxt_component_4 } from './NavbarActions-_YjrSUat.mjs';
|
|
7
|
-
import { _ as __nuxt_component_8,
|
|
8
|
-
import {
|
|
9
|
-
import { _ as __nuxt_component_14$
|
|
10
|
-
import { _ as __nuxt_component_14$1 } from './DurationValue-
|
|
11
|
-
import { _ as _sfc_main$
|
|
12
|
-
import { _ as __nuxt_component_2$2 } from './HelpHint-
|
|
7
|
+
import { _ as __nuxt_component_8, b as __nuxt_component_1$1, a as __nuxt_component_14$2, c as __nuxt_component_16$1, d as __nuxt_component_17$1 } from './MetaStripGroup-dXXa_MzF.mjs';
|
|
8
|
+
import { _ as __nuxt_component_0$1 } from './DiagnosisResult-Br3qBLXe.mjs';
|
|
9
|
+
import { _ as __nuxt_component_14$3 } from './TestStatusBar-DhbrM_rQ.mjs';
|
|
10
|
+
import { _ as __nuxt_component_14$1 } from './DurationValue-CWKfjIF2.mjs';
|
|
11
|
+
import { _ as _sfc_main$n } from './Card-BQP_oZkQ.mjs';
|
|
12
|
+
import { _ as __nuxt_component_2$2 } from './HelpHint-DjGrGFA7.mjs';
|
|
13
13
|
import { _ as __nuxt_component_5 } from './MarkerBadge-D7meXy4u.mjs';
|
|
14
|
-
import { _ as
|
|
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-
|
|
16
|
-
import {
|
|
14
|
+
import { _ as __nuxt_component_1$2 } from './StatTileGrid-7zOFUQ6j.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-BOK1aJk9.mjs';
|
|
16
|
+
import { aa as formatBytes, bR as DEFAULT_WASTED_WAIT_PATTERNS, dX as isWastedWait } from '../nitro/nitro.mjs';
|
|
17
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';
|
|
18
18
|
import { ssrRenderComponent, ssrInterpolate, ssrRenderAttrs, ssrRenderClass, ssrRenderList, ssrRenderStyle, ssrRenderAttr, ssrRenderTeleport, ssrIncludeBooleanAttr } from 'vue/server-renderer';
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import { _ as
|
|
23
|
-
import { _ as _sfc_main$q } from './
|
|
24
|
-
import { _ as
|
|
25
|
-
import { _ as
|
|
26
|
-
import { _ as
|
|
19
|
+
import { _ as __nuxt_component_19 } from './EntityLinks-CF0xG3Y8.mjs';
|
|
20
|
+
import { b as buildRetryCommand } from './useOpenInIde-DolN3bZ5.mjs';
|
|
21
|
+
import { u as useFetch, a as useCopy } from './fetch-BQg_fhX0.mjs';
|
|
22
|
+
import { _ as __nuxt_component_4$3 } from './FilterToolbar-BwXy8xSk.mjs';
|
|
23
|
+
import { _ as _sfc_main$q } from './Select-CVctwpib.mjs';
|
|
24
|
+
import { _ as _sfc_main$r } from './Checkbox-DmRKG-0s.mjs';
|
|
25
|
+
import { _ as __nuxt_component_1$3 } from './OpenInIdeLink-B9wvQkhy.mjs';
|
|
26
|
+
import { _ as __nuxt_component_2$3 } from './TestMetaBadges-BlyKmfeP.mjs';
|
|
27
|
+
import { _ as __nuxt_component_3$3 } from './BrowserBadge-DQqJS9CV.mjs';
|
|
27
28
|
import { u as useTreeViewCookie } from './useTreeViewCookie-CQjQdTkH.mjs';
|
|
28
29
|
import { _ as __nuxt_component_5$1 } from './ErrorState-CktYyeEZ.mjs';
|
|
29
|
-
import { _ as
|
|
30
|
-
import { _ as
|
|
31
|
-
import { _ as __nuxt_component_11 } from './SectionCard-
|
|
30
|
+
import { _ as __nuxt_component_12$2 } from './LoadingState-B8v1nWJt.mjs';
|
|
31
|
+
import { _ as __nuxt_component_4$2 } from './EmptyState-DC2q_7TD.mjs';
|
|
32
|
+
import { _ as __nuxt_component_11 } from './SectionCard-BW5Lynrr.mjs';
|
|
32
33
|
import { _ as __nuxt_component_3$2 } from './TableScroller-DMcdCVrH.mjs';
|
|
33
|
-
import { _ as _sfc_main$
|
|
34
|
-
import { _ as _sfc_main$
|
|
35
|
-
import { _ as __nuxt_component_0$2 } from './DiagnosisPanel-
|
|
36
|
-
import {
|
|
37
|
-
import { _ as
|
|
38
|
-
import { _ as
|
|
39
|
-
import { _ as _sfc_main$l } from './Alert-C4xq8lao.mjs';
|
|
34
|
+
import { _ as _sfc_main$j } from './Table-BRk04Hd2.mjs';
|
|
35
|
+
import { _ as _sfc_main$o } from './Modal-pSDlXzT3.mjs';
|
|
36
|
+
import { _ as __nuxt_component_0$2 } from './DiagnosisPanel-BWTpoCKy.mjs';
|
|
37
|
+
import { _ as _sfc_main$l } from './SelectMenu-XLVBEa11.mjs';
|
|
38
|
+
import { _ as __nuxt_component_13$1 } from './RunStatusBadge-CuTDknRJ.mjs';
|
|
39
|
+
import { _ as _sfc_main$m } from './Alert-C4xq8lao.mjs';
|
|
40
40
|
import { u as useRunComparison } from './useRunComparison-CiMBLpe2.mjs';
|
|
41
|
-
import './
|
|
41
|
+
import { _ as __nuxt_component_4$1 } from './FeatureUnavailable-CwPms6X_.mjs';
|
|
42
|
+
import './DashboardSidebarToggle-8EpBhX0R.mjs';
|
|
42
43
|
import 'vue-router';
|
|
43
44
|
import '@iconify/vue';
|
|
44
45
|
import 'tailwindcss/colors';
|
|
@@ -71,6 +72,7 @@ import 'highlight.js/lib/languages/typescript';
|
|
|
71
72
|
import 'highlight.js/lib/languages/xml';
|
|
72
73
|
import 'highlight.js/lib/languages/yaml';
|
|
73
74
|
import 'fflate';
|
|
75
|
+
import 'zod';
|
|
74
76
|
import 'pixelmatch';
|
|
75
77
|
import 'sharp';
|
|
76
78
|
import '@anthropic-ai/sdk';
|
|
@@ -94,25 +96,187 @@ import 'node:zlib';
|
|
|
94
96
|
import 'consola';
|
|
95
97
|
import 'node:url';
|
|
96
98
|
import '@iconify/utils';
|
|
97
|
-
import './
|
|
98
|
-
import './
|
|
99
|
-
import './
|
|
100
|
-
import './
|
|
99
|
+
import './FormField-e7OnSKPM.mjs';
|
|
100
|
+
import './Label-DYDR1Oeh.mjs';
|
|
101
|
+
import './Switch-8zWfwI5B.mjs';
|
|
102
|
+
import './useFormControl-CZ9So7iX.mjs';
|
|
103
|
+
import './useForwardScopeId-D0ameaSU.mjs';
|
|
104
|
+
import './VisuallyHiddenInput-BHvzNumK.mjs';
|
|
105
|
+
import './CodeBlock-DGhKVFad.mjs';
|
|
106
|
+
import './useTauri-Kf3HE_42.mjs';
|
|
107
|
+
import './Tabs-BkSOnbaB.mjs';
|
|
108
|
+
import './RovingFocusItem--OEHI2P3.mjs';
|
|
109
|
+
import './Textarea-vkMKVQTJ.mjs';
|
|
101
110
|
import './help-content-C876a9WD.mjs';
|
|
102
111
|
import '../_/marker-categories.mjs';
|
|
103
112
|
import 'date-fns';
|
|
104
|
-
import '
|
|
113
|
+
import '@vue/shared';
|
|
105
114
|
import './handleAndDispatchCustomEvent-Bk_AVSSo.mjs';
|
|
106
115
|
import './isValueEqualOrExist-D2qw9YEr.mjs';
|
|
107
|
-
import './useForwardScopeId-D0ameaSU.mjs';
|
|
108
|
-
import './VisuallyHiddenInput-D6kBJxVd.mjs';
|
|
109
|
-
import './Label-DYDR1Oeh.mjs';
|
|
110
116
|
import './Separator-CR4WcEKD.mjs';
|
|
111
117
|
import '@tanstack/vue-table';
|
|
112
118
|
import '@tanstack/vue-virtual';
|
|
113
|
-
import '
|
|
114
|
-
import './virtualizer-Cd1hhlxC.mjs';
|
|
119
|
+
import './useAiStatus-UR8x-feE.mjs';
|
|
115
120
|
|
|
121
|
+
const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
122
|
+
__name: "RunStorageChip",
|
|
123
|
+
__ssrInlineRender: true,
|
|
124
|
+
props: {
|
|
125
|
+
storageStats: {},
|
|
126
|
+
reports: {},
|
|
127
|
+
finalizing: { type: Boolean }
|
|
128
|
+
},
|
|
129
|
+
setup(__props) {
|
|
130
|
+
const config = useRuntimeConfig();
|
|
131
|
+
return (_ctx, _push, _parent, _attrs) => {
|
|
132
|
+
const _component_UIcon = _sfc_main$p;
|
|
133
|
+
const _component_UProgress = _sfc_main$j$1;
|
|
134
|
+
const _component_UPopover = _sfc_main$8$1;
|
|
135
|
+
const _component_HelpHint = __nuxt_component_2$2;
|
|
136
|
+
const _component_UButton = _sfc_main$k;
|
|
137
|
+
if (__props.finalizing) {
|
|
138
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "inline-flex items-center gap-2 text-info" }, _attrs))}>`);
|
|
139
|
+
_push(ssrRenderComponent(_component_UIcon, {
|
|
140
|
+
name: "i-lucide-upload",
|
|
141
|
+
class: "size-3.5 shrink-0 animate-pulse"
|
|
142
|
+
}, null, _parent));
|
|
143
|
+
_push(`<span class="text-xs font-medium whitespace-nowrap">Uploading reports & traces…</span>`);
|
|
144
|
+
_push(ssrRenderComponent(_component_UProgress, {
|
|
145
|
+
value: null,
|
|
146
|
+
size: "sm",
|
|
147
|
+
color: "info",
|
|
148
|
+
class: "w-24 rounded-full animate-pulse"
|
|
149
|
+
}, null, _parent));
|
|
150
|
+
_push(`</div>`);
|
|
151
|
+
} else if (__props.storageStats?.totalFiles) {
|
|
152
|
+
_push(ssrRenderComponent(_component_UPopover, _attrs, {
|
|
153
|
+
content: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
154
|
+
if (_push2) {
|
|
155
|
+
_push2(`<div class="p-3 w-72 space-y-2"${_scopeId}><p class="text-xs font-medium text-muted inline-flex items-center gap-1"${_scopeId}> Stored artifacts `);
|
|
156
|
+
_push2(ssrRenderComponent(_component_HelpHint, { topic: "run.reports" }, null, _parent2, _scopeId));
|
|
157
|
+
_push2(`</p><!--[-->`);
|
|
158
|
+
ssrRenderList(__props.reports, (report) => {
|
|
159
|
+
_push2(`<div class="flex items-center justify-between gap-2 min-w-0"${_scopeId}>`);
|
|
160
|
+
_push2(ssrRenderComponent(_component_UButton, {
|
|
161
|
+
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(report.path, null, unref(config).app?.baseURL),
|
|
162
|
+
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(report.type),
|
|
163
|
+
target: "_blank",
|
|
164
|
+
size: "xs",
|
|
165
|
+
variant: "outline",
|
|
166
|
+
class: "min-w-0",
|
|
167
|
+
ui: { label: "truncate" }
|
|
168
|
+
}, {
|
|
169
|
+
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
|
170
|
+
if (_push3) {
|
|
171
|
+
_push3(`${ssrInterpolate(report.label)}`);
|
|
172
|
+
} else {
|
|
173
|
+
return [
|
|
174
|
+
createTextVNode(toDisplayString(report.label), 1)
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
}),
|
|
178
|
+
_: 2
|
|
179
|
+
}, _parent2, _scopeId));
|
|
180
|
+
_push2(`<span class="text-xs tabular-nums text-dimmed shrink-0"${_scopeId}>${ssrInterpolate(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(report.size))}</span></div>`);
|
|
181
|
+
});
|
|
182
|
+
_push2(`<!--]-->`);
|
|
183
|
+
if (__props.storageStats.testCaseFilesCount > 0) {
|
|
184
|
+
_push2(`<div class="flex items-center justify-between gap-2 text-sm border-t border-default pt-2"${_scopeId}><span class="truncate"${_scopeId}>Test files (${ssrInterpolate(__props.storageStats.testCaseFilesCount)})</span><span class="text-xs tabular-nums text-dimmed shrink-0"${_scopeId}>${ssrInterpolate(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(__props.storageStats.testCaseFilesSize))}</span></div>`);
|
|
185
|
+
} else {
|
|
186
|
+
_push2(`<!---->`);
|
|
187
|
+
}
|
|
188
|
+
_push2(`</div>`);
|
|
189
|
+
} else {
|
|
190
|
+
return [
|
|
191
|
+
createVNode("div", { class: "p-3 w-72 space-y-2" }, [
|
|
192
|
+
createVNode("p", { class: "text-xs font-medium text-muted inline-flex items-center gap-1" }, [
|
|
193
|
+
createTextVNode(" Stored artifacts "),
|
|
194
|
+
createVNode(_component_HelpHint, { topic: "run.reports" })
|
|
195
|
+
]),
|
|
196
|
+
(openBlock(true), createBlock(Fragment, null, renderList(__props.reports, (report) => {
|
|
197
|
+
return openBlock(), createBlock("div", {
|
|
198
|
+
key: `${report.type}-${report.path}`,
|
|
199
|
+
class: "flex items-center justify-between gap-2 min-w-0"
|
|
200
|
+
}, [
|
|
201
|
+
createVNode(_component_UButton, {
|
|
202
|
+
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(report.path, null, unref(config).app?.baseURL),
|
|
203
|
+
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(report.type),
|
|
204
|
+
target: "_blank",
|
|
205
|
+
size: "xs",
|
|
206
|
+
variant: "outline",
|
|
207
|
+
class: "min-w-0",
|
|
208
|
+
ui: { label: "truncate" }
|
|
209
|
+
}, {
|
|
210
|
+
default: withCtx(() => [
|
|
211
|
+
createTextVNode(toDisplayString(report.label), 1)
|
|
212
|
+
]),
|
|
213
|
+
_: 2
|
|
214
|
+
}, 1032, ["href", "icon"]),
|
|
215
|
+
createVNode("span", { class: "text-xs tabular-nums text-dimmed shrink-0" }, toDisplayString(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(report.size)), 1)
|
|
216
|
+
]);
|
|
217
|
+
}), 128)),
|
|
218
|
+
__props.storageStats.testCaseFilesCount > 0 ? (openBlock(), createBlock("div", {
|
|
219
|
+
key: 0,
|
|
220
|
+
class: "flex items-center justify-between gap-2 text-sm border-t border-default pt-2"
|
|
221
|
+
}, [
|
|
222
|
+
createVNode("span", { class: "truncate" }, "Test files (" + toDisplayString(__props.storageStats.testCaseFilesCount) + ")", 1),
|
|
223
|
+
createVNode("span", { class: "text-xs tabular-nums text-dimmed shrink-0" }, toDisplayString(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(__props.storageStats.testCaseFilesSize)), 1)
|
|
224
|
+
])) : createCommentVNode("", true)
|
|
225
|
+
])
|
|
226
|
+
];
|
|
227
|
+
}
|
|
228
|
+
}),
|
|
229
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
230
|
+
if (_push2) {
|
|
231
|
+
_push2(`<button type="button" class="inline-flex items-center gap-1.5 rounded-md px-1.5 py-0.5 -my-0.5 -ml-1.5 text-muted hover:text-default hover:bg-elevated/60 transition-colors cursor-pointer" title="Stored reports & artifacts"${_scopeId}>`);
|
|
232
|
+
_push2(ssrRenderComponent(_component_UIcon, {
|
|
233
|
+
name: "i-lucide-database",
|
|
234
|
+
class: "size-3.5 text-dimmed shrink-0"
|
|
235
|
+
}, null, _parent2, _scopeId));
|
|
236
|
+
_push2(`<span class="tabular-nums whitespace-nowrap"${_scopeId}>${ssrInterpolate(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(__props.storageStats.totalSize))} <span class="text-dimmed"${_scopeId}>· ${ssrInterpolate(__props.storageStats.totalFiles)} file${ssrInterpolate(__props.storageStats.totalFiles === 1 ? "" : "s")}</span></span>`);
|
|
237
|
+
_push2(ssrRenderComponent(_component_UIcon, {
|
|
238
|
+
name: "i-lucide-chevron-down",
|
|
239
|
+
class: "size-3 text-dimmed shrink-0"
|
|
240
|
+
}, null, _parent2, _scopeId));
|
|
241
|
+
_push2(`</button>`);
|
|
242
|
+
} else {
|
|
243
|
+
return [
|
|
244
|
+
createVNode("button", {
|
|
245
|
+
type: "button",
|
|
246
|
+
class: "inline-flex items-center gap-1.5 rounded-md px-1.5 py-0.5 -my-0.5 -ml-1.5 text-muted hover:text-default hover:bg-elevated/60 transition-colors cursor-pointer",
|
|
247
|
+
title: "Stored reports & artifacts"
|
|
248
|
+
}, [
|
|
249
|
+
createVNode(_component_UIcon, {
|
|
250
|
+
name: "i-lucide-database",
|
|
251
|
+
class: "size-3.5 text-dimmed shrink-0"
|
|
252
|
+
}),
|
|
253
|
+
createVNode("span", { class: "tabular-nums whitespace-nowrap" }, [
|
|
254
|
+
createTextVNode(toDisplayString(("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(__props.storageStats.totalSize)) + " ", 1),
|
|
255
|
+
createVNode("span", { class: "text-dimmed" }, "· " + toDisplayString(__props.storageStats.totalFiles) + " file" + toDisplayString(__props.storageStats.totalFiles === 1 ? "" : "s"), 1)
|
|
256
|
+
]),
|
|
257
|
+
createVNode(_component_UIcon, {
|
|
258
|
+
name: "i-lucide-chevron-down",
|
|
259
|
+
class: "size-3 text-dimmed shrink-0"
|
|
260
|
+
})
|
|
261
|
+
])
|
|
262
|
+
];
|
|
263
|
+
}
|
|
264
|
+
}),
|
|
265
|
+
_: 1
|
|
266
|
+
}, _parent));
|
|
267
|
+
} else {
|
|
268
|
+
_push(`<!---->`);
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
const _sfc_setup$g = _sfc_main$g.setup;
|
|
274
|
+
_sfc_main$g.setup = (props, ctx) => {
|
|
275
|
+
const ssrContext = useSSRContext();
|
|
276
|
+
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/run/RunStorageChip.vue");
|
|
277
|
+
return _sfc_setup$g ? _sfc_setup$g(props, ctx) : void 0;
|
|
278
|
+
};
|
|
279
|
+
const __nuxt_component_18$1 = Object.assign(_sfc_main$g, { __name: "RunStorageChip" });
|
|
116
280
|
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
117
281
|
__name: "RunSummary",
|
|
118
282
|
__ssrInlineRender: true,
|
|
@@ -132,17 +296,14 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
132
296
|
const toast = useToast();
|
|
133
297
|
const config = useRuntimeConfig();
|
|
134
298
|
const storageStats = computed(() => props.testRun?.storageStats);
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
);
|
|
138
|
-
const
|
|
299
|
+
const ci = computed(() => props.testRun?.metadata?.ci);
|
|
300
|
+
const scm = computed(() => props.testRun?.metadata?.scm);
|
|
301
|
+
const tags = computed(() => props.testRun?.metadata?.tags);
|
|
302
|
+
const customData = computed(() => props.testRun?.metadata?.customData);
|
|
303
|
+
const showCiGroup = computed(() => !!(ci.value || props.testRun?.environment));
|
|
304
|
+
const showVersions = computed(() => !!(props.testRun?.playwrightVersion || props.testRun?.reporterVersion));
|
|
139
305
|
const showStorage = computed(() => !!(storageStats.value?.totalFiles || props.finalizing));
|
|
140
|
-
const
|
|
141
|
-
() => !!(props.testRun?.metadata?.tags?.length || props.testRun?.metadata?.projectDescription || props.testRun?.metadata?.relatedIssue || props.testRun?.metadata?.customData || props.testRun?.links?.length)
|
|
142
|
-
);
|
|
143
|
-
const { summaryColSpanClass, blockColSpanClass } = useDetailGrid(
|
|
144
|
-
() => [showCiEnv, showSource, showStorage, showOther].filter((b) => b.value).length
|
|
145
|
-
);
|
|
306
|
+
const primaryReport = computed(() => props.allReports[0] ?? null);
|
|
146
307
|
const { copy, copied } = useCopy();
|
|
147
308
|
const retryMode = ref("file-line");
|
|
148
309
|
const retryCopied = ref(false);
|
|
@@ -237,28 +398,30 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
237
398
|
}
|
|
238
399
|
return (_ctx, _push, _parent, _attrs) => {
|
|
239
400
|
const _component_FoldableSummary = __nuxt_component_0$1;
|
|
240
|
-
const
|
|
401
|
+
const _component_StatusChip = __nuxt_component_1$1;
|
|
241
402
|
const _component_UIcon = _sfc_main$p;
|
|
242
403
|
const _component_UBadge = _sfc_main$7$1;
|
|
243
|
-
const _component_TestStatusBar = __nuxt_component_14$
|
|
404
|
+
const _component_TestStatusBar = __nuxt_component_14$3;
|
|
244
405
|
const _component_DurationValue = __nuxt_component_14$1;
|
|
245
|
-
const _component_UCard = _sfc_main$
|
|
406
|
+
const _component_UCard = _sfc_main$n;
|
|
246
407
|
const _component_HelpHint = __nuxt_component_2$2;
|
|
247
|
-
const _component_UTooltip = _sfc_main$
|
|
408
|
+
const _component_UTooltip = _sfc_main$i;
|
|
248
409
|
const _component_NuxtLink = __nuxt_component_12$1;
|
|
249
410
|
const _component_MarkerBadge = __nuxt_component_5;
|
|
411
|
+
const _component_ClientOnly = __nuxt_component_7$1;
|
|
250
412
|
const _component_UButton = _sfc_main$k;
|
|
251
413
|
const _component_UPopover = _sfc_main$8$1;
|
|
252
|
-
const
|
|
253
|
-
const
|
|
254
|
-
const
|
|
255
|
-
const
|
|
256
|
-
const
|
|
414
|
+
const _component_DesktopRunLocallyButton = __nuxt_component_14$2;
|
|
415
|
+
const _component_StatTileGrid = __nuxt_component_1$2;
|
|
416
|
+
const _component_SummaryMetaStrip = __nuxt_component_16$1;
|
|
417
|
+
const _component_MetaStripGroup = __nuxt_component_17$1;
|
|
418
|
+
const _component_RunStorageChip = __nuxt_component_18$1;
|
|
419
|
+
const _component_EntityLinks = __nuxt_component_19;
|
|
257
420
|
_push(ssrRenderComponent(_component_FoldableSummary, mergeProps({ "storage-key": "test-run" }, _attrs), {
|
|
258
421
|
folded: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
259
422
|
if (_push2) {
|
|
260
423
|
_push2(`<div class="flex items-center gap-3 flex-1 min-w-0 justify-between"${_scopeId}><div class="flex items-center gap-3 min-w-0"${_scopeId}>`);
|
|
261
|
-
_push2(ssrRenderComponent(
|
|
424
|
+
_push2(ssrRenderComponent(_component_StatusChip, {
|
|
262
425
|
status: __props.testRun?.status ?? "",
|
|
263
426
|
size: "sm"
|
|
264
427
|
}, null, _parent2, _scopeId));
|
|
@@ -332,7 +495,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
332
495
|
return [
|
|
333
496
|
createVNode("div", { class: "flex items-center gap-3 flex-1 min-w-0 justify-between" }, [
|
|
334
497
|
createVNode("div", { class: "flex items-center gap-3 min-w-0" }, [
|
|
335
|
-
createVNode(
|
|
498
|
+
createVNode(_component_StatusChip, {
|
|
336
499
|
status: __props.testRun?.status ?? "",
|
|
337
500
|
size: "sm"
|
|
338
501
|
}, null, 8, ["status"]),
|
|
@@ -434,132 +597,854 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
434
597
|
}),
|
|
435
598
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
436
599
|
if (_push2) {
|
|
437
|
-
_push2(`<div class="
|
|
438
|
-
_push2(ssrRenderComponent(_component_UCard, {
|
|
439
|
-
|
|
600
|
+
_push2(`<div class="@container"${_scopeId}>`);
|
|
601
|
+
_push2(ssrRenderComponent(_component_UCard, {
|
|
602
|
+
class: "shadow-xs",
|
|
603
|
+
ui: { footer: "px-4 py-2.5 sm:px-4 bg-muted/30" }
|
|
604
|
+
}, {
|
|
605
|
+
footer: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
|
440
606
|
if (_push3) {
|
|
441
|
-
_push3(
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
607
|
+
_push3(ssrRenderComponent(_component_SummaryMetaStrip, null, {
|
|
608
|
+
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
609
|
+
if (_push4) {
|
|
610
|
+
if (unref(showCiGroup)) {
|
|
611
|
+
_push4(ssrRenderComponent(_component_MetaStripGroup, {
|
|
612
|
+
label: "CI & environment",
|
|
613
|
+
icon: "i-lucide-cloud",
|
|
614
|
+
help: "run.ci-env"
|
|
615
|
+
}, {
|
|
616
|
+
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
617
|
+
if (_push5) {
|
|
618
|
+
if (__props.testRun?.environment) {
|
|
619
|
+
_push5(`<span class="rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"${_scopeId4}>${ssrInterpolate(__props.testRun.environment)}</span>`);
|
|
620
|
+
} else {
|
|
621
|
+
_push5(`<!---->`);
|
|
622
|
+
}
|
|
623
|
+
if (unref(ci)?.provider) {
|
|
624
|
+
_push5(`<span${_scopeId4}>${ssrInterpolate(unref(ci).provider)}</span>`);
|
|
625
|
+
} else {
|
|
626
|
+
_push5(`<!---->`);
|
|
627
|
+
}
|
|
628
|
+
if (unref(ci)?.buildNumber || unref(ci)?.buildUrl) {
|
|
629
|
+
_push5(`<!--[--><span class="text-dimmed"${_scopeId4}>·</span>`);
|
|
630
|
+
if (unref(ci)?.buildUrl) {
|
|
631
|
+
_push5(`<a${ssrRenderAttr("href", unref(ci).buildUrl)} target="_blank" class="text-primary hover:underline"${_scopeId4}>${ssrInterpolate(unref(ci)?.buildNumber ? `Build #${unref(ci).buildNumber}` : "View build")}</a>`);
|
|
632
|
+
} else {
|
|
633
|
+
_push5(`<span${_scopeId4}>Build #${ssrInterpolate(unref(ci).buildNumber)}</span>`);
|
|
634
|
+
}
|
|
635
|
+
_push5(`<!--]-->`);
|
|
636
|
+
} else {
|
|
637
|
+
_push5(`<!---->`);
|
|
638
|
+
}
|
|
639
|
+
if (unref(ci)?.workflow || unref(ci)?.jobName) {
|
|
640
|
+
_push5(`<!--[--><span class="text-dimmed"${_scopeId4}>·</span><span class="text-muted"${_scopeId4}>`);
|
|
641
|
+
if (unref(ci)?.workflow) {
|
|
642
|
+
_push5(`<!--[-->${ssrInterpolate(unref(ci).workflow)}<!--]-->`);
|
|
643
|
+
} else {
|
|
644
|
+
_push5(`<!---->`);
|
|
645
|
+
}
|
|
646
|
+
if (unref(ci)?.workflow && unref(ci)?.jobName) {
|
|
647
|
+
_push5(`<!--[--> · <!--]-->`);
|
|
648
|
+
} else {
|
|
649
|
+
_push5(`<!---->`);
|
|
650
|
+
}
|
|
651
|
+
if (unref(ci)?.jobName) {
|
|
652
|
+
_push5(`<!--[-->${ssrInterpolate(unref(ci).jobName)}<!--]-->`);
|
|
653
|
+
} else {
|
|
654
|
+
_push5(`<!---->`);
|
|
655
|
+
}
|
|
656
|
+
_push5(`</span><!--]-->`);
|
|
657
|
+
} else {
|
|
658
|
+
_push5(`<!---->`);
|
|
659
|
+
}
|
|
660
|
+
} else {
|
|
661
|
+
return [
|
|
662
|
+
__props.testRun?.environment ? (openBlock(), createBlock("span", {
|
|
663
|
+
key: 0,
|
|
664
|
+
class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
|
|
665
|
+
}, toDisplayString(__props.testRun.environment), 1)) : createCommentVNode("", true),
|
|
666
|
+
unref(ci)?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(unref(ci).provider), 1)) : createCommentVNode("", true),
|
|
667
|
+
unref(ci)?.buildNumber || unref(ci)?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
668
|
+
createVNode("span", { class: "text-dimmed" }, "·"),
|
|
669
|
+
unref(ci)?.buildUrl ? (openBlock(), createBlock("a", {
|
|
670
|
+
key: 0,
|
|
671
|
+
href: unref(ci).buildUrl,
|
|
672
|
+
target: "_blank",
|
|
673
|
+
class: "text-primary hover:underline"
|
|
674
|
+
}, toDisplayString(unref(ci)?.buildNumber ? `Build #${unref(ci).buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(unref(ci).buildNumber), 1))
|
|
675
|
+
], 64)) : createCommentVNode("", true),
|
|
676
|
+
unref(ci)?.workflow || unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
|
|
677
|
+
createVNode("span", { class: "text-dimmed" }, "·"),
|
|
678
|
+
createVNode("span", { class: "text-muted" }, [
|
|
679
|
+
unref(ci)?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
680
|
+
createTextVNode(toDisplayString(unref(ci).workflow), 1)
|
|
681
|
+
], 64)) : createCommentVNode("", true),
|
|
682
|
+
unref(ci)?.workflow && unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
683
|
+
createTextVNode(" · ")
|
|
684
|
+
], 64)) : createCommentVNode("", true),
|
|
685
|
+
unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
686
|
+
createTextVNode(toDisplayString(unref(ci).jobName), 1)
|
|
687
|
+
], 64)) : createCommentVNode("", true)
|
|
688
|
+
])
|
|
689
|
+
], 64)) : createCommentVNode("", true)
|
|
690
|
+
];
|
|
691
|
+
}
|
|
692
|
+
}),
|
|
693
|
+
_: 1
|
|
694
|
+
}, _parent4, _scopeId3));
|
|
484
695
|
} else {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
696
|
+
_push4(`<!---->`);
|
|
697
|
+
}
|
|
698
|
+
if (unref(scm)) {
|
|
699
|
+
_push4(ssrRenderComponent(_component_MetaStripGroup, {
|
|
700
|
+
label: "Source",
|
|
701
|
+
icon: "i-lucide-git-branch"
|
|
702
|
+
}, {
|
|
703
|
+
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
704
|
+
if (_push5) {
|
|
705
|
+
if (unref(scm).branch) {
|
|
706
|
+
_push5(`<span class="font-medium"${_scopeId4}>${ssrInterpolate(unref(scm).branch)}</span>`);
|
|
707
|
+
} else {
|
|
708
|
+
_push5(`<!---->`);
|
|
709
|
+
}
|
|
710
|
+
if (unref(scm).commit) {
|
|
711
|
+
_push5(`<code class="text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded"${ssrRenderAttr("title", unref(scm).commit)}${_scopeId4}>${ssrInterpolate(unref(scm).commit.length >= 8 ? unref(scm).commit.substring(0, 8) : unref(scm).commit)}</code>`);
|
|
712
|
+
} else {
|
|
713
|
+
_push5(`<!---->`);
|
|
714
|
+
}
|
|
715
|
+
if (unref(scm).author) {
|
|
716
|
+
_push5(`<span class="text-muted"${_scopeId4}>${ssrInterpolate(unref(scm).author)}</span>`);
|
|
717
|
+
} else {
|
|
718
|
+
_push5(`<!---->`);
|
|
719
|
+
}
|
|
720
|
+
if (unref(scm).commitMessage) {
|
|
721
|
+
_push5(`<span class="text-xs text-dimmed truncate max-w-[40ch]"${ssrRenderAttr("title", unref(scm).commitMessage)}${_scopeId4}>${ssrInterpolate(unref(scm).commitMessage)}</span>`);
|
|
722
|
+
} else {
|
|
723
|
+
_push5(`<!---->`);
|
|
724
|
+
}
|
|
725
|
+
} else {
|
|
726
|
+
return [
|
|
727
|
+
unref(scm).branch ? (openBlock(), createBlock("span", {
|
|
728
|
+
key: 0,
|
|
729
|
+
class: "font-medium"
|
|
730
|
+
}, toDisplayString(unref(scm).branch), 1)) : createCommentVNode("", true),
|
|
731
|
+
unref(scm).commit ? (openBlock(), createBlock("code", {
|
|
732
|
+
key: 1,
|
|
733
|
+
class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
|
|
734
|
+
title: unref(scm).commit
|
|
735
|
+
}, toDisplayString(unref(scm).commit.length >= 8 ? unref(scm).commit.substring(0, 8) : unref(scm).commit), 9, ["title"])) : createCommentVNode("", true),
|
|
736
|
+
unref(scm).author ? (openBlock(), createBlock("span", {
|
|
737
|
+
key: 2,
|
|
738
|
+
class: "text-muted"
|
|
739
|
+
}, toDisplayString(unref(scm).author), 1)) : createCommentVNode("", true),
|
|
740
|
+
unref(scm).commitMessage ? (openBlock(), createBlock("span", {
|
|
741
|
+
key: 3,
|
|
742
|
+
class: "text-xs text-dimmed truncate max-w-[40ch]",
|
|
743
|
+
title: unref(scm).commitMessage
|
|
744
|
+
}, toDisplayString(unref(scm).commitMessage), 9, ["title"])) : createCommentVNode("", true)
|
|
745
|
+
];
|
|
746
|
+
}
|
|
489
747
|
}),
|
|
490
|
-
|
|
491
|
-
|
|
748
|
+
_: 1
|
|
749
|
+
}, _parent4, _scopeId3));
|
|
750
|
+
} else {
|
|
751
|
+
_push4(`<!---->`);
|
|
492
752
|
}
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
_push3(`<!---->`);
|
|
498
|
-
}
|
|
499
|
-
if (__props.testRun?.precedingMarker) {
|
|
500
|
-
_push3(ssrRenderComponent(_component_UTooltip, {
|
|
501
|
-
text: `This run started after: ${__props.testRun.precedingMarker.label}`
|
|
502
|
-
}, {
|
|
503
|
-
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
504
|
-
if (_push4) {
|
|
505
|
-
_push4(ssrRenderComponent(_component_NuxtLink, {
|
|
506
|
-
to: `/projects/${__props.testRun.projectId}?tab=timeline`,
|
|
507
|
-
class: "shrink-0 inline-flex items-center gap-1"
|
|
753
|
+
if (unref(showVersions)) {
|
|
754
|
+
_push4(ssrRenderComponent(_component_MetaStripGroup, {
|
|
755
|
+
label: "Tooling versions",
|
|
756
|
+
icon: "i-lucide-tag"
|
|
508
757
|
}, {
|
|
509
758
|
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
510
759
|
if (_push5) {
|
|
511
|
-
_push5(`<span class="text-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
760
|
+
_push5(`<span class="text-muted whitespace-nowrap"${_scopeId4}>`);
|
|
761
|
+
if (__props.testRun?.playwrightVersion) {
|
|
762
|
+
_push5(`<!--[-->Playwright v${ssrInterpolate(__props.testRun.playwrightVersion)}<!--]-->`);
|
|
763
|
+
} else {
|
|
764
|
+
_push5(`<!---->`);
|
|
765
|
+
}
|
|
766
|
+
if (__props.testRun?.playwrightVersion && __props.testRun?.reporterVersion) {
|
|
767
|
+
_push5(`<!--[--> · <!--]-->`);
|
|
768
|
+
} else {
|
|
769
|
+
_push5(`<!---->`);
|
|
770
|
+
}
|
|
771
|
+
if (__props.testRun?.reporterVersion) {
|
|
772
|
+
_push5(`<!--[-->Piwi v${ssrInterpolate(__props.testRun.reporterVersion)}<!--]-->`);
|
|
773
|
+
} else {
|
|
774
|
+
_push5(`<!---->`);
|
|
775
|
+
}
|
|
776
|
+
_push5(`</span>`);
|
|
516
777
|
} else {
|
|
517
778
|
return [
|
|
518
|
-
createVNode("span", { class: "text-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
779
|
+
createVNode("span", { class: "text-muted whitespace-nowrap" }, [
|
|
780
|
+
__props.testRun?.playwrightVersion ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
781
|
+
createTextVNode("Playwright v" + toDisplayString(__props.testRun.playwrightVersion), 1)
|
|
782
|
+
], 64)) : createCommentVNode("", true),
|
|
783
|
+
__props.testRun?.playwrightVersion && __props.testRun?.reporterVersion ? (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
784
|
+
createTextVNode(" · ")
|
|
785
|
+
], 64)) : createCommentVNode("", true),
|
|
786
|
+
__props.testRun?.reporterVersion ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
787
|
+
createTextVNode("Piwi v" + toDisplayString(__props.testRun.reporterVersion), 1)
|
|
788
|
+
], 64)) : createCommentVNode("", true)
|
|
789
|
+
])
|
|
523
790
|
];
|
|
524
791
|
}
|
|
525
792
|
}),
|
|
526
793
|
_: 1
|
|
527
794
|
}, _parent4, _scopeId3));
|
|
528
795
|
} else {
|
|
529
|
-
|
|
530
|
-
createVNode(_component_NuxtLink, {
|
|
531
|
-
to: `/projects/${__props.testRun.projectId}?tab=timeline`,
|
|
532
|
-
class: "shrink-0 inline-flex items-center gap-1"
|
|
533
|
-
}, {
|
|
534
|
-
default: withCtx(() => [
|
|
535
|
-
createVNode("span", { class: "text-xs text-muted" }, "After"),
|
|
536
|
-
createVNode(_component_MarkerBadge, {
|
|
537
|
-
marker: __props.testRun.precedingMarker,
|
|
538
|
-
size: "xs"
|
|
539
|
-
}, null, 8, ["marker"])
|
|
540
|
-
]),
|
|
541
|
-
_: 1
|
|
542
|
-
}, 8, ["to"])
|
|
543
|
-
];
|
|
796
|
+
_push4(`<!---->`);
|
|
544
797
|
}
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
798
|
+
if (unref(tags)?.length) {
|
|
799
|
+
_push4(ssrRenderComponent(_component_MetaStripGroup, {
|
|
800
|
+
label: "Tags",
|
|
801
|
+
icon: "i-lucide-tags"
|
|
802
|
+
}, {
|
|
803
|
+
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
804
|
+
if (_push5) {
|
|
805
|
+
_push5(`<!--[-->`);
|
|
806
|
+
ssrRenderList(unref(tags), (tag) => {
|
|
807
|
+
_push5(ssrRenderComponent(_component_UBadge, {
|
|
808
|
+
key: tag,
|
|
809
|
+
color: "neutral",
|
|
810
|
+
variant: "soft",
|
|
811
|
+
size: "sm"
|
|
812
|
+
}, {
|
|
813
|
+
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
|
|
814
|
+
if (_push6) {
|
|
815
|
+
_push6(`${ssrInterpolate(tag)}`);
|
|
816
|
+
} else {
|
|
817
|
+
return [
|
|
818
|
+
createTextVNode(toDisplayString(tag), 1)
|
|
819
|
+
];
|
|
820
|
+
}
|
|
821
|
+
}),
|
|
822
|
+
_: 2
|
|
823
|
+
}, _parent5, _scopeId4));
|
|
824
|
+
});
|
|
825
|
+
_push5(`<!--]-->`);
|
|
826
|
+
} else {
|
|
827
|
+
return [
|
|
828
|
+
(openBlock(true), createBlock(Fragment, null, renderList(unref(tags), (tag) => {
|
|
829
|
+
return openBlock(), createBlock(_component_UBadge, {
|
|
830
|
+
key: tag,
|
|
831
|
+
color: "neutral",
|
|
832
|
+
variant: "soft",
|
|
833
|
+
size: "sm"
|
|
834
|
+
}, {
|
|
835
|
+
default: withCtx(() => [
|
|
836
|
+
createTextVNode(toDisplayString(tag), 1)
|
|
837
|
+
]),
|
|
838
|
+
_: 2
|
|
839
|
+
}, 1024);
|
|
840
|
+
}), 128))
|
|
841
|
+
];
|
|
842
|
+
}
|
|
843
|
+
}),
|
|
844
|
+
_: 1
|
|
845
|
+
}, _parent4, _scopeId3));
|
|
846
|
+
} else {
|
|
847
|
+
_push4(`<!---->`);
|
|
848
|
+
}
|
|
849
|
+
if (__props.testRun?.metadata?.relatedIssue) {
|
|
850
|
+
_push4(ssrRenderComponent(_component_MetaStripGroup, {
|
|
851
|
+
label: "Related issue",
|
|
852
|
+
icon: "i-lucide-bookmark"
|
|
853
|
+
}, {
|
|
854
|
+
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
855
|
+
if (_push5) {
|
|
856
|
+
_push5(`<span class="text-muted"${_scopeId4}>${ssrInterpolate(__props.testRun.metadata.relatedIssue)}</span>`);
|
|
857
|
+
} else {
|
|
858
|
+
return [
|
|
859
|
+
createVNode("span", { class: "text-muted" }, toDisplayString(__props.testRun.metadata.relatedIssue), 1)
|
|
860
|
+
];
|
|
861
|
+
}
|
|
862
|
+
}),
|
|
863
|
+
_: 1
|
|
864
|
+
}, _parent4, _scopeId3));
|
|
865
|
+
} else {
|
|
866
|
+
_push4(`<!---->`);
|
|
867
|
+
}
|
|
868
|
+
if (unref(showStorage)) {
|
|
869
|
+
_push4(ssrRenderComponent(_component_MetaStripGroup, { label: "Storage" }, {
|
|
870
|
+
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
871
|
+
if (_push5) {
|
|
872
|
+
_push5(ssrRenderComponent(_component_RunStorageChip, {
|
|
873
|
+
"storage-stats": unref(storageStats),
|
|
874
|
+
reports: __props.allReports,
|
|
875
|
+
finalizing: __props.finalizing
|
|
876
|
+
}, null, _parent5, _scopeId4));
|
|
877
|
+
} else {
|
|
878
|
+
return [
|
|
879
|
+
createVNode(_component_RunStorageChip, {
|
|
880
|
+
"storage-stats": unref(storageStats),
|
|
881
|
+
reports: __props.allReports,
|
|
882
|
+
finalizing: __props.finalizing
|
|
883
|
+
}, null, 8, ["storage-stats", "reports", "finalizing"])
|
|
884
|
+
];
|
|
885
|
+
}
|
|
886
|
+
}),
|
|
887
|
+
_: 1
|
|
888
|
+
}, _parent4, _scopeId3));
|
|
889
|
+
} else {
|
|
890
|
+
_push4(`<!---->`);
|
|
891
|
+
}
|
|
892
|
+
_push4(ssrRenderComponent(_component_MetaStripGroup, {
|
|
893
|
+
label: "Links",
|
|
894
|
+
icon: "i-lucide-link",
|
|
895
|
+
help: "run.metadata"
|
|
896
|
+
}, {
|
|
897
|
+
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
898
|
+
if (_push5) {
|
|
899
|
+
_push5(ssrRenderComponent(_component_EntityLinks, {
|
|
900
|
+
"entity-type": "test_run",
|
|
901
|
+
"entity-id": __props.testRun.id,
|
|
902
|
+
links: __props.testRun.links ?? null,
|
|
903
|
+
onUpdated: ($event) => _ctx.$emit("label-updated")
|
|
904
|
+
}, null, _parent5, _scopeId4));
|
|
905
|
+
} else {
|
|
906
|
+
return [
|
|
907
|
+
createVNode(_component_EntityLinks, {
|
|
908
|
+
"entity-type": "test_run",
|
|
909
|
+
"entity-id": __props.testRun.id,
|
|
910
|
+
links: __props.testRun.links ?? null,
|
|
911
|
+
onUpdated: ($event) => _ctx.$emit("label-updated")
|
|
912
|
+
}, null, 8, ["entity-id", "links", "onUpdated"])
|
|
913
|
+
];
|
|
914
|
+
}
|
|
915
|
+
}),
|
|
916
|
+
_: 1
|
|
917
|
+
}, _parent4, _scopeId3));
|
|
918
|
+
if (unref(customData)) {
|
|
919
|
+
_push4(ssrRenderComponent(_component_MetaStripGroup, { label: "Custom data" }, {
|
|
920
|
+
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
921
|
+
if (_push5) {
|
|
922
|
+
_push5(ssrRenderComponent(_component_UButton, {
|
|
923
|
+
size: "xs",
|
|
924
|
+
variant: "ghost",
|
|
925
|
+
color: "neutral",
|
|
926
|
+
icon: __props.showCustomData ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
|
|
927
|
+
onClick: ($event) => emit("update:showCustomData", !__props.showCustomData)
|
|
928
|
+
}, {
|
|
929
|
+
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
|
|
930
|
+
if (_push6) {
|
|
931
|
+
_push6(` Custom data `);
|
|
932
|
+
} else {
|
|
933
|
+
return [
|
|
934
|
+
createTextVNode(" Custom data ")
|
|
935
|
+
];
|
|
936
|
+
}
|
|
937
|
+
}),
|
|
938
|
+
_: 1
|
|
939
|
+
}, _parent5, _scopeId4));
|
|
940
|
+
} else {
|
|
941
|
+
return [
|
|
942
|
+
createVNode(_component_UButton, {
|
|
943
|
+
size: "xs",
|
|
944
|
+
variant: "ghost",
|
|
945
|
+
color: "neutral",
|
|
946
|
+
icon: __props.showCustomData ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
|
|
947
|
+
onClick: ($event) => emit("update:showCustomData", !__props.showCustomData)
|
|
948
|
+
}, {
|
|
949
|
+
default: withCtx(() => [
|
|
950
|
+
createTextVNode(" Custom data ")
|
|
951
|
+
]),
|
|
952
|
+
_: 1
|
|
953
|
+
}, 8, ["icon", "onClick"])
|
|
954
|
+
];
|
|
955
|
+
}
|
|
956
|
+
}),
|
|
957
|
+
_: 1
|
|
958
|
+
}, _parent4, _scopeId3));
|
|
959
|
+
} else {
|
|
960
|
+
_push4(`<!---->`);
|
|
961
|
+
}
|
|
962
|
+
} else {
|
|
963
|
+
return [
|
|
964
|
+
unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
965
|
+
key: 0,
|
|
966
|
+
label: "CI & environment",
|
|
967
|
+
icon: "i-lucide-cloud",
|
|
968
|
+
help: "run.ci-env"
|
|
969
|
+
}, {
|
|
970
|
+
default: withCtx(() => [
|
|
971
|
+
__props.testRun?.environment ? (openBlock(), createBlock("span", {
|
|
972
|
+
key: 0,
|
|
973
|
+
class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
|
|
974
|
+
}, toDisplayString(__props.testRun.environment), 1)) : createCommentVNode("", true),
|
|
975
|
+
unref(ci)?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(unref(ci).provider), 1)) : createCommentVNode("", true),
|
|
976
|
+
unref(ci)?.buildNumber || unref(ci)?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
977
|
+
createVNode("span", { class: "text-dimmed" }, "·"),
|
|
978
|
+
unref(ci)?.buildUrl ? (openBlock(), createBlock("a", {
|
|
979
|
+
key: 0,
|
|
980
|
+
href: unref(ci).buildUrl,
|
|
981
|
+
target: "_blank",
|
|
982
|
+
class: "text-primary hover:underline"
|
|
983
|
+
}, toDisplayString(unref(ci)?.buildNumber ? `Build #${unref(ci).buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(unref(ci).buildNumber), 1))
|
|
984
|
+
], 64)) : createCommentVNode("", true),
|
|
985
|
+
unref(ci)?.workflow || unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
|
|
986
|
+
createVNode("span", { class: "text-dimmed" }, "·"),
|
|
987
|
+
createVNode("span", { class: "text-muted" }, [
|
|
988
|
+
unref(ci)?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
989
|
+
createTextVNode(toDisplayString(unref(ci).workflow), 1)
|
|
990
|
+
], 64)) : createCommentVNode("", true),
|
|
991
|
+
unref(ci)?.workflow && unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
992
|
+
createTextVNode(" · ")
|
|
993
|
+
], 64)) : createCommentVNode("", true),
|
|
994
|
+
unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
995
|
+
createTextVNode(toDisplayString(unref(ci).jobName), 1)
|
|
996
|
+
], 64)) : createCommentVNode("", true)
|
|
997
|
+
])
|
|
998
|
+
], 64)) : createCommentVNode("", true)
|
|
999
|
+
]),
|
|
1000
|
+
_: 1
|
|
1001
|
+
})) : createCommentVNode("", true),
|
|
1002
|
+
unref(scm) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1003
|
+
key: 1,
|
|
1004
|
+
label: "Source",
|
|
1005
|
+
icon: "i-lucide-git-branch"
|
|
1006
|
+
}, {
|
|
1007
|
+
default: withCtx(() => [
|
|
1008
|
+
unref(scm).branch ? (openBlock(), createBlock("span", {
|
|
1009
|
+
key: 0,
|
|
1010
|
+
class: "font-medium"
|
|
1011
|
+
}, toDisplayString(unref(scm).branch), 1)) : createCommentVNode("", true),
|
|
1012
|
+
unref(scm).commit ? (openBlock(), createBlock("code", {
|
|
1013
|
+
key: 1,
|
|
1014
|
+
class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
|
|
1015
|
+
title: unref(scm).commit
|
|
1016
|
+
}, toDisplayString(unref(scm).commit.length >= 8 ? unref(scm).commit.substring(0, 8) : unref(scm).commit), 9, ["title"])) : createCommentVNode("", true),
|
|
1017
|
+
unref(scm).author ? (openBlock(), createBlock("span", {
|
|
1018
|
+
key: 2,
|
|
1019
|
+
class: "text-muted"
|
|
1020
|
+
}, toDisplayString(unref(scm).author), 1)) : createCommentVNode("", true),
|
|
1021
|
+
unref(scm).commitMessage ? (openBlock(), createBlock("span", {
|
|
1022
|
+
key: 3,
|
|
1023
|
+
class: "text-xs text-dimmed truncate max-w-[40ch]",
|
|
1024
|
+
title: unref(scm).commitMessage
|
|
1025
|
+
}, toDisplayString(unref(scm).commitMessage), 9, ["title"])) : createCommentVNode("", true)
|
|
1026
|
+
]),
|
|
1027
|
+
_: 1
|
|
1028
|
+
})) : createCommentVNode("", true),
|
|
1029
|
+
unref(showVersions) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1030
|
+
key: 2,
|
|
1031
|
+
label: "Tooling versions",
|
|
1032
|
+
icon: "i-lucide-tag"
|
|
1033
|
+
}, {
|
|
1034
|
+
default: withCtx(() => [
|
|
1035
|
+
createVNode("span", { class: "text-muted whitespace-nowrap" }, [
|
|
1036
|
+
__props.testRun?.playwrightVersion ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
1037
|
+
createTextVNode("Playwright v" + toDisplayString(__props.testRun.playwrightVersion), 1)
|
|
1038
|
+
], 64)) : createCommentVNode("", true),
|
|
1039
|
+
__props.testRun?.playwrightVersion && __props.testRun?.reporterVersion ? (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
1040
|
+
createTextVNode(" · ")
|
|
1041
|
+
], 64)) : createCommentVNode("", true),
|
|
1042
|
+
__props.testRun?.reporterVersion ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
1043
|
+
createTextVNode("Piwi v" + toDisplayString(__props.testRun.reporterVersion), 1)
|
|
1044
|
+
], 64)) : createCommentVNode("", true)
|
|
1045
|
+
])
|
|
1046
|
+
]),
|
|
1047
|
+
_: 1
|
|
1048
|
+
})) : createCommentVNode("", true),
|
|
1049
|
+
unref(tags)?.length ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1050
|
+
key: 3,
|
|
1051
|
+
label: "Tags",
|
|
1052
|
+
icon: "i-lucide-tags"
|
|
1053
|
+
}, {
|
|
1054
|
+
default: withCtx(() => [
|
|
1055
|
+
(openBlock(true), createBlock(Fragment, null, renderList(unref(tags), (tag) => {
|
|
1056
|
+
return openBlock(), createBlock(_component_UBadge, {
|
|
1057
|
+
key: tag,
|
|
1058
|
+
color: "neutral",
|
|
1059
|
+
variant: "soft",
|
|
1060
|
+
size: "sm"
|
|
1061
|
+
}, {
|
|
1062
|
+
default: withCtx(() => [
|
|
1063
|
+
createTextVNode(toDisplayString(tag), 1)
|
|
1064
|
+
]),
|
|
1065
|
+
_: 2
|
|
1066
|
+
}, 1024);
|
|
1067
|
+
}), 128))
|
|
1068
|
+
]),
|
|
1069
|
+
_: 1
|
|
1070
|
+
})) : createCommentVNode("", true),
|
|
1071
|
+
__props.testRun?.metadata?.relatedIssue ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1072
|
+
key: 4,
|
|
1073
|
+
label: "Related issue",
|
|
1074
|
+
icon: "i-lucide-bookmark"
|
|
1075
|
+
}, {
|
|
1076
|
+
default: withCtx(() => [
|
|
1077
|
+
createVNode("span", { class: "text-muted" }, toDisplayString(__props.testRun.metadata.relatedIssue), 1)
|
|
1078
|
+
]),
|
|
1079
|
+
_: 1
|
|
1080
|
+
})) : createCommentVNode("", true),
|
|
1081
|
+
unref(showStorage) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1082
|
+
key: 5,
|
|
1083
|
+
label: "Storage"
|
|
1084
|
+
}, {
|
|
1085
|
+
default: withCtx(() => [
|
|
1086
|
+
createVNode(_component_RunStorageChip, {
|
|
1087
|
+
"storage-stats": unref(storageStats),
|
|
1088
|
+
reports: __props.allReports,
|
|
1089
|
+
finalizing: __props.finalizing
|
|
1090
|
+
}, null, 8, ["storage-stats", "reports", "finalizing"])
|
|
1091
|
+
]),
|
|
1092
|
+
_: 1
|
|
1093
|
+
})) : createCommentVNode("", true),
|
|
1094
|
+
createVNode(_component_MetaStripGroup, {
|
|
1095
|
+
label: "Links",
|
|
1096
|
+
icon: "i-lucide-link",
|
|
1097
|
+
help: "run.metadata"
|
|
1098
|
+
}, {
|
|
1099
|
+
default: withCtx(() => [
|
|
1100
|
+
createVNode(_component_EntityLinks, {
|
|
1101
|
+
"entity-type": "test_run",
|
|
1102
|
+
"entity-id": __props.testRun.id,
|
|
1103
|
+
links: __props.testRun.links ?? null,
|
|
1104
|
+
onUpdated: ($event) => _ctx.$emit("label-updated")
|
|
1105
|
+
}, null, 8, ["entity-id", "links", "onUpdated"])
|
|
1106
|
+
]),
|
|
1107
|
+
_: 1
|
|
1108
|
+
}),
|
|
1109
|
+
unref(customData) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1110
|
+
key: 6,
|
|
1111
|
+
label: "Custom data"
|
|
1112
|
+
}, {
|
|
1113
|
+
default: withCtx(() => [
|
|
1114
|
+
createVNode(_component_UButton, {
|
|
1115
|
+
size: "xs",
|
|
1116
|
+
variant: "ghost",
|
|
1117
|
+
color: "neutral",
|
|
1118
|
+
icon: __props.showCustomData ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
|
|
1119
|
+
onClick: ($event) => emit("update:showCustomData", !__props.showCustomData)
|
|
1120
|
+
}, {
|
|
1121
|
+
default: withCtx(() => [
|
|
1122
|
+
createTextVNode(" Custom data ")
|
|
1123
|
+
]),
|
|
1124
|
+
_: 1
|
|
1125
|
+
}, 8, ["icon", "onClick"])
|
|
1126
|
+
]),
|
|
1127
|
+
_: 1
|
|
1128
|
+
})) : createCommentVNode("", true)
|
|
1129
|
+
];
|
|
1130
|
+
}
|
|
1131
|
+
}),
|
|
1132
|
+
_: 1
|
|
1133
|
+
}, _parent3, _scopeId2));
|
|
1134
|
+
if (__props.showCustomData && unref(customData)) {
|
|
1135
|
+
_push3(`<div class="mt-2"${_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(unref(customData), null, 2))}</pre></div></div>`);
|
|
1136
|
+
} else {
|
|
1137
|
+
_push3(`<!---->`);
|
|
1138
|
+
}
|
|
1139
|
+
} else {
|
|
1140
|
+
return [
|
|
1141
|
+
createVNode(_component_SummaryMetaStrip, null, {
|
|
1142
|
+
default: withCtx(() => [
|
|
1143
|
+
unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1144
|
+
key: 0,
|
|
1145
|
+
label: "CI & environment",
|
|
1146
|
+
icon: "i-lucide-cloud",
|
|
1147
|
+
help: "run.ci-env"
|
|
1148
|
+
}, {
|
|
1149
|
+
default: withCtx(() => [
|
|
1150
|
+
__props.testRun?.environment ? (openBlock(), createBlock("span", {
|
|
1151
|
+
key: 0,
|
|
1152
|
+
class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
|
|
1153
|
+
}, toDisplayString(__props.testRun.environment), 1)) : createCommentVNode("", true),
|
|
1154
|
+
unref(ci)?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(unref(ci).provider), 1)) : createCommentVNode("", true),
|
|
1155
|
+
unref(ci)?.buildNumber || unref(ci)?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
1156
|
+
createVNode("span", { class: "text-dimmed" }, "·"),
|
|
1157
|
+
unref(ci)?.buildUrl ? (openBlock(), createBlock("a", {
|
|
1158
|
+
key: 0,
|
|
1159
|
+
href: unref(ci).buildUrl,
|
|
1160
|
+
target: "_blank",
|
|
1161
|
+
class: "text-primary hover:underline"
|
|
1162
|
+
}, toDisplayString(unref(ci)?.buildNumber ? `Build #${unref(ci).buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(unref(ci).buildNumber), 1))
|
|
1163
|
+
], 64)) : createCommentVNode("", true),
|
|
1164
|
+
unref(ci)?.workflow || unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
|
|
1165
|
+
createVNode("span", { class: "text-dimmed" }, "·"),
|
|
1166
|
+
createVNode("span", { class: "text-muted" }, [
|
|
1167
|
+
unref(ci)?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
1168
|
+
createTextVNode(toDisplayString(unref(ci).workflow), 1)
|
|
1169
|
+
], 64)) : createCommentVNode("", true),
|
|
1170
|
+
unref(ci)?.workflow && unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
1171
|
+
createTextVNode(" · ")
|
|
1172
|
+
], 64)) : createCommentVNode("", true),
|
|
1173
|
+
unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
1174
|
+
createTextVNode(toDisplayString(unref(ci).jobName), 1)
|
|
1175
|
+
], 64)) : createCommentVNode("", true)
|
|
1176
|
+
])
|
|
1177
|
+
], 64)) : createCommentVNode("", true)
|
|
1178
|
+
]),
|
|
1179
|
+
_: 1
|
|
1180
|
+
})) : createCommentVNode("", true),
|
|
1181
|
+
unref(scm) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1182
|
+
key: 1,
|
|
1183
|
+
label: "Source",
|
|
1184
|
+
icon: "i-lucide-git-branch"
|
|
1185
|
+
}, {
|
|
1186
|
+
default: withCtx(() => [
|
|
1187
|
+
unref(scm).branch ? (openBlock(), createBlock("span", {
|
|
1188
|
+
key: 0,
|
|
1189
|
+
class: "font-medium"
|
|
1190
|
+
}, toDisplayString(unref(scm).branch), 1)) : createCommentVNode("", true),
|
|
1191
|
+
unref(scm).commit ? (openBlock(), createBlock("code", {
|
|
1192
|
+
key: 1,
|
|
1193
|
+
class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
|
|
1194
|
+
title: unref(scm).commit
|
|
1195
|
+
}, toDisplayString(unref(scm).commit.length >= 8 ? unref(scm).commit.substring(0, 8) : unref(scm).commit), 9, ["title"])) : createCommentVNode("", true),
|
|
1196
|
+
unref(scm).author ? (openBlock(), createBlock("span", {
|
|
1197
|
+
key: 2,
|
|
1198
|
+
class: "text-muted"
|
|
1199
|
+
}, toDisplayString(unref(scm).author), 1)) : createCommentVNode("", true),
|
|
1200
|
+
unref(scm).commitMessage ? (openBlock(), createBlock("span", {
|
|
1201
|
+
key: 3,
|
|
1202
|
+
class: "text-xs text-dimmed truncate max-w-[40ch]",
|
|
1203
|
+
title: unref(scm).commitMessage
|
|
1204
|
+
}, toDisplayString(unref(scm).commitMessage), 9, ["title"])) : createCommentVNode("", true)
|
|
1205
|
+
]),
|
|
1206
|
+
_: 1
|
|
1207
|
+
})) : createCommentVNode("", true),
|
|
1208
|
+
unref(showVersions) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1209
|
+
key: 2,
|
|
1210
|
+
label: "Tooling versions",
|
|
1211
|
+
icon: "i-lucide-tag"
|
|
1212
|
+
}, {
|
|
1213
|
+
default: withCtx(() => [
|
|
1214
|
+
createVNode("span", { class: "text-muted whitespace-nowrap" }, [
|
|
1215
|
+
__props.testRun?.playwrightVersion ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
1216
|
+
createTextVNode("Playwright v" + toDisplayString(__props.testRun.playwrightVersion), 1)
|
|
1217
|
+
], 64)) : createCommentVNode("", true),
|
|
1218
|
+
__props.testRun?.playwrightVersion && __props.testRun?.reporterVersion ? (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
1219
|
+
createTextVNode(" · ")
|
|
1220
|
+
], 64)) : createCommentVNode("", true),
|
|
1221
|
+
__props.testRun?.reporterVersion ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
1222
|
+
createTextVNode("Piwi v" + toDisplayString(__props.testRun.reporterVersion), 1)
|
|
1223
|
+
], 64)) : createCommentVNode("", true)
|
|
1224
|
+
])
|
|
1225
|
+
]),
|
|
1226
|
+
_: 1
|
|
1227
|
+
})) : createCommentVNode("", true),
|
|
1228
|
+
unref(tags)?.length ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1229
|
+
key: 3,
|
|
1230
|
+
label: "Tags",
|
|
1231
|
+
icon: "i-lucide-tags"
|
|
1232
|
+
}, {
|
|
1233
|
+
default: withCtx(() => [
|
|
1234
|
+
(openBlock(true), createBlock(Fragment, null, renderList(unref(tags), (tag) => {
|
|
1235
|
+
return openBlock(), createBlock(_component_UBadge, {
|
|
1236
|
+
key: tag,
|
|
1237
|
+
color: "neutral",
|
|
1238
|
+
variant: "soft",
|
|
1239
|
+
size: "sm"
|
|
1240
|
+
}, {
|
|
1241
|
+
default: withCtx(() => [
|
|
1242
|
+
createTextVNode(toDisplayString(tag), 1)
|
|
1243
|
+
]),
|
|
1244
|
+
_: 2
|
|
1245
|
+
}, 1024);
|
|
1246
|
+
}), 128))
|
|
1247
|
+
]),
|
|
1248
|
+
_: 1
|
|
1249
|
+
})) : createCommentVNode("", true),
|
|
1250
|
+
__props.testRun?.metadata?.relatedIssue ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1251
|
+
key: 4,
|
|
1252
|
+
label: "Related issue",
|
|
1253
|
+
icon: "i-lucide-bookmark"
|
|
1254
|
+
}, {
|
|
1255
|
+
default: withCtx(() => [
|
|
1256
|
+
createVNode("span", { class: "text-muted" }, toDisplayString(__props.testRun.metadata.relatedIssue), 1)
|
|
1257
|
+
]),
|
|
1258
|
+
_: 1
|
|
1259
|
+
})) : createCommentVNode("", true),
|
|
1260
|
+
unref(showStorage) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1261
|
+
key: 5,
|
|
1262
|
+
label: "Storage"
|
|
1263
|
+
}, {
|
|
1264
|
+
default: withCtx(() => [
|
|
1265
|
+
createVNode(_component_RunStorageChip, {
|
|
1266
|
+
"storage-stats": unref(storageStats),
|
|
1267
|
+
reports: __props.allReports,
|
|
1268
|
+
finalizing: __props.finalizing
|
|
1269
|
+
}, null, 8, ["storage-stats", "reports", "finalizing"])
|
|
1270
|
+
]),
|
|
1271
|
+
_: 1
|
|
1272
|
+
})) : createCommentVNode("", true),
|
|
1273
|
+
createVNode(_component_MetaStripGroup, {
|
|
1274
|
+
label: "Links",
|
|
1275
|
+
icon: "i-lucide-link",
|
|
1276
|
+
help: "run.metadata"
|
|
1277
|
+
}, {
|
|
1278
|
+
default: withCtx(() => [
|
|
1279
|
+
createVNode(_component_EntityLinks, {
|
|
1280
|
+
"entity-type": "test_run",
|
|
1281
|
+
"entity-id": __props.testRun.id,
|
|
1282
|
+
links: __props.testRun.links ?? null,
|
|
1283
|
+
onUpdated: ($event) => _ctx.$emit("label-updated")
|
|
1284
|
+
}, null, 8, ["entity-id", "links", "onUpdated"])
|
|
1285
|
+
]),
|
|
1286
|
+
_: 1
|
|
1287
|
+
}),
|
|
1288
|
+
unref(customData) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
1289
|
+
key: 6,
|
|
1290
|
+
label: "Custom data"
|
|
1291
|
+
}, {
|
|
1292
|
+
default: withCtx(() => [
|
|
1293
|
+
createVNode(_component_UButton, {
|
|
1294
|
+
size: "xs",
|
|
1295
|
+
variant: "ghost",
|
|
1296
|
+
color: "neutral",
|
|
1297
|
+
icon: __props.showCustomData ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
|
|
1298
|
+
onClick: ($event) => emit("update:showCustomData", !__props.showCustomData)
|
|
1299
|
+
}, {
|
|
1300
|
+
default: withCtx(() => [
|
|
1301
|
+
createTextVNode(" Custom data ")
|
|
1302
|
+
]),
|
|
1303
|
+
_: 1
|
|
1304
|
+
}, 8, ["icon", "onClick"])
|
|
1305
|
+
]),
|
|
1306
|
+
_: 1
|
|
1307
|
+
})) : createCommentVNode("", true)
|
|
1308
|
+
]),
|
|
1309
|
+
_: 1
|
|
1310
|
+
}),
|
|
1311
|
+
__props.showCustomData && unref(customData) ? (openBlock(), createBlock("div", {
|
|
1312
|
+
key: 0,
|
|
1313
|
+
class: "mt-2"
|
|
1314
|
+
}, [
|
|
1315
|
+
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" }, [
|
|
1316
|
+
createVNode("pre", { class: "m-0" }, toDisplayString(JSON.stringify(unref(customData), null, 2)), 1)
|
|
1317
|
+
])
|
|
1318
|
+
])) : createCommentVNode("", true)
|
|
1319
|
+
];
|
|
1320
|
+
}
|
|
1321
|
+
}),
|
|
1322
|
+
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
|
1323
|
+
if (_push3) {
|
|
1324
|
+
_push3(`<div class="space-y-3"${_scopeId2}><div class="flex items-start justify-between gap-x-3 gap-y-2 flex-wrap pr-8"${_scopeId2}><div class="min-w-0 flex-1 basis-64"${_scopeId2}><div class="flex items-center gap-2 flex-wrap"${_scopeId2}>`);
|
|
1325
|
+
_push3(ssrRenderComponent(_component_StatusChip, {
|
|
1326
|
+
status: __props.testRun?.status ?? ""
|
|
1327
|
+
}, null, _parent3, _scopeId2));
|
|
1328
|
+
_push3(`<h2 class="text-base font-bold shrink-0 flex items-center gap-1"${_scopeId2}> Run #${ssrInterpolate(__props.testRun?.id)} `);
|
|
1329
|
+
if (unref(editingLabel)) {
|
|
1330
|
+
_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}>`);
|
|
1331
|
+
if (unref(savingLabel)) {
|
|
1332
|
+
_push3(ssrRenderComponent(_component_UIcon, {
|
|
1333
|
+
name: "i-lucide-loader-circle",
|
|
1334
|
+
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
1335
|
+
}, null, _parent3, _scopeId2));
|
|
1336
|
+
} else {
|
|
1337
|
+
_push3(`<!---->`);
|
|
1338
|
+
}
|
|
1339
|
+
_push3(`<!--]-->`);
|
|
1340
|
+
} else {
|
|
1341
|
+
_push3(`<!--[-->`);
|
|
1342
|
+
if (__props.testRun?.label) {
|
|
1343
|
+
_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>`);
|
|
1344
|
+
} else {
|
|
1345
|
+
_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>`);
|
|
1346
|
+
}
|
|
1347
|
+
_push3(`<!--]-->`);
|
|
1348
|
+
}
|
|
1349
|
+
_push3(ssrRenderComponent(_component_HelpHint, { topic: "run.summary" }, null, _parent3, _scopeId2));
|
|
1350
|
+
_push3(`</h2>`);
|
|
1351
|
+
if (__props.testRun?.shardTotal && __props.testRun.shardTotal > 1) {
|
|
1352
|
+
_push3(ssrRenderComponent(_component_UBadge, {
|
|
1353
|
+
color: "neutral",
|
|
1354
|
+
variant: "soft",
|
|
1355
|
+
size: "sm",
|
|
1356
|
+
class: "shrink-0",
|
|
1357
|
+
title: `Shard ${__props.testRun.shardsFinished ?? 0}/${__props.testRun.shardTotal}`
|
|
1358
|
+
}, {
|
|
1359
|
+
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
1360
|
+
if (_push4) {
|
|
1361
|
+
_push4(ssrRenderComponent(_component_UIcon, {
|
|
1362
|
+
name: "i-lucide-layout-grid",
|
|
1363
|
+
class: "size-3 mr-1"
|
|
1364
|
+
}, null, _parent4, _scopeId3));
|
|
1365
|
+
_push4(` ${ssrInterpolate(__props.testRun.shardsFinished ?? 0)}/${ssrInterpolate(__props.testRun.shardTotal)}`);
|
|
1366
|
+
} else {
|
|
1367
|
+
return [
|
|
1368
|
+
createVNode(_component_UIcon, {
|
|
1369
|
+
name: "i-lucide-layout-grid",
|
|
1370
|
+
class: "size-3 mr-1"
|
|
1371
|
+
}),
|
|
1372
|
+
createTextVNode(" " + toDisplayString(__props.testRun.shardsFinished ?? 0) + "/" + toDisplayString(__props.testRun.shardTotal), 1)
|
|
1373
|
+
];
|
|
1374
|
+
}
|
|
1375
|
+
}),
|
|
1376
|
+
_: 1
|
|
1377
|
+
}, _parent3, _scopeId2));
|
|
1378
|
+
} else {
|
|
1379
|
+
_push3(`<!---->`);
|
|
1380
|
+
}
|
|
1381
|
+
if (__props.testRun?.precedingMarker) {
|
|
1382
|
+
_push3(ssrRenderComponent(_component_UTooltip, {
|
|
1383
|
+
text: `This run started after: ${__props.testRun.precedingMarker.label}`
|
|
1384
|
+
}, {
|
|
1385
|
+
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
1386
|
+
if (_push4) {
|
|
1387
|
+
_push4(ssrRenderComponent(_component_NuxtLink, {
|
|
1388
|
+
to: `/projects/${__props.testRun.projectId}?tab=timeline`,
|
|
1389
|
+
class: "shrink-0 inline-flex items-center gap-1"
|
|
1390
|
+
}, {
|
|
1391
|
+
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
1392
|
+
if (_push5) {
|
|
1393
|
+
_push5(`<span class="text-xs text-muted"${_scopeId4}>After</span>`);
|
|
1394
|
+
_push5(ssrRenderComponent(_component_MarkerBadge, {
|
|
1395
|
+
marker: __props.testRun.precedingMarker,
|
|
1396
|
+
size: "xs"
|
|
1397
|
+
}, null, _parent5, _scopeId4));
|
|
1398
|
+
} else {
|
|
1399
|
+
return [
|
|
1400
|
+
createVNode("span", { class: "text-xs text-muted" }, "After"),
|
|
1401
|
+
createVNode(_component_MarkerBadge, {
|
|
1402
|
+
marker: __props.testRun.precedingMarker,
|
|
1403
|
+
size: "xs"
|
|
1404
|
+
}, null, 8, ["marker"])
|
|
1405
|
+
];
|
|
1406
|
+
}
|
|
1407
|
+
}),
|
|
1408
|
+
_: 1
|
|
1409
|
+
}, _parent4, _scopeId3));
|
|
1410
|
+
} else {
|
|
1411
|
+
return [
|
|
1412
|
+
createVNode(_component_NuxtLink, {
|
|
1413
|
+
to: `/projects/${__props.testRun.projectId}?tab=timeline`,
|
|
1414
|
+
class: "shrink-0 inline-flex items-center gap-1"
|
|
1415
|
+
}, {
|
|
1416
|
+
default: withCtx(() => [
|
|
1417
|
+
createVNode("span", { class: "text-xs text-muted" }, "After"),
|
|
1418
|
+
createVNode(_component_MarkerBadge, {
|
|
1419
|
+
marker: __props.testRun.precedingMarker,
|
|
1420
|
+
size: "xs"
|
|
1421
|
+
}, null, 8, ["marker"])
|
|
1422
|
+
]),
|
|
1423
|
+
_: 1
|
|
1424
|
+
}, 8, ["to"])
|
|
1425
|
+
];
|
|
1426
|
+
}
|
|
1427
|
+
}),
|
|
1428
|
+
_: 1
|
|
1429
|
+
}, _parent3, _scopeId2));
|
|
1430
|
+
} else {
|
|
1431
|
+
_push3(`<!---->`);
|
|
1432
|
+
}
|
|
1433
|
+
_push3(`</div><p class="mt-1 text-xs text-muted flex items-center gap-1.5 flex-wrap"${_scopeId2}><span${_scopeId2}>Started ${ssrInterpolate(("prettyDateFormat" in _ctx ? _ctx.prettyDateFormat : unref(prettyDateFormat))(__props.testRun?.startTime))}</span>`);
|
|
1434
|
+
_push3(ssrRenderComponent(_component_ClientOnly, null, {}, _parent3, _scopeId2));
|
|
1435
|
+
_push3(`</p></div><div class="flex items-center gap-1.5 shrink-0"${_scopeId2}>`);
|
|
1436
|
+
_push3(ssrRenderComponent(_component_UTooltip, {
|
|
1437
|
+
text: unref(copied) ? "Copied!" : "Copy run summary"
|
|
1438
|
+
}, {
|
|
1439
|
+
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
1440
|
+
if (_push4) {
|
|
1441
|
+
_push4(ssrRenderComponent(_component_UButton, {
|
|
558
1442
|
size: "xs",
|
|
559
1443
|
variant: "ghost",
|
|
560
1444
|
color: "neutral",
|
|
561
1445
|
icon: unref(copied) ? "i-lucide-check" : "i-lucide-clipboard",
|
|
562
|
-
|
|
1446
|
+
"aria-label": "Copy run summary",
|
|
1447
|
+
class: "text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
563
1448
|
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
564
1449
|
}, null, _parent4, _scopeId3));
|
|
565
1450
|
} else {
|
|
@@ -569,7 +1454,8 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
569
1454
|
variant: "ghost",
|
|
570
1455
|
color: "neutral",
|
|
571
1456
|
icon: unref(copied) ? "i-lucide-check" : "i-lucide-clipboard",
|
|
572
|
-
|
|
1457
|
+
"aria-label": "Copy run summary",
|
|
1458
|
+
class: "text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
573
1459
|
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
574
1460
|
}, null, 8, ["icon", "onClick"])
|
|
575
1461
|
];
|
|
@@ -609,14 +1495,15 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
609
1495
|
variant: "subtle",
|
|
610
1496
|
icon: unref(retryCopied) ? "i-lucide-check" : "i-lucide-play",
|
|
611
1497
|
title: unref(retryTitle),
|
|
1498
|
+
"aria-label": "Retry",
|
|
612
1499
|
onClick: ($event) => copyRetryCommand()
|
|
613
1500
|
}, {
|
|
614
1501
|
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
615
1502
|
if (_push5) {
|
|
616
|
-
_push5(
|
|
1503
|
+
_push5(`<span class="hidden @2xl:inline"${_scopeId4}>Retry</span>`);
|
|
617
1504
|
} else {
|
|
618
1505
|
return [
|
|
619
|
-
|
|
1506
|
+
createVNode("span", { class: "hidden @2xl:inline" }, "Retry")
|
|
620
1507
|
];
|
|
621
1508
|
}
|
|
622
1509
|
}),
|
|
@@ -630,10 +1517,11 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
630
1517
|
variant: "subtle",
|
|
631
1518
|
icon: unref(retryCopied) ? "i-lucide-check" : "i-lucide-play",
|
|
632
1519
|
title: unref(retryTitle),
|
|
1520
|
+
"aria-label": "Retry",
|
|
633
1521
|
onClick: ($event) => copyRetryCommand()
|
|
634
1522
|
}, {
|
|
635
1523
|
default: withCtx(() => [
|
|
636
|
-
|
|
1524
|
+
createVNode("span", { class: "hidden @2xl:inline" }, "Retry")
|
|
637
1525
|
]),
|
|
638
1526
|
_: 1
|
|
639
1527
|
}, 8, ["icon", "title", "onClick"])
|
|
@@ -645,38 +1533,151 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
645
1533
|
} else {
|
|
646
1534
|
_push3(`<!---->`);
|
|
647
1535
|
}
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
"rounded-lg p-3 text-left w-full h-full transition-colors cursor-pointer"
|
|
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>`);
|
|
655
|
-
if ((__props.testRun?.flakyTests ?? 0) > 0) {
|
|
656
|
-
_push3(`<button class="${ssrRenderClass([
|
|
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",
|
|
658
|
-
"absolute top-1.5 right-1.5 inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-semibold leading-none tabular-nums transition-colors cursor-pointer"
|
|
659
|
-
])}" title="Flaky — passed only after a retry (a subset of passed). Click to filter."${_scopeId2}>`);
|
|
660
|
-
_push3(ssrRenderComponent(_component_UIcon, {
|
|
661
|
-
name: "i-lucide-shuffle",
|
|
662
|
-
class: "size-3"
|
|
1536
|
+
if (unref(failedCases).length > 0) {
|
|
1537
|
+
_push3(ssrRenderComponent(_component_DesktopRunLocallyButton, {
|
|
1538
|
+
"project-id": __props.testRun?.project?.id,
|
|
1539
|
+
"project-label": __props.testRun?.project?.label ?? __props.testRun?.project?.name,
|
|
1540
|
+
cases: unref(failedCases)
|
|
663
1541
|
}, null, _parent3, _scopeId2));
|
|
664
|
-
_push3(` ${ssrInterpolate(__props.testRun?.flakyTests ?? 0)}</button>`);
|
|
665
1542
|
} else {
|
|
666
1543
|
_push3(`<!---->`);
|
|
667
1544
|
}
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
1545
|
+
if (unref(primaryReport)) {
|
|
1546
|
+
_push3(ssrRenderComponent(_component_UButton, {
|
|
1547
|
+
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(unref(primaryReport).path, null, unref(config).app?.baseURL),
|
|
1548
|
+
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(unref(primaryReport).type),
|
|
1549
|
+
target: "_blank",
|
|
1550
|
+
size: "xs",
|
|
1551
|
+
color: "primary",
|
|
1552
|
+
variant: "outline",
|
|
1553
|
+
"aria-label": unref(primaryReport).label,
|
|
1554
|
+
title: unref(primaryReport).size ? `${unref(primaryReport).label} · ${("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(unref(primaryReport).size)}` : unref(primaryReport).label
|
|
1555
|
+
}, {
|
|
1556
|
+
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
1557
|
+
if (_push4) {
|
|
1558
|
+
_push4(`<span class="hidden @2xl:inline"${_scopeId3}>${ssrInterpolate(unref(primaryReport).label)}</span>`);
|
|
1559
|
+
} else {
|
|
1560
|
+
return [
|
|
1561
|
+
createVNode("span", { class: "hidden @2xl:inline" }, toDisplayString(unref(primaryReport).label), 1)
|
|
1562
|
+
];
|
|
1563
|
+
}
|
|
1564
|
+
}),
|
|
1565
|
+
_: 1
|
|
1566
|
+
}, _parent3, _scopeId2));
|
|
1567
|
+
} else {
|
|
1568
|
+
_push3(`<!---->`);
|
|
1569
|
+
}
|
|
1570
|
+
_push3(`</div></div>`);
|
|
1571
|
+
_push3(ssrRenderComponent(_component_StatTileGrid, { "min-tile-width": "7.5rem" }, {
|
|
1572
|
+
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
1573
|
+
if (_push4) {
|
|
1574
|
+
_push4(`<button class="${ssrRenderClass([
|
|
1575
|
+
__props.activeFilter === "all" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated",
|
|
1576
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer"
|
|
1577
|
+
])}"${_scopeId3}><p class="text-xs font-medium text-zinc-500 uppercase tracking-wider"${_scopeId3}>Total</p><p class="text-xl font-bold mt-0.5"${_scopeId3}>${ssrInterpolate(__props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0)}</p></button><div class="relative"${_scopeId3}><button class="${ssrRenderClass([
|
|
1578
|
+
__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",
|
|
1579
|
+
"rounded-lg p-3 text-left w-full h-full transition-colors cursor-pointer"
|
|
1580
|
+
])}"${_scopeId3}><p class="text-xs font-medium text-emerald-700 dark:text-emerald-400 uppercase tracking-wider"${_scopeId3}> Passed </p><p class="text-xl font-bold mt-0.5 text-emerald-600 dark:text-emerald-400"${_scopeId3}>${ssrInterpolate(__props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0)}</p></button>`);
|
|
1581
|
+
if ((__props.testRun?.flakyTests ?? 0) > 0) {
|
|
1582
|
+
_push4(`<button class="${ssrRenderClass([
|
|
1583
|
+
__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",
|
|
1584
|
+
"absolute top-1.5 right-1.5 inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-semibold leading-none tabular-nums transition-colors cursor-pointer"
|
|
1585
|
+
])}" title="Flaky — passed only after a retry (a subset of passed). Click to filter."${_scopeId3}>`);
|
|
1586
|
+
_push4(ssrRenderComponent(_component_UIcon, {
|
|
1587
|
+
name: "i-lucide-shuffle",
|
|
1588
|
+
class: "size-3"
|
|
1589
|
+
}, null, _parent4, _scopeId3));
|
|
1590
|
+
_push4(` ${ssrInterpolate(__props.testRun?.flakyTests ?? 0)}</button>`);
|
|
1591
|
+
} else {
|
|
1592
|
+
_push4(`<!---->`);
|
|
1593
|
+
}
|
|
1594
|
+
_push4(`</div><button class="${ssrRenderClass([
|
|
1595
|
+
__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",
|
|
1596
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer"
|
|
1597
|
+
])}"${_scopeId3}><p class="text-xs font-medium text-rose-700 dark:text-rose-400 uppercase tracking-wider"${_scopeId3}>Failed</p><p class="text-xl font-bold mt-0.5 text-rose-600 dark:text-rose-400"${_scopeId3}>${ssrInterpolate(__props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0)}</p></button><button class="${ssrRenderClass([
|
|
1598
|
+
__props.activeFilter === "skipped" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated",
|
|
1599
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer"
|
|
1600
|
+
])}"${_scopeId3}><p class="text-xs font-medium text-zinc-500 uppercase tracking-wider"${_scopeId3}>Skipped</p><p class="text-xl font-bold mt-0.5 text-zinc-600 dark:text-zinc-400"${_scopeId3}>${ssrInterpolate(__props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0)}</p></button><button class="${ssrRenderClass([
|
|
1601
|
+
__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",
|
|
1602
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer"
|
|
1603
|
+
])}" title="Tests that never ran (maxFailures cutoff or a serial-group failure)"${_scopeId3}><p class="text-xs font-medium text-amber-700 dark:text-amber-400 uppercase tracking-wider"${_scopeId3}>Didn't run</p><p class="text-xl font-bold mt-0.5 text-amber-600 dark:text-amber-400"${_scopeId3}>${ssrInterpolate(__props.testRun?.didNotRunTests ?? 0)}</p></button>`);
|
|
1604
|
+
} else {
|
|
1605
|
+
return [
|
|
1606
|
+
createVNode("button", {
|
|
1607
|
+
class: [
|
|
1608
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1609
|
+
__props.activeFilter === "all" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
1610
|
+
],
|
|
1611
|
+
onClick: ($event) => emit("filter-status", "all")
|
|
1612
|
+
}, [
|
|
1613
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 uppercase tracking-wider" }, "Total"),
|
|
1614
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0), 1)
|
|
1615
|
+
], 10, ["onClick"]),
|
|
1616
|
+
createVNode("div", { class: "relative" }, [
|
|
1617
|
+
createVNode("button", {
|
|
1618
|
+
class: [
|
|
1619
|
+
"rounded-lg p-3 text-left w-full h-full transition-colors cursor-pointer",
|
|
1620
|
+
__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"
|
|
1621
|
+
],
|
|
1622
|
+
onClick: ($event) => emit("filter-status", "passed")
|
|
1623
|
+
}, [
|
|
1624
|
+
createVNode("p", { class: "text-xs font-medium text-emerald-700 dark:text-emerald-400 uppercase tracking-wider" }, " Passed "),
|
|
1625
|
+
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)
|
|
1626
|
+
], 10, ["onClick"]),
|
|
1627
|
+
(__props.testRun?.flakyTests ?? 0) > 0 ? (openBlock(), createBlock("button", {
|
|
1628
|
+
key: 0,
|
|
1629
|
+
class: [
|
|
1630
|
+
"absolute top-1.5 right-1.5 inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-semibold leading-none tabular-nums transition-colors cursor-pointer",
|
|
1631
|
+
__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"
|
|
1632
|
+
],
|
|
1633
|
+
title: "Flaky — passed only after a retry (a subset of passed). Click to filter.",
|
|
1634
|
+
onClick: ($event) => emit("filter-status", "flaky")
|
|
1635
|
+
}, [
|
|
1636
|
+
createVNode(_component_UIcon, {
|
|
1637
|
+
name: "i-lucide-shuffle",
|
|
1638
|
+
class: "size-3"
|
|
1639
|
+
}),
|
|
1640
|
+
createTextVNode(" " + toDisplayString(__props.testRun?.flakyTests ?? 0), 1)
|
|
1641
|
+
], 10, ["onClick"])) : createCommentVNode("", true)
|
|
1642
|
+
]),
|
|
1643
|
+
createVNode("button", {
|
|
1644
|
+
class: [
|
|
1645
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1646
|
+
__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"
|
|
1647
|
+
],
|
|
1648
|
+
onClick: ($event) => emit("filter-status", "failed")
|
|
1649
|
+
}, [
|
|
1650
|
+
createVNode("p", { class: "text-xs font-medium text-rose-700 dark:text-rose-400 uppercase tracking-wider" }, "Failed"),
|
|
1651
|
+
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)
|
|
1652
|
+
], 10, ["onClick"]),
|
|
1653
|
+
createVNode("button", {
|
|
1654
|
+
class: [
|
|
1655
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1656
|
+
__props.activeFilter === "skipped" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
1657
|
+
],
|
|
1658
|
+
onClick: ($event) => emit("filter-status", "skipped")
|
|
1659
|
+
}, [
|
|
1660
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 uppercase tracking-wider" }, "Skipped"),
|
|
1661
|
+
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)
|
|
1662
|
+
], 10, ["onClick"]),
|
|
1663
|
+
createVNode("button", {
|
|
1664
|
+
class: [
|
|
1665
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1666
|
+
__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"
|
|
1667
|
+
],
|
|
1668
|
+
title: "Tests that never ran (maxFailures cutoff or a serial-group failure)",
|
|
1669
|
+
onClick: ($event) => emit("filter-status", "didnotrun")
|
|
1670
|
+
}, [
|
|
1671
|
+
createVNode("p", { class: "text-xs font-medium text-amber-700 dark:text-amber-400 uppercase tracking-wider" }, "Didn't run"),
|
|
1672
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5 text-amber-600 dark:text-amber-400" }, toDisplayString(__props.testRun?.didNotRunTests ?? 0), 1)
|
|
1673
|
+
], 10, ["onClick"])
|
|
1674
|
+
];
|
|
1675
|
+
}
|
|
1676
|
+
}),
|
|
1677
|
+
_: 1
|
|
1678
|
+
}, _parent3, _scopeId2));
|
|
678
1679
|
if (__props.testRun) {
|
|
679
|
-
_push3(`<div class="flex items-center gap-
|
|
1680
|
+
_push3(`<div class="flex items-center gap-x-4 gap-y-1.5 flex-wrap"${_scopeId2}><div class="flex-1 basis-60 min-w-44 max-w-xl"${_scopeId2}>`);
|
|
680
1681
|
_push3(ssrRenderComponent(_component_TestStatusBar, {
|
|
681
1682
|
passed: __props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0,
|
|
682
1683
|
failed: __props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0,
|
|
@@ -685,7 +1686,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
685
1686
|
"did-not-run": __props.testRun?.didNotRunTests ?? 0,
|
|
686
1687
|
total: __props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0
|
|
687
1688
|
}, null, _parent3, _scopeId2));
|
|
688
|
-
_push3(`</div><div class="flex items-center gap-3 text-xs shrink-0"${_scopeId2}><div class="flex items-center gap-1"${_scopeId2}>`);
|
|
1689
|
+
_push3(`</div><div class="flex items-center flex-wrap gap-x-3 gap-y-1 text-xs shrink-0"${_scopeId2}><div class="flex items-center gap-1"${_scopeId2}>`);
|
|
689
1690
|
_push3(ssrRenderComponent(_component_UIcon, {
|
|
690
1691
|
name: "i-lucide-clock",
|
|
691
1692
|
class: "size-3.5 text-zinc-400"
|
|
@@ -701,7 +1702,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
701
1702
|
name: "i-lucide-gauge",
|
|
702
1703
|
class: "size-3.5 text-zinc-400"
|
|
703
1704
|
}, null, _parent3, _scopeId2));
|
|
704
|
-
_push3(`<span class="text-zinc-500
|
|
1705
|
+
_push3(`<span class="text-zinc-500"${_scopeId2}>Avg</span>`);
|
|
705
1706
|
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
706
1707
|
ms: __props.testRun.avgTestDuration,
|
|
707
1708
|
class: "font-medium"
|
|
@@ -716,7 +1717,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
716
1717
|
name: "i-lucide-arrow-up-right",
|
|
717
1718
|
class: "size-3.5 text-orange-500"
|
|
718
1719
|
}, null, _parent3, _scopeId2));
|
|
719
|
-
_push3(`<span class="text-zinc-500
|
|
1720
|
+
_push3(`<span class="text-zinc-500"${_scopeId2}>P90</span>`);
|
|
720
1721
|
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
721
1722
|
ms: __props.testRun.p90TestDuration,
|
|
722
1723
|
class: "font-medium text-orange-600 dark:text-orange-400",
|
|
@@ -732,7 +1733,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
732
1733
|
name: "i-lucide-clock",
|
|
733
1734
|
class: "size-3.5 text-amber-500"
|
|
734
1735
|
}, null, _parent3, _scopeId2));
|
|
735
|
-
_push3(`<span class="text-zinc-500
|
|
1736
|
+
_push3(`<span class="text-zinc-500"${_scopeId2}>Wasted</span>`);
|
|
736
1737
|
_push3(ssrRenderComponent(_component_DurationValue, {
|
|
737
1738
|
ms: __props.totalWastedTime,
|
|
738
1739
|
class: "font-medium text-amber-600 dark:text-amber-400",
|
|
@@ -746,283 +1747,315 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
746
1747
|
} else {
|
|
747
1748
|
_push3(`<!---->`);
|
|
748
1749
|
}
|
|
749
|
-
_push3(`</div
|
|
1750
|
+
_push3(`</div>`);
|
|
750
1751
|
} else {
|
|
751
1752
|
return [
|
|
752
1753
|
createVNode("div", { class: "space-y-3" }, [
|
|
753
|
-
createVNode("div", { class: "flex items-start gap-3" }, [
|
|
754
|
-
createVNode("div", { class: "
|
|
755
|
-
createVNode(
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
1754
|
+
createVNode("div", { class: "flex items-start justify-between gap-x-3 gap-y-2 flex-wrap pr-8" }, [
|
|
1755
|
+
createVNode("div", { class: "min-w-0 flex-1 basis-64" }, [
|
|
1756
|
+
createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
|
|
1757
|
+
createVNode(_component_StatusChip, {
|
|
1758
|
+
status: __props.testRun?.status ?? ""
|
|
1759
|
+
}, null, 8, ["status"]),
|
|
1760
|
+
createVNode("h2", { class: "text-base font-bold shrink-0 flex items-center gap-1" }, [
|
|
1761
|
+
createTextVNode(" Run #" + toDisplayString(__props.testRun?.id) + " ", 1),
|
|
1762
|
+
unref(editingLabel) ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
1763
|
+
withDirectives(createVNode("input", {
|
|
1764
|
+
ref_key: "labelInputRef",
|
|
1765
|
+
ref: labelInputRef,
|
|
1766
|
+
"onUpdate:modelValue": ($event) => isRef(labelInput) ? labelInput.value = $event : null,
|
|
1767
|
+
type: "text",
|
|
1768
|
+
placeholder: "Add a label...",
|
|
1769
|
+
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",
|
|
1770
|
+
onKeydown: onLabelKeydown,
|
|
1771
|
+
onBlur: saveLabel
|
|
1772
|
+
}, null, 40, ["onUpdate:modelValue"]), [
|
|
1773
|
+
[vModelText, unref(labelInput)]
|
|
1774
|
+
]),
|
|
1775
|
+
unref(savingLabel) ? (openBlock(), createBlock(_component_UIcon, {
|
|
1776
|
+
key: 0,
|
|
1777
|
+
name: "i-lucide-loader-circle",
|
|
1778
|
+
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
1779
|
+
})) : createCommentVNode("", true)
|
|
1780
|
+
], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
1781
|
+
__props.testRun?.label ? (openBlock(), createBlock("span", {
|
|
1782
|
+
key: 0,
|
|
1783
|
+
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",
|
|
1784
|
+
onClick: startEditLabel
|
|
1785
|
+
}, "— " + toDisplayString(__props.testRun.label), 1)) : (openBlock(), createBlock("button", {
|
|
1786
|
+
key: 1,
|
|
1787
|
+
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",
|
|
1788
|
+
title: "Add a label",
|
|
1789
|
+
onClick: startEditLabel
|
|
1790
|
+
}, " + label "))
|
|
1791
|
+
], 64)),
|
|
1792
|
+
createVNode(_component_HelpHint, { topic: "run.summary" })
|
|
1793
|
+
]),
|
|
1794
|
+
__props.testRun?.shardTotal && __props.testRun.shardTotal > 1 ? (openBlock(), createBlock(_component_UBadge, {
|
|
1795
|
+
key: 0,
|
|
1796
|
+
color: "neutral",
|
|
1797
|
+
variant: "soft",
|
|
1798
|
+
size: "sm",
|
|
1799
|
+
class: "shrink-0",
|
|
1800
|
+
title: `Shard ${__props.testRun.shardsFinished ?? 0}/${__props.testRun.shardTotal}`
|
|
1801
|
+
}, {
|
|
1802
|
+
default: withCtx(() => [
|
|
1803
|
+
createVNode(_component_UIcon, {
|
|
1804
|
+
name: "i-lucide-layout-grid",
|
|
1805
|
+
class: "size-3 mr-1"
|
|
1806
|
+
}),
|
|
1807
|
+
createTextVNode(" " + toDisplayString(__props.testRun.shardsFinished ?? 0) + "/" + toDisplayString(__props.testRun.shardTotal), 1)
|
|
1808
|
+
]),
|
|
1809
|
+
_: 1
|
|
1810
|
+
}, 8, ["title"])) : createCommentVNode("", true),
|
|
1811
|
+
__props.testRun?.precedingMarker ? (openBlock(), createBlock(_component_UTooltip, {
|
|
1812
|
+
key: 1,
|
|
1813
|
+
text: `This run started after: ${__props.testRun.precedingMarker.label}`
|
|
1814
|
+
}, {
|
|
1815
|
+
default: withCtx(() => [
|
|
1816
|
+
createVNode(_component_NuxtLink, {
|
|
1817
|
+
to: `/projects/${__props.testRun.projectId}?tab=timeline`,
|
|
1818
|
+
class: "shrink-0 inline-flex items-center gap-1"
|
|
1819
|
+
}, {
|
|
1820
|
+
default: withCtx(() => [
|
|
1821
|
+
createVNode("span", { class: "text-xs text-muted" }, "After"),
|
|
1822
|
+
createVNode(_component_MarkerBadge, {
|
|
1823
|
+
marker: __props.testRun.precedingMarker,
|
|
1824
|
+
size: "xs"
|
|
1825
|
+
}, null, 8, ["marker"])
|
|
775
1826
|
]),
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
name: "i-lucide-loader-circle",
|
|
779
|
-
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
780
|
-
})) : createCommentVNode("", true)
|
|
781
|
-
], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
782
|
-
__props.testRun?.label ? (openBlock(), createBlock("span", {
|
|
783
|
-
key: 0,
|
|
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",
|
|
785
|
-
onClick: startEditLabel
|
|
786
|
-
}, "— " + toDisplayString(__props.testRun.label), 1)) : (openBlock(), createBlock("button", {
|
|
787
|
-
key: 1,
|
|
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",
|
|
789
|
-
title: "Add a label",
|
|
790
|
-
onClick: startEditLabel
|
|
791
|
-
}, " + label "))
|
|
792
|
-
], 64)),
|
|
793
|
-
createVNode(_component_HelpHint, { topic: "run.summary" })
|
|
1827
|
+
_: 1
|
|
1828
|
+
}, 8, ["to"])
|
|
794
1829
|
]),
|
|
795
|
-
|
|
796
|
-
|
|
1830
|
+
_: 1
|
|
1831
|
+
}, 8, ["text"])) : createCommentVNode("", true)
|
|
1832
|
+
]),
|
|
1833
|
+
createVNode("p", { class: "mt-1 text-xs text-muted flex items-center gap-1.5 flex-wrap" }, [
|
|
1834
|
+
createVNode("span", null, "Started " + toDisplayString(("prettyDateFormat" in _ctx ? _ctx.prettyDateFormat : unref(prettyDateFormat))(__props.testRun?.startTime)), 1),
|
|
1835
|
+
createVNode(_component_ClientOnly, null, {
|
|
1836
|
+
default: withCtx(() => [
|
|
1837
|
+
createVNode("span", { class: "text-dimmed" }, "· " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(__props.testRun?.startTime)), 1)
|
|
1838
|
+
]),
|
|
1839
|
+
_: 1
|
|
1840
|
+
})
|
|
1841
|
+
])
|
|
1842
|
+
]),
|
|
1843
|
+
createVNode("div", { class: "flex items-center gap-1.5 shrink-0" }, [
|
|
1844
|
+
createVNode(_component_UTooltip, {
|
|
1845
|
+
text: unref(copied) ? "Copied!" : "Copy run summary"
|
|
1846
|
+
}, {
|
|
1847
|
+
default: withCtx(() => [
|
|
1848
|
+
createVNode(_component_UButton, {
|
|
1849
|
+
size: "xs",
|
|
1850
|
+
variant: "ghost",
|
|
797
1851
|
color: "neutral",
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
class: "
|
|
801
|
-
|
|
802
|
-
},
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
_: 1
|
|
829
|
-
}, 8, ["to"])
|
|
830
|
-
]),
|
|
831
|
-
_: 1
|
|
832
|
-
}, 8, ["text"])) : createCommentVNode("", true),
|
|
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),
|
|
834
|
-
createVNode(_component_UTooltip, {
|
|
835
|
-
text: unref(copied) ? "Copied!" : "Copy run summary"
|
|
1852
|
+
icon: unref(copied) ? "i-lucide-check" : "i-lucide-clipboard",
|
|
1853
|
+
"aria-label": "Copy run summary",
|
|
1854
|
+
class: "text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
1855
|
+
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
1856
|
+
}, null, 8, ["icon", "onClick"])
|
|
1857
|
+
]),
|
|
1858
|
+
_: 1
|
|
1859
|
+
}, 8, ["text"]),
|
|
1860
|
+
unref(failedCases).length > 0 ? (openBlock(), createBlock(_component_UPopover, { key: 0 }, {
|
|
1861
|
+
content: withCtx(() => [
|
|
1862
|
+
createVNode("div", { class: "p-2 space-y-1 min-w-32" }, [
|
|
1863
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 px-2 py-1" }, "Mode"),
|
|
1864
|
+
(openBlock(), createBlock(Fragment, null, renderList(["file-line", "grep", "file"], (m) => {
|
|
1865
|
+
return createVNode("button", {
|
|
1866
|
+
key: m,
|
|
1867
|
+
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" : ""],
|
|
1868
|
+
onClick: ($event) => retryMode.value = m
|
|
1869
|
+
}, toDisplayString(m === "file-line" ? "File:line" : m === "grep" ? "Title (grep)" : "File only"), 11, ["onClick"]);
|
|
1870
|
+
}), 64))
|
|
1871
|
+
])
|
|
1872
|
+
]),
|
|
1873
|
+
default: withCtx(() => [
|
|
1874
|
+
createVNode(_component_UButton, {
|
|
1875
|
+
size: "xs",
|
|
1876
|
+
color: "warning",
|
|
1877
|
+
variant: "subtle",
|
|
1878
|
+
icon: unref(retryCopied) ? "i-lucide-check" : "i-lucide-play",
|
|
1879
|
+
title: unref(retryTitle),
|
|
1880
|
+
"aria-label": "Retry",
|
|
1881
|
+
onClick: ($event) => copyRetryCommand()
|
|
836
1882
|
}, {
|
|
837
1883
|
default: withCtx(() => [
|
|
838
|
-
createVNode(
|
|
839
|
-
size: "xs",
|
|
840
|
-
variant: "ghost",
|
|
841
|
-
color: "neutral",
|
|
842
|
-
icon: unref(copied) ? "i-lucide-check" : "i-lucide-clipboard",
|
|
843
|
-
class: "shrink-0 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
844
|
-
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
845
|
-
}, null, 8, ["icon", "onClick"])
|
|
846
|
-
]),
|
|
847
|
-
_: 1
|
|
848
|
-
}, 8, ["text"]),
|
|
849
|
-
unref(failedCases).length > 0 ? (openBlock(), createBlock(_component_UPopover, { key: 2 }, {
|
|
850
|
-
content: withCtx(() => [
|
|
851
|
-
createVNode("div", { class: "p-2 space-y-1 min-w-32" }, [
|
|
852
|
-
createVNode("p", { class: "text-xs font-medium text-zinc-500 px-2 py-1" }, "Mode"),
|
|
853
|
-
(openBlock(), createBlock(Fragment, null, renderList(["file-line", "grep", "file"], (m) => {
|
|
854
|
-
return createVNode("button", {
|
|
855
|
-
key: m,
|
|
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" : ""],
|
|
857
|
-
onClick: ($event) => retryMode.value = m
|
|
858
|
-
}, toDisplayString(m === "file-line" ? "File:line" : m === "grep" ? "Title (grep)" : "File only"), 11, ["onClick"]);
|
|
859
|
-
}), 64))
|
|
860
|
-
])
|
|
861
|
-
]),
|
|
862
|
-
default: withCtx(() => [
|
|
863
|
-
createVNode(_component_UButton, {
|
|
864
|
-
size: "xs",
|
|
865
|
-
color: "warning",
|
|
866
|
-
variant: "subtle",
|
|
867
|
-
icon: unref(retryCopied) ? "i-lucide-check" : "i-lucide-play",
|
|
868
|
-
title: unref(retryTitle),
|
|
869
|
-
onClick: ($event) => copyRetryCommand()
|
|
870
|
-
}, {
|
|
871
|
-
default: withCtx(() => [
|
|
872
|
-
createTextVNode(" Retry ")
|
|
873
|
-
]),
|
|
874
|
-
_: 1
|
|
875
|
-
}, 8, ["icon", "title", "onClick"])
|
|
1884
|
+
createVNode("span", { class: "hidden @2xl:inline" }, "Retry")
|
|
876
1885
|
]),
|
|
877
1886
|
_: 1
|
|
878
|
-
}
|
|
879
|
-
])
|
|
880
|
-
|
|
1887
|
+
}, 8, ["icon", "title", "onClick"])
|
|
1888
|
+
]),
|
|
1889
|
+
_: 1
|
|
1890
|
+
})) : createCommentVNode("", true),
|
|
1891
|
+
unref(failedCases).length > 0 ? (openBlock(), createBlock(_component_DesktopRunLocallyButton, {
|
|
1892
|
+
key: 1,
|
|
1893
|
+
"project-id": __props.testRun?.project?.id,
|
|
1894
|
+
"project-label": __props.testRun?.project?.label ?? __props.testRun?.project?.name,
|
|
1895
|
+
cases: unref(failedCases)
|
|
1896
|
+
}, null, 8, ["project-id", "project-label", "cases"])) : createCommentVNode("", true),
|
|
1897
|
+
unref(primaryReport) ? (openBlock(), createBlock(_component_UButton, {
|
|
1898
|
+
key: 2,
|
|
1899
|
+
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(unref(primaryReport).path, null, unref(config).app?.baseURL),
|
|
1900
|
+
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(unref(primaryReport).type),
|
|
1901
|
+
target: "_blank",
|
|
1902
|
+
size: "xs",
|
|
1903
|
+
color: "primary",
|
|
1904
|
+
variant: "outline",
|
|
1905
|
+
"aria-label": unref(primaryReport).label,
|
|
1906
|
+
title: unref(primaryReport).size ? `${unref(primaryReport).label} · ${("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(unref(primaryReport).size)}` : unref(primaryReport).label
|
|
1907
|
+
}, {
|
|
1908
|
+
default: withCtx(() => [
|
|
1909
|
+
createVNode("span", { class: "hidden @2xl:inline" }, toDisplayString(unref(primaryReport).label), 1)
|
|
1910
|
+
]),
|
|
1911
|
+
_: 1
|
|
1912
|
+
}, 8, ["href", "icon", "aria-label", "title"])) : createCommentVNode("", true)
|
|
881
1913
|
])
|
|
882
1914
|
]),
|
|
883
|
-
createVNode(
|
|
884
|
-
|
|
885
|
-
class: [
|
|
886
|
-
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
887
|
-
__props.activeFilter === "all" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
888
|
-
],
|
|
889
|
-
onClick: ($event) => emit("filter-status", "all")
|
|
890
|
-
}, [
|
|
891
|
-
createVNode("p", { class: "text-xs font-medium text-zinc-500 uppercase tracking-wider" }, "Total"),
|
|
892
|
-
createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0), 1)
|
|
893
|
-
], 10, ["onClick"]),
|
|
894
|
-
createVNode("div", { class: "relative" }, [
|
|
1915
|
+
createVNode(_component_StatTileGrid, { "min-tile-width": "7.5rem" }, {
|
|
1916
|
+
default: withCtx(() => [
|
|
895
1917
|
createVNode("button", {
|
|
896
1918
|
class: [
|
|
897
|
-
"rounded-lg p-3 text-left w-full
|
|
898
|
-
__props.activeFilter === "
|
|
1919
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1920
|
+
__props.activeFilter === "all" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
899
1921
|
],
|
|
900
|
-
onClick: ($event) => emit("filter-status", "
|
|
1922
|
+
onClick: ($event) => emit("filter-status", "all")
|
|
901
1923
|
}, [
|
|
902
|
-
createVNode("p", { class: "text-xs font-medium text-
|
|
903
|
-
createVNode("p", { class: "text-xl font-bold mt-0.5
|
|
1924
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 uppercase tracking-wider" }, "Total"),
|
|
1925
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5" }, toDisplayString(__props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0), 1)
|
|
904
1926
|
], 10, ["onClick"]),
|
|
905
|
-
(
|
|
906
|
-
|
|
1927
|
+
createVNode("div", { class: "relative" }, [
|
|
1928
|
+
createVNode("button", {
|
|
1929
|
+
class: [
|
|
1930
|
+
"rounded-lg p-3 text-left w-full h-full transition-colors cursor-pointer",
|
|
1931
|
+
__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"
|
|
1932
|
+
],
|
|
1933
|
+
onClick: ($event) => emit("filter-status", "passed")
|
|
1934
|
+
}, [
|
|
1935
|
+
createVNode("p", { class: "text-xs font-medium text-emerald-700 dark:text-emerald-400 uppercase tracking-wider" }, " Passed "),
|
|
1936
|
+
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)
|
|
1937
|
+
], 10, ["onClick"]),
|
|
1938
|
+
(__props.testRun?.flakyTests ?? 0) > 0 ? (openBlock(), createBlock("button", {
|
|
1939
|
+
key: 0,
|
|
1940
|
+
class: [
|
|
1941
|
+
"absolute top-1.5 right-1.5 inline-flex items-center gap-0.5 rounded-full px-1.5 py-0.5 text-xs font-semibold leading-none tabular-nums transition-colors cursor-pointer",
|
|
1942
|
+
__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"
|
|
1943
|
+
],
|
|
1944
|
+
title: "Flaky — passed only after a retry (a subset of passed). Click to filter.",
|
|
1945
|
+
onClick: ($event) => emit("filter-status", "flaky")
|
|
1946
|
+
}, [
|
|
1947
|
+
createVNode(_component_UIcon, {
|
|
1948
|
+
name: "i-lucide-shuffle",
|
|
1949
|
+
class: "size-3"
|
|
1950
|
+
}),
|
|
1951
|
+
createTextVNode(" " + toDisplayString(__props.testRun?.flakyTests ?? 0), 1)
|
|
1952
|
+
], 10, ["onClick"])) : createCommentVNode("", true)
|
|
1953
|
+
]),
|
|
1954
|
+
createVNode("button", {
|
|
1955
|
+
class: [
|
|
1956
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1957
|
+
__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"
|
|
1958
|
+
],
|
|
1959
|
+
onClick: ($event) => emit("filter-status", "failed")
|
|
1960
|
+
}, [
|
|
1961
|
+
createVNode("p", { class: "text-xs font-medium text-rose-700 dark:text-rose-400 uppercase tracking-wider" }, "Failed"),
|
|
1962
|
+
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)
|
|
1963
|
+
], 10, ["onClick"]),
|
|
1964
|
+
createVNode("button", {
|
|
1965
|
+
class: [
|
|
1966
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1967
|
+
__props.activeFilter === "skipped" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
1968
|
+
],
|
|
1969
|
+
onClick: ($event) => emit("filter-status", "skipped")
|
|
1970
|
+
}, [
|
|
1971
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 uppercase tracking-wider" }, "Skipped"),
|
|
1972
|
+
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)
|
|
1973
|
+
], 10, ["onClick"]),
|
|
1974
|
+
createVNode("button", {
|
|
907
1975
|
class: [
|
|
908
|
-
"
|
|
909
|
-
__props.activeFilter === "
|
|
1976
|
+
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
1977
|
+
__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"
|
|
910
1978
|
],
|
|
911
|
-
title: "
|
|
912
|
-
onClick: ($event) => emit("filter-status", "
|
|
1979
|
+
title: "Tests that never ran (maxFailures cutoff or a serial-group failure)",
|
|
1980
|
+
onClick: ($event) => emit("filter-status", "didnotrun")
|
|
913
1981
|
}, [
|
|
1982
|
+
createVNode("p", { class: "text-xs font-medium text-amber-700 dark:text-amber-400 uppercase tracking-wider" }, "Didn't run"),
|
|
1983
|
+
createVNode("p", { class: "text-xl font-bold mt-0.5 text-amber-600 dark:text-amber-400" }, toDisplayString(__props.testRun?.didNotRunTests ?? 0), 1)
|
|
1984
|
+
], 10, ["onClick"])
|
|
1985
|
+
]),
|
|
1986
|
+
_: 1
|
|
1987
|
+
}),
|
|
1988
|
+
__props.testRun ? (openBlock(), createBlock("div", {
|
|
1989
|
+
key: 0,
|
|
1990
|
+
class: "flex items-center gap-x-4 gap-y-1.5 flex-wrap"
|
|
1991
|
+
}, [
|
|
1992
|
+
createVNode("div", { class: "flex-1 basis-60 min-w-44 max-w-xl" }, [
|
|
1993
|
+
createVNode(_component_TestStatusBar, {
|
|
1994
|
+
passed: __props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0,
|
|
1995
|
+
failed: __props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0,
|
|
1996
|
+
skipped: __props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0,
|
|
1997
|
+
flaky: __props.testRun?.flakyTests ?? 0,
|
|
1998
|
+
"did-not-run": __props.testRun?.didNotRunTests ?? 0,
|
|
1999
|
+
total: __props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0
|
|
2000
|
+
}, null, 8, ["passed", "failed", "skipped", "flaky", "did-not-run", "total"])
|
|
2001
|
+
]),
|
|
2002
|
+
createVNode("div", { class: "flex items-center flex-wrap gap-x-3 gap-y-1 text-xs shrink-0" }, [
|
|
2003
|
+
createVNode("div", { class: "flex items-center gap-1" }, [
|
|
914
2004
|
createVNode(_component_UIcon, {
|
|
915
|
-
name: "i-lucide-
|
|
916
|
-
class: "size-3"
|
|
2005
|
+
name: "i-lucide-clock",
|
|
2006
|
+
class: "size-3.5 text-zinc-400"
|
|
917
2007
|
}),
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
class: [
|
|
923
|
-
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
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"
|
|
925
|
-
],
|
|
926
|
-
onClick: ($event) => emit("filter-status", "failed")
|
|
927
|
-
}, [
|
|
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)
|
|
930
|
-
], 10, ["onClick"]),
|
|
931
|
-
createVNode("button", {
|
|
932
|
-
class: [
|
|
933
|
-
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
934
|
-
__props.activeFilter === "skipped" ? "bg-accented ring-2 ring-zinc-400 dark:ring-zinc-500" : "bg-elevated/60 hover:bg-elevated"
|
|
935
|
-
],
|
|
936
|
-
onClick: ($event) => emit("filter-status", "skipped")
|
|
937
|
-
}, [
|
|
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)
|
|
940
|
-
], 10, ["onClick"]),
|
|
941
|
-
createVNode("button", {
|
|
942
|
-
class: [
|
|
943
|
-
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
944
|
-
__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"
|
|
945
|
-
],
|
|
946
|
-
title: "Tests that never ran (maxFailures cutoff or a serial-group failure)",
|
|
947
|
-
onClick: ($event) => emit("filter-status", "didnotrun")
|
|
948
|
-
}, [
|
|
949
|
-
createVNode("p", { class: "text-xs font-medium text-amber-700 dark:text-amber-400 uppercase tracking-wider" }, " Didn't run "),
|
|
950
|
-
createVNode("p", { class: "text-xl font-bold mt-0.5 text-amber-600 dark:text-amber-400" }, toDisplayString(__props.testRun?.didNotRunTests ?? 0), 1)
|
|
951
|
-
], 10, ["onClick"])
|
|
952
|
-
]),
|
|
953
|
-
createVNode("div", null, [
|
|
954
|
-
__props.testRun ? (openBlock(), createBlock("div", {
|
|
955
|
-
key: 0,
|
|
956
|
-
class: "flex items-center gap-3"
|
|
957
|
-
}, [
|
|
958
|
-
createVNode("div", { class: "flex-1 max-w-md" }, [
|
|
959
|
-
createVNode(_component_TestStatusBar, {
|
|
960
|
-
passed: __props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0,
|
|
961
|
-
failed: __props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0,
|
|
962
|
-
skipped: __props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0,
|
|
963
|
-
flaky: __props.testRun?.flakyTests ?? 0,
|
|
964
|
-
"did-not-run": __props.testRun?.didNotRunTests ?? 0,
|
|
965
|
-
total: __props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0
|
|
966
|
-
}, null, 8, ["passed", "failed", "skipped", "flaky", "did-not-run", "total"])
|
|
2008
|
+
createVNode(_component_DurationValue, {
|
|
2009
|
+
ms: __props.testRun?.duration,
|
|
2010
|
+
class: "font-medium"
|
|
2011
|
+
}, null, 8, ["ms"])
|
|
967
2012
|
]),
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
class: "size-3.5 text-amber-500"
|
|
1015
|
-
}),
|
|
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"])
|
|
1022
|
-
])) : createCommentVNode("", true)
|
|
1023
|
-
])
|
|
1024
|
-
])) : createCommentVNode("", true)
|
|
1025
|
-
])
|
|
2013
|
+
__props.testRun?.avgTestDuration ? (openBlock(), createBlock("div", {
|
|
2014
|
+
key: 0,
|
|
2015
|
+
class: "flex items-center gap-1"
|
|
2016
|
+
}, [
|
|
2017
|
+
createVNode(_component_UIcon, {
|
|
2018
|
+
name: "i-lucide-gauge",
|
|
2019
|
+
class: "size-3.5 text-zinc-400"
|
|
2020
|
+
}),
|
|
2021
|
+
createVNode("span", { class: "text-zinc-500" }, "Avg"),
|
|
2022
|
+
createVNode(_component_DurationValue, {
|
|
2023
|
+
ms: __props.testRun.avgTestDuration,
|
|
2024
|
+
class: "font-medium"
|
|
2025
|
+
}, null, 8, ["ms"])
|
|
2026
|
+
])) : createCommentVNode("", true),
|
|
2027
|
+
__props.testRun?.p90TestDuration ? (openBlock(), createBlock("div", {
|
|
2028
|
+
key: 1,
|
|
2029
|
+
class: "flex items-center gap-1"
|
|
2030
|
+
}, [
|
|
2031
|
+
createVNode(_component_UIcon, {
|
|
2032
|
+
name: "i-lucide-arrow-up-right",
|
|
2033
|
+
class: "size-3.5 text-orange-500"
|
|
2034
|
+
}),
|
|
2035
|
+
createVNode("span", { class: "text-zinc-500" }, "P90"),
|
|
2036
|
+
createVNode(_component_DurationValue, {
|
|
2037
|
+
ms: __props.testRun.p90TestDuration,
|
|
2038
|
+
class: "font-medium text-orange-600 dark:text-orange-400",
|
|
2039
|
+
"unit-class": "opacity-60"
|
|
2040
|
+
}, null, 8, ["ms"])
|
|
2041
|
+
])) : createCommentVNode("", true),
|
|
2042
|
+
__props.totalWastedTime && __props.totalWastedTime > 0 ? (openBlock(), createBlock("div", {
|
|
2043
|
+
key: 2,
|
|
2044
|
+
class: "flex items-center gap-1"
|
|
2045
|
+
}, [
|
|
2046
|
+
createVNode(_component_UIcon, {
|
|
2047
|
+
name: "i-lucide-clock",
|
|
2048
|
+
class: "size-3.5 text-amber-500"
|
|
2049
|
+
}),
|
|
2050
|
+
createVNode("span", { class: "text-zinc-500" }, "Wasted"),
|
|
2051
|
+
createVNode(_component_DurationValue, {
|
|
2052
|
+
ms: __props.totalWastedTime,
|
|
2053
|
+
class: "font-medium text-amber-600 dark:text-amber-400",
|
|
2054
|
+
"unit-class": "opacity-60"
|
|
2055
|
+
}, null, 8, ["ms"])
|
|
2056
|
+
])) : createCommentVNode("", true)
|
|
2057
|
+
])
|
|
2058
|
+
])) : createCommentVNode("", true)
|
|
1026
2059
|
])
|
|
1027
2060
|
];
|
|
1028
2061
|
}
|
|
@@ -1030,238 +2063,108 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
1030
2063
|
_: 1
|
|
1031
2064
|
}, _parent2, _scopeId));
|
|
1032
2065
|
_push2(`</div>`);
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
}
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
}
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
})
|
|
1136
|
-
])
|
|
1137
|
-
])) : createCommentVNode("", true),
|
|
1138
|
-
unref(storageStats)?.totalFiles ? (openBlock(), createBlock("div", {
|
|
1139
|
-
key: 1,
|
|
1140
|
-
class: "space-y-1.5 text-sm"
|
|
1141
|
-
}, [
|
|
1142
|
-
(openBlock(true), createBlock(Fragment, null, renderList(__props.allReports, (report) => {
|
|
1143
|
-
return openBlock(), createBlock("div", {
|
|
1144
|
-
key: report.label,
|
|
1145
|
-
class: "flex items-center justify-between gap-2 min-w-0"
|
|
1146
|
-
}, [
|
|
1147
|
-
createVNode(_component_UButton, {
|
|
1148
|
-
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(report.path, null, unref(config).app?.baseURL),
|
|
1149
|
-
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(report.type),
|
|
1150
|
-
target: "_blank",
|
|
1151
|
-
size: "xs",
|
|
1152
|
-
variant: "outline",
|
|
1153
|
-
class: "min-w-0",
|
|
1154
|
-
ui: { label: "truncate" }
|
|
1155
|
-
}, {
|
|
1156
|
-
default: withCtx(() => [
|
|
1157
|
-
createTextVNode(toDisplayString(report.label), 1)
|
|
1158
|
-
]),
|
|
1159
|
-
_: 2
|
|
1160
|
-
}, 1032, ["href", "icon"]),
|
|
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)
|
|
1162
|
-
]);
|
|
1163
|
-
}), 128)),
|
|
1164
|
-
unref(storageStats).testCaseFilesCount > 0 ? (openBlock(), createBlock("div", {
|
|
1165
|
-
key: 0,
|
|
1166
|
-
class: "flex items-center justify-between gap-2 min-w-0"
|
|
1167
|
-
}, [
|
|
1168
|
-
createVNode("span", { class: "truncate" }, "Test files (" + toDisplayString(unref(storageStats).testCaseFilesCount) + ")", 1),
|
|
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)
|
|
1170
|
-
])) : createCommentVNode("", true)
|
|
1171
|
-
])) : createCommentVNode("", true)
|
|
1172
|
-
];
|
|
1173
|
-
}
|
|
1174
|
-
}),
|
|
1175
|
-
_: 1
|
|
1176
|
-
}, _parent2, _scopeId));
|
|
1177
|
-
} else {
|
|
1178
|
-
_push2(`<!---->`);
|
|
1179
|
-
}
|
|
1180
|
-
if (unref(showOther)) {
|
|
1181
|
-
_push2(ssrRenderComponent(_component_BlockCard, {
|
|
1182
|
-
class: unref(blockColSpanClass),
|
|
1183
|
-
title: "Other",
|
|
1184
|
-
icon: "i-lucide-tags",
|
|
1185
|
-
help: "run.metadata"
|
|
1186
|
-
}, {
|
|
1187
|
-
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
|
1188
|
-
if (_push3) {
|
|
1189
|
-
_push3(`<div class="space-y-3 text-sm"${_scopeId2}>`);
|
|
1190
|
-
if (__props.testRun.metadata.tags && __props.testRun.metadata.tags.length > 0) {
|
|
1191
|
-
_push3(`<div${_scopeId2}><div class="flex flex-wrap gap-1.5"${_scopeId2}><!--[-->`);
|
|
1192
|
-
ssrRenderList(__props.testRun.metadata.tags, (tag) => {
|
|
1193
|
-
_push3(ssrRenderComponent(_component_UBadge, {
|
|
1194
|
-
key: tag,
|
|
1195
|
-
color: "neutral",
|
|
1196
|
-
variant: "soft",
|
|
1197
|
-
size: "sm"
|
|
1198
|
-
}, {
|
|
1199
|
-
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
1200
|
-
if (_push4) {
|
|
1201
|
-
_push4(`${ssrInterpolate(tag)}`);
|
|
1202
|
-
} else {
|
|
1203
|
-
return [
|
|
1204
|
-
createTextVNode(toDisplayString(tag), 1)
|
|
1205
|
-
];
|
|
1206
|
-
}
|
|
1207
|
-
}),
|
|
1208
|
-
_: 2
|
|
1209
|
-
}, _parent3, _scopeId2));
|
|
1210
|
-
});
|
|
1211
|
-
_push3(`<!--]--></div></div>`);
|
|
1212
|
-
} else {
|
|
1213
|
-
_push3(`<!---->`);
|
|
1214
|
-
}
|
|
1215
|
-
if (__props.testRun.metadata.relatedIssue) {
|
|
1216
|
-
_push3(`<p class="flex items-center gap-1"${_scopeId2}>`);
|
|
1217
|
-
_push3(ssrRenderComponent(_component_UIcon, {
|
|
1218
|
-
name: "i-lucide-link",
|
|
1219
|
-
class: "w-3.5 h-3.5 text-zinc-400 shrink-0"
|
|
1220
|
-
}, null, _parent3, _scopeId2));
|
|
1221
|
-
_push3(`<span${_scopeId2}>${ssrInterpolate(__props.testRun.metadata.relatedIssue)}</span></p>`);
|
|
1222
|
-
} else {
|
|
1223
|
-
_push3(`<!---->`);
|
|
1224
|
-
}
|
|
1225
|
-
_push3(ssrRenderComponent(_component_EntityLinks, {
|
|
1226
|
-
"entity-type": "test_run",
|
|
1227
|
-
"entity-id": __props.testRun.id,
|
|
1228
|
-
links: __props.testRun.links ?? null,
|
|
1229
|
-
onUpdated: ($event) => _ctx.$emit("label-updated")
|
|
1230
|
-
}, null, _parent3, _scopeId2));
|
|
1231
|
-
if (__props.testRun.metadata.customData) {
|
|
1232
|
-
_push3(ssrRenderComponent(_component_UButton, {
|
|
1233
|
-
size: "xs",
|
|
1234
|
-
variant: "ghost",
|
|
1235
|
-
color: "neutral",
|
|
1236
|
-
icon: __props.showCustomData ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
|
|
1237
|
-
onClick: ($event) => emit("update:showCustomData", !__props.showCustomData)
|
|
1238
|
-
}, {
|
|
1239
|
-
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
1240
|
-
if (_push4) {
|
|
1241
|
-
_push4(` Custom data `);
|
|
1242
|
-
} else {
|
|
1243
|
-
return [
|
|
1244
|
-
createTextVNode(" Custom data ")
|
|
1245
|
-
];
|
|
1246
|
-
}
|
|
1247
|
-
}),
|
|
1248
|
-
_: 1
|
|
1249
|
-
}, _parent3, _scopeId2));
|
|
1250
|
-
} else {
|
|
1251
|
-
_push3(`<!---->`);
|
|
1252
|
-
}
|
|
1253
|
-
if (__props.showCustomData && __props.testRun.metadata.customData) {
|
|
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>`);
|
|
1255
|
-
} else {
|
|
1256
|
-
_push3(`<!---->`);
|
|
1257
|
-
}
|
|
1258
|
-
_push3(`</div>`);
|
|
1259
|
-
} else {
|
|
1260
|
-
return [
|
|
1261
|
-
createVNode("div", { class: "space-y-3 text-sm" }, [
|
|
1262
|
-
__props.testRun.metadata.tags && __props.testRun.metadata.tags.length > 0 ? (openBlock(), createBlock("div", { key: 0 }, [
|
|
1263
|
-
createVNode("div", { class: "flex flex-wrap gap-1.5" }, [
|
|
1264
|
-
(openBlock(true), createBlock(Fragment, null, renderList(__props.testRun.metadata.tags, (tag) => {
|
|
2066
|
+
} else {
|
|
2067
|
+
return [
|
|
2068
|
+
createVNode("div", { class: "@container" }, [
|
|
2069
|
+
createVNode(_component_UCard, {
|
|
2070
|
+
class: "shadow-xs",
|
|
2071
|
+
ui: { footer: "px-4 py-2.5 sm:px-4 bg-muted/30" }
|
|
2072
|
+
}, {
|
|
2073
|
+
footer: withCtx(() => [
|
|
2074
|
+
createVNode(_component_SummaryMetaStrip, null, {
|
|
2075
|
+
default: withCtx(() => [
|
|
2076
|
+
unref(showCiGroup) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
2077
|
+
key: 0,
|
|
2078
|
+
label: "CI & environment",
|
|
2079
|
+
icon: "i-lucide-cloud",
|
|
2080
|
+
help: "run.ci-env"
|
|
2081
|
+
}, {
|
|
2082
|
+
default: withCtx(() => [
|
|
2083
|
+
__props.testRun?.environment ? (openBlock(), createBlock("span", {
|
|
2084
|
+
key: 0,
|
|
2085
|
+
class: "rounded-full border border-default px-2 py-0.5 text-xs bg-elevated/60"
|
|
2086
|
+
}, toDisplayString(__props.testRun.environment), 1)) : createCommentVNode("", true),
|
|
2087
|
+
unref(ci)?.provider ? (openBlock(), createBlock("span", { key: 1 }, toDisplayString(unref(ci).provider), 1)) : createCommentVNode("", true),
|
|
2088
|
+
unref(ci)?.buildNumber || unref(ci)?.buildUrl ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
2089
|
+
createVNode("span", { class: "text-dimmed" }, "·"),
|
|
2090
|
+
unref(ci)?.buildUrl ? (openBlock(), createBlock("a", {
|
|
2091
|
+
key: 0,
|
|
2092
|
+
href: unref(ci).buildUrl,
|
|
2093
|
+
target: "_blank",
|
|
2094
|
+
class: "text-primary hover:underline"
|
|
2095
|
+
}, toDisplayString(unref(ci)?.buildNumber ? `Build #${unref(ci).buildNumber}` : "View build"), 9, ["href"])) : (openBlock(), createBlock("span", { key: 1 }, "Build #" + toDisplayString(unref(ci).buildNumber), 1))
|
|
2096
|
+
], 64)) : createCommentVNode("", true),
|
|
2097
|
+
unref(ci)?.workflow || unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 3 }, [
|
|
2098
|
+
createVNode("span", { class: "text-dimmed" }, "·"),
|
|
2099
|
+
createVNode("span", { class: "text-muted" }, [
|
|
2100
|
+
unref(ci)?.workflow ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
2101
|
+
createTextVNode(toDisplayString(unref(ci).workflow), 1)
|
|
2102
|
+
], 64)) : createCommentVNode("", true),
|
|
2103
|
+
unref(ci)?.workflow && unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
2104
|
+
createTextVNode(" · ")
|
|
2105
|
+
], 64)) : createCommentVNode("", true),
|
|
2106
|
+
unref(ci)?.jobName ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
2107
|
+
createTextVNode(toDisplayString(unref(ci).jobName), 1)
|
|
2108
|
+
], 64)) : createCommentVNode("", true)
|
|
2109
|
+
])
|
|
2110
|
+
], 64)) : createCommentVNode("", true)
|
|
2111
|
+
]),
|
|
2112
|
+
_: 1
|
|
2113
|
+
})) : createCommentVNode("", true),
|
|
2114
|
+
unref(scm) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
2115
|
+
key: 1,
|
|
2116
|
+
label: "Source",
|
|
2117
|
+
icon: "i-lucide-git-branch"
|
|
2118
|
+
}, {
|
|
2119
|
+
default: withCtx(() => [
|
|
2120
|
+
unref(scm).branch ? (openBlock(), createBlock("span", {
|
|
2121
|
+
key: 0,
|
|
2122
|
+
class: "font-medium"
|
|
2123
|
+
}, toDisplayString(unref(scm).branch), 1)) : createCommentVNode("", true),
|
|
2124
|
+
unref(scm).commit ? (openBlock(), createBlock("code", {
|
|
2125
|
+
key: 1,
|
|
2126
|
+
class: "text-xs font-mono bg-zinc-100 dark:bg-zinc-800 px-1 py-0.5 rounded",
|
|
2127
|
+
title: unref(scm).commit
|
|
2128
|
+
}, toDisplayString(unref(scm).commit.length >= 8 ? unref(scm).commit.substring(0, 8) : unref(scm).commit), 9, ["title"])) : createCommentVNode("", true),
|
|
2129
|
+
unref(scm).author ? (openBlock(), createBlock("span", {
|
|
2130
|
+
key: 2,
|
|
2131
|
+
class: "text-muted"
|
|
2132
|
+
}, toDisplayString(unref(scm).author), 1)) : createCommentVNode("", true),
|
|
2133
|
+
unref(scm).commitMessage ? (openBlock(), createBlock("span", {
|
|
2134
|
+
key: 3,
|
|
2135
|
+
class: "text-xs text-dimmed truncate max-w-[40ch]",
|
|
2136
|
+
title: unref(scm).commitMessage
|
|
2137
|
+
}, toDisplayString(unref(scm).commitMessage), 9, ["title"])) : createCommentVNode("", true)
|
|
2138
|
+
]),
|
|
2139
|
+
_: 1
|
|
2140
|
+
})) : createCommentVNode("", true),
|
|
2141
|
+
unref(showVersions) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
2142
|
+
key: 2,
|
|
2143
|
+
label: "Tooling versions",
|
|
2144
|
+
icon: "i-lucide-tag"
|
|
2145
|
+
}, {
|
|
2146
|
+
default: withCtx(() => [
|
|
2147
|
+
createVNode("span", { class: "text-muted whitespace-nowrap" }, [
|
|
2148
|
+
__props.testRun?.playwrightVersion ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
2149
|
+
createTextVNode("Playwright v" + toDisplayString(__props.testRun.playwrightVersion), 1)
|
|
2150
|
+
], 64)) : createCommentVNode("", true),
|
|
2151
|
+
__props.testRun?.playwrightVersion && __props.testRun?.reporterVersion ? (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
2152
|
+
createTextVNode(" · ")
|
|
2153
|
+
], 64)) : createCommentVNode("", true),
|
|
2154
|
+
__props.testRun?.reporterVersion ? (openBlock(), createBlock(Fragment, { key: 2 }, [
|
|
2155
|
+
createTextVNode("Piwi v" + toDisplayString(__props.testRun.reporterVersion), 1)
|
|
2156
|
+
], 64)) : createCommentVNode("", true)
|
|
2157
|
+
])
|
|
2158
|
+
]),
|
|
2159
|
+
_: 1
|
|
2160
|
+
})) : createCommentVNode("", true),
|
|
2161
|
+
unref(tags)?.length ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
2162
|
+
key: 3,
|
|
2163
|
+
label: "Tags",
|
|
2164
|
+
icon: "i-lucide-tags"
|
|
2165
|
+
}, {
|
|
2166
|
+
default: withCtx(() => [
|
|
2167
|
+
(openBlock(true), createBlock(Fragment, null, renderList(unref(tags), (tag) => {
|
|
1265
2168
|
return openBlock(), createBlock(_component_UBadge, {
|
|
1266
2169
|
key: tag,
|
|
1267
2170
|
color: "neutral",
|
|
@@ -1274,190 +2177,244 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
1274
2177
|
_: 2
|
|
1275
2178
|
}, 1024);
|
|
1276
2179
|
}), 128))
|
|
1277
|
-
])
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
name: "i-lucide-link",
|
|
1285
|
-
class: "w-3.5 h-3.5 text-zinc-400 shrink-0"
|
|
1286
|
-
}),
|
|
1287
|
-
createVNode("span", null, toDisplayString(__props.testRun.metadata.relatedIssue), 1)
|
|
1288
|
-
])) : createCommentVNode("", true),
|
|
1289
|
-
createVNode(_component_EntityLinks, {
|
|
1290
|
-
"entity-type": "test_run",
|
|
1291
|
-
"entity-id": __props.testRun.id,
|
|
1292
|
-
links: __props.testRun.links ?? null,
|
|
1293
|
-
onUpdated: ($event) => _ctx.$emit("label-updated")
|
|
1294
|
-
}, null, 8, ["entity-id", "links", "onUpdated"]),
|
|
1295
|
-
__props.testRun.metadata.customData ? (openBlock(), createBlock(_component_UButton, {
|
|
1296
|
-
key: 2,
|
|
1297
|
-
size: "xs",
|
|
1298
|
-
variant: "ghost",
|
|
1299
|
-
color: "neutral",
|
|
1300
|
-
icon: __props.showCustomData ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
|
|
1301
|
-
onClick: ($event) => emit("update:showCustomData", !__props.showCustomData)
|
|
2180
|
+
]),
|
|
2181
|
+
_: 1
|
|
2182
|
+
})) : createCommentVNode("", true),
|
|
2183
|
+
__props.testRun?.metadata?.relatedIssue ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
2184
|
+
key: 4,
|
|
2185
|
+
label: "Related issue",
|
|
2186
|
+
icon: "i-lucide-bookmark"
|
|
1302
2187
|
}, {
|
|
1303
2188
|
default: withCtx(() => [
|
|
1304
|
-
|
|
2189
|
+
createVNode("span", { class: "text-muted" }, toDisplayString(__props.testRun.metadata.relatedIssue), 1)
|
|
1305
2190
|
]),
|
|
1306
2191
|
_: 1
|
|
1307
|
-
}
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
2192
|
+
})) : createCommentVNode("", true),
|
|
2193
|
+
unref(showStorage) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
2194
|
+
key: 5,
|
|
2195
|
+
label: "Storage"
|
|
2196
|
+
}, {
|
|
2197
|
+
default: withCtx(() => [
|
|
2198
|
+
createVNode(_component_RunStorageChip, {
|
|
2199
|
+
"storage-stats": unref(storageStats),
|
|
2200
|
+
reports: __props.allReports,
|
|
2201
|
+
finalizing: __props.finalizing
|
|
2202
|
+
}, null, 8, ["storage-stats", "reports", "finalizing"])
|
|
2203
|
+
]),
|
|
2204
|
+
_: 1
|
|
2205
|
+
})) : createCommentVNode("", true),
|
|
2206
|
+
createVNode(_component_MetaStripGroup, {
|
|
2207
|
+
label: "Links",
|
|
2208
|
+
icon: "i-lucide-link",
|
|
2209
|
+
help: "run.metadata"
|
|
2210
|
+
}, {
|
|
2211
|
+
default: withCtx(() => [
|
|
2212
|
+
createVNode(_component_EntityLinks, {
|
|
2213
|
+
"entity-type": "test_run",
|
|
2214
|
+
"entity-id": __props.testRun.id,
|
|
2215
|
+
links: __props.testRun.links ?? null,
|
|
2216
|
+
onUpdated: ($event) => _ctx.$emit("label-updated")
|
|
2217
|
+
}, null, 8, ["entity-id", "links", "onUpdated"])
|
|
2218
|
+
]),
|
|
2219
|
+
_: 1
|
|
2220
|
+
}),
|
|
2221
|
+
unref(customData) ? (openBlock(), createBlock(_component_MetaStripGroup, {
|
|
2222
|
+
key: 6,
|
|
2223
|
+
label: "Custom data"
|
|
2224
|
+
}, {
|
|
2225
|
+
default: withCtx(() => [
|
|
2226
|
+
createVNode(_component_UButton, {
|
|
2227
|
+
size: "xs",
|
|
2228
|
+
variant: "ghost",
|
|
2229
|
+
color: "neutral",
|
|
2230
|
+
icon: __props.showCustomData ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
|
|
2231
|
+
onClick: ($event) => emit("update:showCustomData", !__props.showCustomData)
|
|
2232
|
+
}, {
|
|
2233
|
+
default: withCtx(() => [
|
|
2234
|
+
createTextVNode(" Custom data ")
|
|
2235
|
+
]),
|
|
2236
|
+
_: 1
|
|
2237
|
+
}, 8, ["icon", "onClick"])
|
|
2238
|
+
]),
|
|
2239
|
+
_: 1
|
|
2240
|
+
})) : createCommentVNode("", true)
|
|
2241
|
+
]),
|
|
2242
|
+
_: 1
|
|
2243
|
+
}),
|
|
2244
|
+
__props.showCustomData && unref(customData) ? (openBlock(), createBlock("div", {
|
|
2245
|
+
key: 0,
|
|
2246
|
+
class: "mt-2"
|
|
2247
|
+
}, [
|
|
2248
|
+
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" }, [
|
|
2249
|
+
createVNode("pre", { class: "m-0" }, toDisplayString(JSON.stringify(unref(customData), null, 2)), 1)
|
|
1313
2250
|
])
|
|
1314
|
-
]
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
} else {
|
|
1324
|
-
return [
|
|
1325
|
-
createVNode("div", { class: "grid grid-cols-1 lg:grid-cols-12 gap-4" }, [
|
|
1326
|
-
createVNode("div", { class: unref(summaryColSpanClass) }, [
|
|
1327
|
-
createVNode(_component_UCard, { class: "shadow-xs h-full" }, {
|
|
1328
|
-
default: withCtx(() => [
|
|
1329
|
-
createVNode("div", { class: "space-y-3" }, [
|
|
1330
|
-
createVNode("div", { class: "flex items-start gap-3" }, [
|
|
1331
|
-
createVNode("div", { class: "flex items-center gap-2.5 min-w-0 flex-1" }, [
|
|
1332
|
-
createVNode(_component_StatusBlock, {
|
|
1333
|
-
status: __props.testRun?.status ?? "",
|
|
1334
|
-
size: "md"
|
|
2251
|
+
])) : createCommentVNode("", true)
|
|
2252
|
+
]),
|
|
2253
|
+
default: withCtx(() => [
|
|
2254
|
+
createVNode("div", { class: "space-y-3" }, [
|
|
2255
|
+
createVNode("div", { class: "flex items-start justify-between gap-x-3 gap-y-2 flex-wrap pr-8" }, [
|
|
2256
|
+
createVNode("div", { class: "min-w-0 flex-1 basis-64" }, [
|
|
2257
|
+
createVNode("div", { class: "flex items-center gap-2 flex-wrap" }, [
|
|
2258
|
+
createVNode(_component_StatusChip, {
|
|
2259
|
+
status: __props.testRun?.status ?? ""
|
|
1335
2260
|
}, null, 8, ["status"]),
|
|
1336
|
-
createVNode("
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
}, null, 40, ["onUpdate:modelValue"]), [
|
|
1351
|
-
[vModelText, unref(labelInput)]
|
|
1352
|
-
]),
|
|
1353
|
-
unref(savingLabel) ? (openBlock(), createBlock(_component_UIcon, {
|
|
1354
|
-
key: 0,
|
|
1355
|
-
name: "i-lucide-loader-circle",
|
|
1356
|
-
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
1357
|
-
})) : createCommentVNode("", true)
|
|
1358
|
-
], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
1359
|
-
__props.testRun?.label ? (openBlock(), createBlock("span", {
|
|
1360
|
-
key: 0,
|
|
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",
|
|
1362
|
-
onClick: startEditLabel
|
|
1363
|
-
}, "— " + toDisplayString(__props.testRun.label), 1)) : (openBlock(), createBlock("button", {
|
|
1364
|
-
key: 1,
|
|
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",
|
|
1366
|
-
title: "Add a label",
|
|
1367
|
-
onClick: startEditLabel
|
|
1368
|
-
}, " + label "))
|
|
1369
|
-
], 64)),
|
|
1370
|
-
createVNode(_component_HelpHint, { topic: "run.summary" })
|
|
2261
|
+
createVNode("h2", { class: "text-base font-bold shrink-0 flex items-center gap-1" }, [
|
|
2262
|
+
createTextVNode(" Run #" + toDisplayString(__props.testRun?.id) + " ", 1),
|
|
2263
|
+
unref(editingLabel) ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
2264
|
+
withDirectives(createVNode("input", {
|
|
2265
|
+
ref_key: "labelInputRef",
|
|
2266
|
+
ref: labelInputRef,
|
|
2267
|
+
"onUpdate:modelValue": ($event) => isRef(labelInput) ? labelInput.value = $event : null,
|
|
2268
|
+
type: "text",
|
|
2269
|
+
placeholder: "Add a label...",
|
|
2270
|
+
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",
|
|
2271
|
+
onKeydown: onLabelKeydown,
|
|
2272
|
+
onBlur: saveLabel
|
|
2273
|
+
}, null, 40, ["onUpdate:modelValue"]), [
|
|
2274
|
+
[vModelText, unref(labelInput)]
|
|
1371
2275
|
]),
|
|
1372
|
-
|
|
2276
|
+
unref(savingLabel) ? (openBlock(), createBlock(_component_UIcon, {
|
|
1373
2277
|
key: 0,
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
class: "size-3 mr-1"
|
|
1384
|
-
}),
|
|
1385
|
-
createTextVNode(" " + toDisplayString(__props.testRun.shardsFinished ?? 0) + "/" + toDisplayString(__props.testRun.shardTotal), 1)
|
|
1386
|
-
]),
|
|
1387
|
-
_: 1
|
|
1388
|
-
}, 8, ["title"])) : createCommentVNode("", true),
|
|
1389
|
-
__props.testRun?.precedingMarker ? (openBlock(), createBlock(_component_UTooltip, {
|
|
2278
|
+
name: "i-lucide-loader-circle",
|
|
2279
|
+
class: "size-3.5 text-zinc-400 animate-spin shrink-0"
|
|
2280
|
+
})) : createCommentVNode("", true)
|
|
2281
|
+
], 64)) : (openBlock(), createBlock(Fragment, { key: 1 }, [
|
|
2282
|
+
__props.testRun?.label ? (openBlock(), createBlock("span", {
|
|
2283
|
+
key: 0,
|
|
2284
|
+
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",
|
|
2285
|
+
onClick: startEditLabel
|
|
2286
|
+
}, "— " + toDisplayString(__props.testRun.label), 1)) : (openBlock(), createBlock("button", {
|
|
1390
2287
|
key: 1,
|
|
1391
|
-
text:
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
2288
|
+
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",
|
|
2289
|
+
title: "Add a label",
|
|
2290
|
+
onClick: startEditLabel
|
|
2291
|
+
}, " + label "))
|
|
2292
|
+
], 64)),
|
|
2293
|
+
createVNode(_component_HelpHint, { topic: "run.summary" })
|
|
2294
|
+
]),
|
|
2295
|
+
__props.testRun?.shardTotal && __props.testRun.shardTotal > 1 ? (openBlock(), createBlock(_component_UBadge, {
|
|
2296
|
+
key: 0,
|
|
2297
|
+
color: "neutral",
|
|
2298
|
+
variant: "soft",
|
|
2299
|
+
size: "sm",
|
|
2300
|
+
class: "shrink-0",
|
|
2301
|
+
title: `Shard ${__props.testRun.shardsFinished ?? 0}/${__props.testRun.shardTotal}`
|
|
2302
|
+
}, {
|
|
2303
|
+
default: withCtx(() => [
|
|
2304
|
+
createVNode(_component_UIcon, {
|
|
2305
|
+
name: "i-lucide-layout-grid",
|
|
2306
|
+
class: "size-3 mr-1"
|
|
2307
|
+
}),
|
|
2308
|
+
createTextVNode(" " + toDisplayString(__props.testRun.shardsFinished ?? 0) + "/" + toDisplayString(__props.testRun.shardTotal), 1)
|
|
2309
|
+
]),
|
|
2310
|
+
_: 1
|
|
2311
|
+
}, 8, ["title"])) : createCommentVNode("", true),
|
|
2312
|
+
__props.testRun?.precedingMarker ? (openBlock(), createBlock(_component_UTooltip, {
|
|
2313
|
+
key: 1,
|
|
2314
|
+
text: `This run started after: ${__props.testRun.precedingMarker.label}`
|
|
2315
|
+
}, {
|
|
2316
|
+
default: withCtx(() => [
|
|
2317
|
+
createVNode(_component_NuxtLink, {
|
|
2318
|
+
to: `/projects/${__props.testRun.projectId}?tab=timeline`,
|
|
2319
|
+
class: "shrink-0 inline-flex items-center gap-1"
|
|
1413
2320
|
}, {
|
|
1414
2321
|
default: withCtx(() => [
|
|
1415
|
-
createVNode(
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
class: "shrink-0 text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
1421
|
-
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
1422
|
-
}, null, 8, ["icon", "onClick"])
|
|
1423
|
-
]),
|
|
1424
|
-
_: 1
|
|
1425
|
-
}, 8, ["text"]),
|
|
1426
|
-
unref(failedCases).length > 0 ? (openBlock(), createBlock(_component_UPopover, { key: 2 }, {
|
|
1427
|
-
content: withCtx(() => [
|
|
1428
|
-
createVNode("div", { class: "p-2 space-y-1 min-w-32" }, [
|
|
1429
|
-
createVNode("p", { class: "text-xs font-medium text-zinc-500 px-2 py-1" }, "Mode"),
|
|
1430
|
-
(openBlock(), createBlock(Fragment, null, renderList(["file-line", "grep", "file"], (m) => {
|
|
1431
|
-
return createVNode("button", {
|
|
1432
|
-
key: m,
|
|
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" : ""],
|
|
1434
|
-
onClick: ($event) => retryMode.value = m
|
|
1435
|
-
}, toDisplayString(m === "file-line" ? "File:line" : m === "grep" ? "Title (grep)" : "File only"), 11, ["onClick"]);
|
|
1436
|
-
}), 64))
|
|
1437
|
-
])
|
|
1438
|
-
]),
|
|
1439
|
-
default: withCtx(() => [
|
|
1440
|
-
createVNode(_component_UButton, {
|
|
1441
|
-
size: "xs",
|
|
1442
|
-
color: "warning",
|
|
1443
|
-
variant: "subtle",
|
|
1444
|
-
icon: unref(retryCopied) ? "i-lucide-check" : "i-lucide-play",
|
|
1445
|
-
title: unref(retryTitle),
|
|
1446
|
-
onClick: ($event) => copyRetryCommand()
|
|
1447
|
-
}, {
|
|
1448
|
-
default: withCtx(() => [
|
|
1449
|
-
createTextVNode(" Retry ")
|
|
1450
|
-
]),
|
|
1451
|
-
_: 1
|
|
1452
|
-
}, 8, ["icon", "title", "onClick"])
|
|
2322
|
+
createVNode("span", { class: "text-xs text-muted" }, "After"),
|
|
2323
|
+
createVNode(_component_MarkerBadge, {
|
|
2324
|
+
marker: __props.testRun.precedingMarker,
|
|
2325
|
+
size: "xs"
|
|
2326
|
+
}, null, 8, ["marker"])
|
|
1453
2327
|
]),
|
|
1454
2328
|
_: 1
|
|
1455
|
-
}
|
|
1456
|
-
])
|
|
1457
|
-
|
|
2329
|
+
}, 8, ["to"])
|
|
2330
|
+
]),
|
|
2331
|
+
_: 1
|
|
2332
|
+
}, 8, ["text"])) : createCommentVNode("", true)
|
|
2333
|
+
]),
|
|
2334
|
+
createVNode("p", { class: "mt-1 text-xs text-muted flex items-center gap-1.5 flex-wrap" }, [
|
|
2335
|
+
createVNode("span", null, "Started " + toDisplayString(("prettyDateFormat" in _ctx ? _ctx.prettyDateFormat : unref(prettyDateFormat))(__props.testRun?.startTime)), 1),
|
|
2336
|
+
createVNode(_component_ClientOnly, null, {
|
|
2337
|
+
default: withCtx(() => [
|
|
2338
|
+
createVNode("span", { class: "text-dimmed" }, "· " + toDisplayString(("formatRelativeTime" in _ctx ? _ctx.formatRelativeTime : unref(formatRelativeTime))(__props.testRun?.startTime)), 1)
|
|
2339
|
+
]),
|
|
2340
|
+
_: 1
|
|
2341
|
+
})
|
|
1458
2342
|
])
|
|
1459
2343
|
]),
|
|
1460
|
-
createVNode("div", { class: "
|
|
2344
|
+
createVNode("div", { class: "flex items-center gap-1.5 shrink-0" }, [
|
|
2345
|
+
createVNode(_component_UTooltip, {
|
|
2346
|
+
text: unref(copied) ? "Copied!" : "Copy run summary"
|
|
2347
|
+
}, {
|
|
2348
|
+
default: withCtx(() => [
|
|
2349
|
+
createVNode(_component_UButton, {
|
|
2350
|
+
size: "xs",
|
|
2351
|
+
variant: "ghost",
|
|
2352
|
+
color: "neutral",
|
|
2353
|
+
icon: unref(copied) ? "i-lucide-check" : "i-lucide-clipboard",
|
|
2354
|
+
"aria-label": "Copy run summary",
|
|
2355
|
+
class: "text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300",
|
|
2356
|
+
onClick: ($event) => unref(copy)(buildRunSummary(), { toast: "Run summary copied" })
|
|
2357
|
+
}, null, 8, ["icon", "onClick"])
|
|
2358
|
+
]),
|
|
2359
|
+
_: 1
|
|
2360
|
+
}, 8, ["text"]),
|
|
2361
|
+
unref(failedCases).length > 0 ? (openBlock(), createBlock(_component_UPopover, { key: 0 }, {
|
|
2362
|
+
content: withCtx(() => [
|
|
2363
|
+
createVNode("div", { class: "p-2 space-y-1 min-w-32" }, [
|
|
2364
|
+
createVNode("p", { class: "text-xs font-medium text-zinc-500 px-2 py-1" }, "Mode"),
|
|
2365
|
+
(openBlock(), createBlock(Fragment, null, renderList(["file-line", "grep", "file"], (m) => {
|
|
2366
|
+
return createVNode("button", {
|
|
2367
|
+
key: m,
|
|
2368
|
+
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" : ""],
|
|
2369
|
+
onClick: ($event) => retryMode.value = m
|
|
2370
|
+
}, toDisplayString(m === "file-line" ? "File:line" : m === "grep" ? "Title (grep)" : "File only"), 11, ["onClick"]);
|
|
2371
|
+
}), 64))
|
|
2372
|
+
])
|
|
2373
|
+
]),
|
|
2374
|
+
default: withCtx(() => [
|
|
2375
|
+
createVNode(_component_UButton, {
|
|
2376
|
+
size: "xs",
|
|
2377
|
+
color: "warning",
|
|
2378
|
+
variant: "subtle",
|
|
2379
|
+
icon: unref(retryCopied) ? "i-lucide-check" : "i-lucide-play",
|
|
2380
|
+
title: unref(retryTitle),
|
|
2381
|
+
"aria-label": "Retry",
|
|
2382
|
+
onClick: ($event) => copyRetryCommand()
|
|
2383
|
+
}, {
|
|
2384
|
+
default: withCtx(() => [
|
|
2385
|
+
createVNode("span", { class: "hidden @2xl:inline" }, "Retry")
|
|
2386
|
+
]),
|
|
2387
|
+
_: 1
|
|
2388
|
+
}, 8, ["icon", "title", "onClick"])
|
|
2389
|
+
]),
|
|
2390
|
+
_: 1
|
|
2391
|
+
})) : createCommentVNode("", true),
|
|
2392
|
+
unref(failedCases).length > 0 ? (openBlock(), createBlock(_component_DesktopRunLocallyButton, {
|
|
2393
|
+
key: 1,
|
|
2394
|
+
"project-id": __props.testRun?.project?.id,
|
|
2395
|
+
"project-label": __props.testRun?.project?.label ?? __props.testRun?.project?.name,
|
|
2396
|
+
cases: unref(failedCases)
|
|
2397
|
+
}, null, 8, ["project-id", "project-label", "cases"])) : createCommentVNode("", true),
|
|
2398
|
+
unref(primaryReport) ? (openBlock(), createBlock(_component_UButton, {
|
|
2399
|
+
key: 2,
|
|
2400
|
+
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(unref(primaryReport).path, null, unref(config).app?.baseURL),
|
|
2401
|
+
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(unref(primaryReport).type),
|
|
2402
|
+
target: "_blank",
|
|
2403
|
+
size: "xs",
|
|
2404
|
+
color: "primary",
|
|
2405
|
+
variant: "outline",
|
|
2406
|
+
"aria-label": unref(primaryReport).label,
|
|
2407
|
+
title: unref(primaryReport).size ? `${unref(primaryReport).label} · ${("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(unref(primaryReport).size)}` : unref(primaryReport).label
|
|
2408
|
+
}, {
|
|
2409
|
+
default: withCtx(() => [
|
|
2410
|
+
createVNode("span", { class: "hidden @2xl:inline" }, toDisplayString(unref(primaryReport).label), 1)
|
|
2411
|
+
]),
|
|
2412
|
+
_: 1
|
|
2413
|
+
}, 8, ["href", "icon", "aria-label", "title"])) : createCommentVNode("", true)
|
|
2414
|
+
])
|
|
2415
|
+
]),
|
|
2416
|
+
createVNode(_component_StatTileGrid, { "min-tile-width": "7.5rem" }, {
|
|
2417
|
+
default: withCtx(() => [
|
|
1461
2418
|
createVNode("button", {
|
|
1462
2419
|
class: [
|
|
1463
2420
|
"rounded-lg p-3 text-left w-full transition-colors cursor-pointer",
|
|
@@ -1523,232 +2480,87 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
|
1523
2480
|
title: "Tests that never ran (maxFailures cutoff or a serial-group failure)",
|
|
1524
2481
|
onClick: ($event) => emit("filter-status", "didnotrun")
|
|
1525
2482
|
}, [
|
|
1526
|
-
createVNode("p", { class: "text-xs font-medium text-amber-700 dark:text-amber-400 uppercase tracking-wider" }, "
|
|
2483
|
+
createVNode("p", { class: "text-xs font-medium text-amber-700 dark:text-amber-400 uppercase tracking-wider" }, "Didn't run"),
|
|
1527
2484
|
createVNode("p", { class: "text-xl font-bold mt-0.5 text-amber-600 dark:text-amber-400" }, toDisplayString(__props.testRun?.didNotRunTests ?? 0), 1)
|
|
1528
2485
|
], 10, ["onClick"])
|
|
1529
2486
|
]),
|
|
1530
|
-
|
|
1531
|
-
__props.testRun ? (openBlock(), createBlock("div", {
|
|
1532
|
-
key: 0,
|
|
1533
|
-
class: "flex items-center gap-3"
|
|
1534
|
-
}, [
|
|
1535
|
-
createVNode("div", { class: "flex-1 max-w-md" }, [
|
|
1536
|
-
createVNode(_component_TestStatusBar, {
|
|
1537
|
-
passed: __props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0,
|
|
1538
|
-
failed: __props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0,
|
|
1539
|
-
skipped: __props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0,
|
|
1540
|
-
flaky: __props.testRun?.flakyTests ?? 0,
|
|
1541
|
-
"did-not-run": __props.testRun?.didNotRunTests ?? 0,
|
|
1542
|
-
total: __props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0
|
|
1543
|
-
}, null, 8, ["passed", "failed", "skipped", "flaky", "did-not-run", "total"])
|
|
1544
|
-
]),
|
|
1545
|
-
createVNode("div", { class: "flex items-center gap-3 text-xs shrink-0" }, [
|
|
1546
|
-
createVNode("div", { class: "flex items-center gap-1" }, [
|
|
1547
|
-
createVNode(_component_UIcon, {
|
|
1548
|
-
name: "i-lucide-clock",
|
|
1549
|
-
class: "size-3.5 text-zinc-400"
|
|
1550
|
-
}),
|
|
1551
|
-
createVNode(_component_DurationValue, {
|
|
1552
|
-
ms: __props.testRun?.duration,
|
|
1553
|
-
class: "font-medium"
|
|
1554
|
-
}, null, 8, ["ms"])
|
|
1555
|
-
]),
|
|
1556
|
-
__props.testRun?.avgTestDuration ? (openBlock(), createBlock("div", {
|
|
1557
|
-
key: 0,
|
|
1558
|
-
class: "flex items-center gap-1"
|
|
1559
|
-
}, [
|
|
1560
|
-
createVNode(_component_UIcon, {
|
|
1561
|
-
name: "i-lucide-gauge",
|
|
1562
|
-
class: "size-3.5 text-zinc-400"
|
|
1563
|
-
}),
|
|
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"])
|
|
1569
|
-
])) : createCommentVNode("", true),
|
|
1570
|
-
__props.testRun?.p90TestDuration ? (openBlock(), createBlock("div", {
|
|
1571
|
-
key: 1,
|
|
1572
|
-
class: "flex items-center gap-1"
|
|
1573
|
-
}, [
|
|
1574
|
-
createVNode(_component_UIcon, {
|
|
1575
|
-
name: "i-lucide-arrow-up-right",
|
|
1576
|
-
class: "size-3.5 text-orange-500"
|
|
1577
|
-
}),
|
|
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"])
|
|
1584
|
-
])) : createCommentVNode("", true),
|
|
1585
|
-
__props.totalWastedTime && __props.totalWastedTime > 0 ? (openBlock(), createBlock("div", {
|
|
1586
|
-
key: 2,
|
|
1587
|
-
class: "flex items-center gap-1"
|
|
1588
|
-
}, [
|
|
1589
|
-
createVNode(_component_UIcon, {
|
|
1590
|
-
name: "i-lucide-clock",
|
|
1591
|
-
class: "size-3.5 text-amber-500"
|
|
1592
|
-
}),
|
|
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"])
|
|
1599
|
-
])) : createCommentVNode("", true)
|
|
1600
|
-
])
|
|
1601
|
-
])) : createCommentVNode("", true)
|
|
1602
|
-
])
|
|
1603
|
-
])
|
|
1604
|
-
]),
|
|
1605
|
-
_: 1
|
|
1606
|
-
})
|
|
1607
|
-
], 2),
|
|
1608
|
-
unref(showCiEnv) ? (openBlock(), createBlock(_component_CiEnvCard, {
|
|
1609
|
-
key: 0,
|
|
1610
|
-
ci: __props.testRun?.metadata?.ci,
|
|
1611
|
-
environment: __props.testRun?.environment,
|
|
1612
|
-
"playwright-version": __props.testRun?.playwrightVersion,
|
|
1613
|
-
"reporter-version": __props.testRun?.reporterVersion,
|
|
1614
|
-
class: unref(blockColSpanClass)
|
|
1615
|
-
}, null, 8, ["ci", "environment", "playwright-version", "reporter-version", "class"])) : createCommentVNode("", true),
|
|
1616
|
-
unref(showSource) ? (openBlock(), createBlock(_component_SourceInfoCard, {
|
|
1617
|
-
key: 1,
|
|
1618
|
-
scm: __props.testRun.metadata.scm,
|
|
1619
|
-
class: unref(blockColSpanClass)
|
|
1620
|
-
}, null, 8, ["scm", "class"])) : createCommentVNode("", true),
|
|
1621
|
-
unref(showStorage) ? (openBlock(), createBlock(_component_BlockCard, {
|
|
1622
|
-
key: 2,
|
|
1623
|
-
class: unref(blockColSpanClass),
|
|
1624
|
-
title: "Storage",
|
|
1625
|
-
icon: "i-lucide-database",
|
|
1626
|
-
help: "run.reports",
|
|
1627
|
-
subtitle: unref(storageStats)?.totalFiles ? `${unref(storageStats).totalFiles} files · ${("formatBytes" in _ctx ? _ctx.formatBytes : unref(formatBytes))(unref(storageStats).totalSize)}` : void 0
|
|
1628
|
-
}, {
|
|
1629
|
-
default: withCtx(() => [
|
|
1630
|
-
__props.finalizing ? (openBlock(), createBlock("div", {
|
|
1631
|
-
key: 0,
|
|
1632
|
-
class: "flex items-center gap-3"
|
|
1633
|
-
}, [
|
|
1634
|
-
createVNode(_component_UIcon, {
|
|
1635
|
-
name: "i-lucide-upload",
|
|
1636
|
-
class: "size-5 text-info shrink-0 animate-pulse"
|
|
2487
|
+
_: 1
|
|
1637
2488
|
}),
|
|
1638
|
-
|
|
1639
|
-
createVNode("div", { class: "flex items-center justify-between mb-1" }, [
|
|
1640
|
-
createVNode("span", { class: "text-sm font-medium" }, "Finalizing test run"),
|
|
1641
|
-
createVNode("span", { class: "text-xs text-zinc-500" }, "Uploading reports & traces…")
|
|
1642
|
-
]),
|
|
1643
|
-
createVNode(_component_UProgress, {
|
|
1644
|
-
value: null,
|
|
1645
|
-
size: "sm",
|
|
1646
|
-
color: "info",
|
|
1647
|
-
class: "rounded-full animate-pulse"
|
|
1648
|
-
})
|
|
1649
|
-
])
|
|
1650
|
-
])) : createCommentVNode("", true),
|
|
1651
|
-
unref(storageStats)?.totalFiles ? (openBlock(), createBlock("div", {
|
|
1652
|
-
key: 1,
|
|
1653
|
-
class: "space-y-1.5 text-sm"
|
|
1654
|
-
}, [
|
|
1655
|
-
(openBlock(true), createBlock(Fragment, null, renderList(__props.allReports, (report) => {
|
|
1656
|
-
return openBlock(), createBlock("div", {
|
|
1657
|
-
key: report.label,
|
|
1658
|
-
class: "flex items-center justify-between gap-2 min-w-0"
|
|
1659
|
-
}, [
|
|
1660
|
-
createVNode(_component_UButton, {
|
|
1661
|
-
href: ("fileApiUrl" in _ctx ? _ctx.fileApiUrl : unref(fileApiUrl))(report.path, null, unref(config).app?.baseURL),
|
|
1662
|
-
icon: ("reportIcon" in _ctx ? _ctx.reportIcon : unref(reportIcon))(report.type),
|
|
1663
|
-
target: "_blank",
|
|
1664
|
-
size: "xs",
|
|
1665
|
-
variant: "outline",
|
|
1666
|
-
class: "min-w-0",
|
|
1667
|
-
ui: { label: "truncate" }
|
|
1668
|
-
}, {
|
|
1669
|
-
default: withCtx(() => [
|
|
1670
|
-
createTextVNode(toDisplayString(report.label), 1)
|
|
1671
|
-
]),
|
|
1672
|
-
_: 2
|
|
1673
|
-
}, 1032, ["href", "icon"]),
|
|
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)
|
|
1675
|
-
]);
|
|
1676
|
-
}), 128)),
|
|
1677
|
-
unref(storageStats).testCaseFilesCount > 0 ? (openBlock(), createBlock("div", {
|
|
2489
|
+
__props.testRun ? (openBlock(), createBlock("div", {
|
|
1678
2490
|
key: 0,
|
|
1679
|
-
class: "flex items-center
|
|
1680
|
-
}, [
|
|
1681
|
-
createVNode("span", { class: "truncate" }, "Test files (" + toDisplayString(unref(storageStats).testCaseFilesCount) + ")", 1),
|
|
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)
|
|
1683
|
-
])) : createCommentVNode("", true)
|
|
1684
|
-
])) : createCommentVNode("", true)
|
|
1685
|
-
]),
|
|
1686
|
-
_: 1
|
|
1687
|
-
}, 8, ["class", "subtitle"])) : createCommentVNode("", true),
|
|
1688
|
-
unref(showOther) ? (openBlock(), createBlock(_component_BlockCard, {
|
|
1689
|
-
key: 3,
|
|
1690
|
-
class: unref(blockColSpanClass),
|
|
1691
|
-
title: "Other",
|
|
1692
|
-
icon: "i-lucide-tags",
|
|
1693
|
-
help: "run.metadata"
|
|
1694
|
-
}, {
|
|
1695
|
-
default: withCtx(() => [
|
|
1696
|
-
createVNode("div", { class: "space-y-3 text-sm" }, [
|
|
1697
|
-
__props.testRun.metadata.tags && __props.testRun.metadata.tags.length > 0 ? (openBlock(), createBlock("div", { key: 0 }, [
|
|
1698
|
-
createVNode("div", { class: "flex flex-wrap gap-1.5" }, [
|
|
1699
|
-
(openBlock(true), createBlock(Fragment, null, renderList(__props.testRun.metadata.tags, (tag) => {
|
|
1700
|
-
return openBlock(), createBlock(_component_UBadge, {
|
|
1701
|
-
key: tag,
|
|
1702
|
-
color: "neutral",
|
|
1703
|
-
variant: "soft",
|
|
1704
|
-
size: "sm"
|
|
1705
|
-
}, {
|
|
1706
|
-
default: withCtx(() => [
|
|
1707
|
-
createTextVNode(toDisplayString(tag), 1)
|
|
1708
|
-
]),
|
|
1709
|
-
_: 2
|
|
1710
|
-
}, 1024);
|
|
1711
|
-
}), 128))
|
|
1712
|
-
])
|
|
1713
|
-
])) : createCommentVNode("", true),
|
|
1714
|
-
__props.testRun.metadata.relatedIssue ? (openBlock(), createBlock("p", {
|
|
1715
|
-
key: 1,
|
|
1716
|
-
class: "flex items-center gap-1"
|
|
2491
|
+
class: "flex items-center gap-x-4 gap-y-1.5 flex-wrap"
|
|
1717
2492
|
}, [
|
|
1718
|
-
createVNode(
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
links: __props.testRun.links ?? null,
|
|
1728
|
-
onUpdated: ($event) => _ctx.$emit("label-updated")
|
|
1729
|
-
}, null, 8, ["entity-id", "links", "onUpdated"]),
|
|
1730
|
-
__props.testRun.metadata.customData ? (openBlock(), createBlock(_component_UButton, {
|
|
1731
|
-
key: 2,
|
|
1732
|
-
size: "xs",
|
|
1733
|
-
variant: "ghost",
|
|
1734
|
-
color: "neutral",
|
|
1735
|
-
icon: __props.showCustomData ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
|
|
1736
|
-
onClick: ($event) => emit("update:showCustomData", !__props.showCustomData)
|
|
1737
|
-
}, {
|
|
1738
|
-
default: withCtx(() => [
|
|
1739
|
-
createTextVNode(" Custom data ")
|
|
2493
|
+
createVNode("div", { class: "flex-1 basis-60 min-w-44 max-w-xl" }, [
|
|
2494
|
+
createVNode(_component_TestStatusBar, {
|
|
2495
|
+
passed: __props.displayProgress?.passedTests ?? __props.testRun?.passedTests ?? 0,
|
|
2496
|
+
failed: __props.displayProgress?.failedTests ?? __props.testRun?.failedTests ?? 0,
|
|
2497
|
+
skipped: __props.displayProgress?.skippedTests ?? __props.testRun?.skippedTests ?? 0,
|
|
2498
|
+
flaky: __props.testRun?.flakyTests ?? 0,
|
|
2499
|
+
"did-not-run": __props.testRun?.didNotRunTests ?? 0,
|
|
2500
|
+
total: __props.displayProgress?.totalTests ?? __props.testRun?.totalTests ?? 0
|
|
2501
|
+
}, null, 8, ["passed", "failed", "skipped", "flaky", "did-not-run", "total"])
|
|
1740
2502
|
]),
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
2503
|
+
createVNode("div", { class: "flex items-center flex-wrap gap-x-3 gap-y-1 text-xs shrink-0" }, [
|
|
2504
|
+
createVNode("div", { class: "flex items-center gap-1" }, [
|
|
2505
|
+
createVNode(_component_UIcon, {
|
|
2506
|
+
name: "i-lucide-clock",
|
|
2507
|
+
class: "size-3.5 text-zinc-400"
|
|
2508
|
+
}),
|
|
2509
|
+
createVNode(_component_DurationValue, {
|
|
2510
|
+
ms: __props.testRun?.duration,
|
|
2511
|
+
class: "font-medium"
|
|
2512
|
+
}, null, 8, ["ms"])
|
|
2513
|
+
]),
|
|
2514
|
+
__props.testRun?.avgTestDuration ? (openBlock(), createBlock("div", {
|
|
2515
|
+
key: 0,
|
|
2516
|
+
class: "flex items-center gap-1"
|
|
2517
|
+
}, [
|
|
2518
|
+
createVNode(_component_UIcon, {
|
|
2519
|
+
name: "i-lucide-gauge",
|
|
2520
|
+
class: "size-3.5 text-zinc-400"
|
|
2521
|
+
}),
|
|
2522
|
+
createVNode("span", { class: "text-zinc-500" }, "Avg"),
|
|
2523
|
+
createVNode(_component_DurationValue, {
|
|
2524
|
+
ms: __props.testRun.avgTestDuration,
|
|
2525
|
+
class: "font-medium"
|
|
2526
|
+
}, null, 8, ["ms"])
|
|
2527
|
+
])) : createCommentVNode("", true),
|
|
2528
|
+
__props.testRun?.p90TestDuration ? (openBlock(), createBlock("div", {
|
|
2529
|
+
key: 1,
|
|
2530
|
+
class: "flex items-center gap-1"
|
|
2531
|
+
}, [
|
|
2532
|
+
createVNode(_component_UIcon, {
|
|
2533
|
+
name: "i-lucide-arrow-up-right",
|
|
2534
|
+
class: "size-3.5 text-orange-500"
|
|
2535
|
+
}),
|
|
2536
|
+
createVNode("span", { class: "text-zinc-500" }, "P90"),
|
|
2537
|
+
createVNode(_component_DurationValue, {
|
|
2538
|
+
ms: __props.testRun.p90TestDuration,
|
|
2539
|
+
class: "font-medium text-orange-600 dark:text-orange-400",
|
|
2540
|
+
"unit-class": "opacity-60"
|
|
2541
|
+
}, null, 8, ["ms"])
|
|
2542
|
+
])) : createCommentVNode("", true),
|
|
2543
|
+
__props.totalWastedTime && __props.totalWastedTime > 0 ? (openBlock(), createBlock("div", {
|
|
2544
|
+
key: 2,
|
|
2545
|
+
class: "flex items-center gap-1"
|
|
2546
|
+
}, [
|
|
2547
|
+
createVNode(_component_UIcon, {
|
|
2548
|
+
name: "i-lucide-clock",
|
|
2549
|
+
class: "size-3.5 text-amber-500"
|
|
2550
|
+
}),
|
|
2551
|
+
createVNode("span", { class: "text-zinc-500" }, "Wasted"),
|
|
2552
|
+
createVNode(_component_DurationValue, {
|
|
2553
|
+
ms: __props.totalWastedTime,
|
|
2554
|
+
class: "font-medium text-amber-600 dark:text-amber-400",
|
|
2555
|
+
"unit-class": "opacity-60"
|
|
2556
|
+
}, null, 8, ["ms"])
|
|
2557
|
+
])) : createCommentVNode("", true)
|
|
1746
2558
|
])
|
|
1747
2559
|
])) : createCommentVNode("", true)
|
|
1748
2560
|
])
|
|
1749
2561
|
]),
|
|
1750
2562
|
_: 1
|
|
1751
|
-
}
|
|
2563
|
+
})
|
|
1752
2564
|
])
|
|
1753
2565
|
];
|
|
1754
2566
|
}
|
|
@@ -2418,12 +3230,12 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
2418
3230
|
}
|
|
2419
3231
|
__expose({ scrollToCase });
|
|
2420
3232
|
return (_ctx, _push, _parent, _attrs) => {
|
|
2421
|
-
const _component_FilterToolbar = __nuxt_component_4$
|
|
3233
|
+
const _component_FilterToolbar = __nuxt_component_4$3;
|
|
2422
3234
|
const _component_UIcon = _sfc_main$p;
|
|
2423
3235
|
const _component_HelpHint = __nuxt_component_2$2;
|
|
2424
3236
|
const _component_UInput = _sfc_main$d$1;
|
|
2425
|
-
const _component_USelect = _sfc_main$
|
|
2426
|
-
const _component_UCheckbox = _sfc_main$
|
|
3237
|
+
const _component_USelect = _sfc_main$q;
|
|
3238
|
+
const _component_UCheckbox = _sfc_main$r;
|
|
2427
3239
|
const _component_UButton = _sfc_main$k;
|
|
2428
3240
|
const _component_TestCasesTree = __nuxt_component_7;
|
|
2429
3241
|
const _component_ClientOnly = __nuxt_component_7$1;
|
|
@@ -2802,8 +3614,8 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
2802
3614
|
return (_ctx, _push, _parent, _attrs) => {
|
|
2803
3615
|
const _component_ErrorState = __nuxt_component_5$1;
|
|
2804
3616
|
const _component_UButton = _sfc_main$k;
|
|
2805
|
-
const _component_LoadingState =
|
|
2806
|
-
const _component_EmptyState =
|
|
3617
|
+
const _component_LoadingState = __nuxt_component_12$2;
|
|
3618
|
+
const _component_EmptyState = __nuxt_component_4$2;
|
|
2807
3619
|
const _component_UIcon = _sfc_main$p;
|
|
2808
3620
|
const _component_HelpHint = __nuxt_component_2$2;
|
|
2809
3621
|
const _component_SectionCard = __nuxt_component_11;
|
|
@@ -3830,12 +4642,12 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
3830
4642
|
const _component_UIcon = _sfc_main$p;
|
|
3831
4643
|
const _component_HelpHint = __nuxt_component_2$2;
|
|
3832
4644
|
const _component_UButton = _sfc_main$k;
|
|
3833
|
-
const _component_UCard = _sfc_main$
|
|
4645
|
+
const _component_UCard = _sfc_main$n;
|
|
3834
4646
|
const _component_TableScroller = __nuxt_component_3$2;
|
|
3835
|
-
const _component_UTable = _sfc_main$
|
|
4647
|
+
const _component_UTable = _sfc_main$j;
|
|
3836
4648
|
const _component_UBadge = _sfc_main$7$1;
|
|
3837
4649
|
const _component_NuxtLink = __nuxt_component_12$1;
|
|
3838
|
-
const _component_UModal = _sfc_main$
|
|
4650
|
+
const _component_UModal = _sfc_main$o;
|
|
3839
4651
|
const _component_ClusterDiagnosis = __nuxt_component_9;
|
|
3840
4652
|
_push(`<!--[--><div class="pt-4 space-y-3">`);
|
|
3841
4653
|
if (unref(loading)) {
|
|
@@ -4958,13 +5770,13 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
4958
5770
|
copy(context.value?.commitRange?.gitCommand);
|
|
4959
5771
|
}
|
|
4960
5772
|
return (_ctx, _push, _parent, _attrs) => {
|
|
4961
|
-
const _component_LoadingState =
|
|
4962
|
-
const _component_EmptyState =
|
|
5773
|
+
const _component_LoadingState = __nuxt_component_12$2;
|
|
5774
|
+
const _component_EmptyState = __nuxt_component_4$2;
|
|
4963
5775
|
const _component_UIcon = _sfc_main$p;
|
|
4964
5776
|
const _component_HelpHint = __nuxt_component_2$2;
|
|
4965
5777
|
const _component_NuxtLink = __nuxt_component_12$1;
|
|
4966
5778
|
const _component_UBadge = _sfc_main$7$1;
|
|
4967
|
-
const _component_UCard = _sfc_main$
|
|
5779
|
+
const _component_UCard = _sfc_main$n;
|
|
4968
5780
|
const _component_UButton = _sfc_main$k;
|
|
4969
5781
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "pt-4" }, _attrs))}>`);
|
|
4970
5782
|
if (unref(loading)) {
|
|
@@ -5326,7 +6138,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
5326
6138
|
const _component_HelpHint = __nuxt_component_2$2;
|
|
5327
6139
|
const _component_UPopover = _sfc_main$8$1;
|
|
5328
6140
|
const _component_UButton = _sfc_main$k;
|
|
5329
|
-
const _component_UCheckbox = _sfc_main$
|
|
6141
|
+
const _component_UCheckbox = _sfc_main$r;
|
|
5330
6142
|
_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" : "")} `);
|
|
5331
6143
|
if (__props.shardTotal && __props.shardTotal > 1) {
|
|
5332
6144
|
_push(`<!--[--> · ${ssrInterpolate(__props.shardTotal)} shard${ssrInterpolate(__props.shardTotal > 1 ? "s" : "")}<!--]-->`);
|
|
@@ -6227,15 +7039,15 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
6227
7039
|
}
|
|
6228
7040
|
];
|
|
6229
7041
|
return (_ctx, _push, _parent, _attrs) => {
|
|
6230
|
-
const _component_USelectMenu = _sfc_main$
|
|
7042
|
+
const _component_USelectMenu = _sfc_main$l;
|
|
6231
7043
|
const _component_RunStatusBadge = __nuxt_component_13$1;
|
|
6232
7044
|
const _component_UButton = _sfc_main$k;
|
|
6233
7045
|
const _component_UIcon = _sfc_main$p;
|
|
6234
|
-
const _component_UAlert = _sfc_main$
|
|
7046
|
+
const _component_UAlert = _sfc_main$m;
|
|
6235
7047
|
const _component_MarkerBadge = __nuxt_component_5;
|
|
6236
7048
|
const _component_UBadge = _sfc_main$7$1;
|
|
6237
7049
|
const _component_TableScroller = __nuxt_component_3$2;
|
|
6238
|
-
const _component_UTable = _sfc_main$
|
|
7050
|
+
const _component_UTable = _sfc_main$j;
|
|
6239
7051
|
const _component_DurationValue = __nuxt_component_14$1;
|
|
6240
7052
|
_push(`<div${ssrRenderAttrs(_attrs)}>`);
|
|
6241
7053
|
if (__props.testRun && !isLive.value) {
|
|
@@ -6822,9 +7634,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
6822
7634
|
];
|
|
6823
7635
|
return (_ctx, _push, _parent, _attrs) => {
|
|
6824
7636
|
const _component_UIcon = _sfc_main$p;
|
|
6825
|
-
const _component_UTable = _sfc_main$
|
|
7637
|
+
const _component_UTable = _sfc_main$j;
|
|
6826
7638
|
const _component_UBadge = _sfc_main$7$1;
|
|
6827
7639
|
const _component_DurationValue = __nuxt_component_14$1;
|
|
7640
|
+
const _component_FeatureUnavailable = __nuxt_component_4$1;
|
|
6828
7641
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "flex flex-col overflow-hidden" }, _attrs))}>`);
|
|
6829
7642
|
if (unref(loading)) {
|
|
6830
7643
|
_push(`<div class="flex-1 flex items-center justify-center text-gray-500 gap-2">`);
|
|
@@ -6957,12 +7770,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
6957
7770
|
_: 1
|
|
6958
7771
|
}, _parent));
|
|
6959
7772
|
} else {
|
|
6960
|
-
_push(
|
|
6961
|
-
|
|
6962
|
-
|
|
6963
|
-
|
|
7773
|
+
_push(ssrRenderComponent(_component_FeatureUnavailable, {
|
|
7774
|
+
class: "flex-1",
|
|
7775
|
+
icon: "i-lucide-wifi-off",
|
|
7776
|
+
title: "No network requests captured",
|
|
7777
|
+
text: "Slow endpoints need the Piwi capture fixtures — extend your Playwright test with piwiFixtures and request timing rides along with every run.",
|
|
7778
|
+
doc: "capture-fixtures"
|
|
6964
7779
|
}, null, _parent));
|
|
6965
|
-
_push(`<p> No network request data. Add the <code class="text-xs bg-gray-100 dark:bg-gray-800 px-1 rounded font-mono">@piwitests/reporter</code> fixtures to your test setup. </p></div>`);
|
|
6966
7780
|
}
|
|
6967
7781
|
_push(`</div>`);
|
|
6968
7782
|
};
|
|
@@ -7170,11 +7984,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
7170
7984
|
}
|
|
7171
7985
|
return (_ctx, _push, _parent, _attrs) => {
|
|
7172
7986
|
const _component_UDashboardPanel = _sfc_main$1$1;
|
|
7173
|
-
const _component_UDashboardNavbar = _sfc_main$
|
|
7987
|
+
const _component_UDashboardNavbar = _sfc_main$h;
|
|
7174
7988
|
const _component_UDashboardSidebarCollapse = _sfc_main$1$2;
|
|
7175
7989
|
const _component_BreadcrumbNav = __nuxt_component_3$1;
|
|
7176
7990
|
const _component_NuxtLink = __nuxt_component_12$1;
|
|
7177
|
-
const _component_UTooltip = _sfc_main$
|
|
7991
|
+
const _component_UTooltip = _sfc_main$i;
|
|
7178
7992
|
const _component_UIcon = _sfc_main$p;
|
|
7179
7993
|
const _component_NavbarActions = __nuxt_component_4;
|
|
7180
7994
|
const _component_DetailPageLayout = __nuxt_component_8;
|
|
@@ -7835,4 +8649,4 @@ _sfc_main.setup = (props, ctx) => {
|
|
|
7835
8649
|
};
|
|
7836
8650
|
|
|
7837
8651
|
export { _sfc_main as default };
|
|
7838
|
-
//# sourceMappingURL=_id_-
|
|
8652
|
+
//# sourceMappingURL=_id_-8cGIgeg6.mjs.map
|