feat(10-08): skeleton tables + BreadcrumbBar + EmptyState in AdminAuditView and AdminUsersView

- AdminAuditView: add BreadcrumbBar (Audit Log, showRoot=false), replace loading spinner with 8-row skeleton tbody, replace empty div with EmptyState (icon=clipboardList) + Clear filters CTA
- AdminUsersView: add BreadcrumbBar (Users, showRoot=false), replace loading spinner with 5-row x 6-col skeleton tbody
- Promote CTA test to use real EmptyState (no stub) so slot content renders
- All 8 skeleton tests pass GREEN
This commit is contained in:
curo1305
2026-06-15 20:25:05 +02:00
parent ec5fd23ec2
commit 8e360f4f21
3 changed files with 74 additions and 48 deletions
@@ -79,7 +79,11 @@ describe('UX-01 (audit empty): EmptyState renders when entries is empty after lo
it('EmptyState includes a Clear filters CTA button', async () => {
const { adminListAuditLog } = await import('../../../api/client.js')
adminListAuditLog.mockResolvedValue({ items: [], total: 0 })
const wrapper = await mountAudit()
// Mount with EmptyState NOT stubbed so slot content renders
const { default: AdminAuditView } = await import('../AdminAuditView.vue')
const wrapper = mount(AdminAuditView, {
global: { stubs: { BreadcrumbBar: true, AppIcon: true }, plugins: [createPinia()] },
})
await new Promise(r => setTimeout(r, 50))
await wrapper.vm.$nextTick()
expect(wrapper.text()).toContain('Clear filters')