CluPilotCloud/resources/views/livewire/admin
nexxo 86bf4f26e0
tests / pest (push) Failing after 7m34s Details
tests / assets (push) Successful in 22s Details
tests / release (push) Has been skipped Details
List issued invoices in the console, with no way to change one
Read-only by design, and the absence is the feature: an issued invoice is
corrected by cancelling it and issuing another, which is the only lawful way to
correct one. There is no edit button here whose absence needs explaining, and a
test asserts there is none.

The PDF is a plain route rather than a Livewire action. A download is a
download, and routing one through a component round-trip only adds a way for it
to fail.

Two findings on the way, and both were mine.

The year filter used YEAR() in raw SQL, which is MySQL's. SQLite has no such
function, so the page worked against the real database and threw against the
test one — a query that only runs on one engine makes the test database a
different product from the one being shipped. The years are derived in PHP now.

And a test put a User on the operator guard, where EnsureAdmin calls isActive()
on it and a 403 becomes a 500. Not a code defect: actingAs() calls
Auth::shouldUse(), so a second actingAs() in the same test with no guard named
lands on whichever guard the FIRST one named. That trap is written up in
CLAUDE.md, I quoted it earlier today, and I walked into it anyway. The tests are
split now and both name their guard.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-29 02:21:15 +02:00
..
confirm-delete-datacenter.blade.php One definition of the navigation, and the country instead of the building 2026-07-27 16:09:39 +02:00
confirm-delete-plan-draft.blade.php feat(admin): a console for creating, pricing and scheduling plans 2026-07-26 12:41:51 +02:00
confirm-delete-vpn-peer.blade.php feat(admin): VPN access management with live peer state 2026-07-25 21:38:12 +02:00
confirm-disable-two-factor.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-end-other-sessions.blade.php Show where an account is signed in, and let it sign the other places out 2026-07-28 23:38:17 +02:00
confirm-forget-secret.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-reissue-vpn-peer.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
confirm-remove-host.blade.php One definition of the navigation, and the country instead of the building 2026-07-27 16:09:39 +02:00
confirm-save-env.blade.php Add a raw .env editor to the Integrations page, with a net under it 2026-07-29 01:51:27 +02:00
confirm-save-secret.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00
customers.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
datacenters.blade.php Let a datacenter code be corrected while nothing depends on it, and say which building 2026-07-28 22:25:21 +02:00
edit-datacenter.blade.php Let a datacenter code be corrected while nothing depends on it, and say which building 2026-07-28 22:25:21 +02:00
edit-invoice-series.blade.php Give the console a Finance tab: company details, VAT rate, invoice series 2026-07-29 01:18:43 +02:00
finance.blade.php Give the console a Finance tab: company details, VAT rate, invoice series 2026-07-29 01:18:43 +02:00
host-create.blade.php Let a datacenter code be corrected while nothing depends on it, and say which building 2026-07-28 22:25:21 +02:00
host-detail.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
hosts.blade.php Read VPN host state from the synced peer table, not a live hub call 2026-07-29 00:18:21 +02:00
instance-admin-access.blade.php One definition of the navigation, and the country instead of the building 2026-07-27 16:09:39 +02:00
instances.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
integrations.blade.php Add a raw .env editor to the Integrations page, with a net under it 2026-07-29 01:51:27 +02:00
invoices.blade.php List issued invoices in the console, with no way to change one 2026-07-29 02:21:15 +02:00
mail.blade.php Bound the mail test-send and real send to a timeout instead of hanging 2026-07-28 16:36:14 +02:00
maintenance.blade.php Show times on the operator's clock, keep storing them in UTC 2026-07-27 17:32:21 +02:00
overview.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
plan-versions.blade.php Show times on the operator's clock, keep storing them in UTC 2026-07-27 17:32:21 +02:00
plans.blade.php Show times on the operator's clock, keep storing them in UTC 2026-07-27 17:32:21 +02:00
provisioning.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
revenue.blade.php Match the panel to the approved template, measured rather than assumed 2026-07-27 17:08:05 +02:00
settings.blade.php Show where an account is signed in, and let it sign the other places out 2026-07-28 23:38:17 +02:00
two-factor-setup.blade.php Let a half-finished two-factor enrolment be cancelled, and rework the setup page 2026-07-28 22:25:27 +02:00
vpn-config-access.blade.php feat(vpn): ownership, a Developer role, and password-gated config retrieval 2026-07-25 22:31:54 +02:00
vpn.blade.php Replace native confirm() dialogs with the app's own modal pattern 2026-07-28 19:34:27 +02:00