- Add ZiggyVue plugin to app.js setup (fixes 'route is not a function' in all Vue template usages) - Add ziggy-js as production dependency (was missing) - Add CSRF meta tag to app.blade.php - Add date formatting helpers to Services/Index.vue - Name api.songs resource route to avoid Ziggy collision - Increase Playwright timeout to 90s for CI stability - Reduce sync test polling from 325 to 50 attempts
902 B
902 B
[2026-03-01] Task 5: ZiggyVue Plugin Missing
Severity: HIGH — Blocks all Vue component rendering that uses route()
File: resources/js/app.js
Error: TypeError: o.route is not a function on every page using route() in templates
Root Cause: @routes blade directive provides window.route global, but Vue 3 <script setup> templates resolve against component render proxy, not window. The ZiggyVue plugin that bridges this gap is NOT registered in app.js.
Impact: Login page button, navigation links, and any template using route() fail to render client-side.
Fix Required:
// In resources/js/app.js
import { ZiggyVue } from 'ziggy-js';
createApp({ render: () => h(App, props) })
.use(plugin)
.use(ZiggyVue)
.mount(el);
Workaround Applied: Auth setup uses page.request.post('/dev-login') instead of clicking the UI button.