Initial commit
This commit is contained in:
40
test/nuxt/counter-widget.test.ts
Normal file
40
test/nuxt/counter-widget.test.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { describe, it, expect, vi } from 'vitest'
|
||||
import { mountSuspended, mockNuxtImport } from '@nuxt/test-utils/runtime'
|
||||
import { ref } from 'vue'
|
||||
import CounterWidget from '~/components/Counter/Widget.vue'
|
||||
|
||||
const { useCounterMock, useUserMock } = vi.hoisted(() => ({
|
||||
useCounterMock: vi.fn(),
|
||||
// Default return value set here so the global fetchUser middleware
|
||||
// doesn't crash before the test body runs
|
||||
useUserMock: vi.fn(() => ({
|
||||
isAuthenticated: false,
|
||||
user: null,
|
||||
authRefresh: vi.fn()
|
||||
}))
|
||||
}))
|
||||
|
||||
mockNuxtImport('useCounter', () => useCounterMock)
|
||||
|
||||
// Silence the global fetchUser middleware — prevents a real PocketBase authRefresh call
|
||||
mockNuxtImport('useUser', () => useUserMock)
|
||||
|
||||
describe('Counter/Widget', () => {
|
||||
it('renders the current count and increment/decrement buttons', async () => {
|
||||
useCounterMock.mockReturnValue({
|
||||
count: ref(42),
|
||||
recordId: ref('rec1'),
|
||||
fetchCurrentCount: vi.fn(),
|
||||
subscribeToChanges: vi.fn(),
|
||||
unsubscribe: vi.fn(),
|
||||
increment: vi.fn(),
|
||||
reset: vi.fn()
|
||||
})
|
||||
|
||||
const wrapper = await mountSuspended(CounterWidget)
|
||||
|
||||
expect(wrapper.text()).toContain('42')
|
||||
// Both +/- icon buttons should be present
|
||||
expect(wrapper.findAll('button').length).toBeGreaterThanOrEqual(2)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user