Initial commit

This commit is contained in:
AI
2026-05-03 07:26:12 +00:00
commit 776d374b59
57 changed files with 15968 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { createPinia, setActivePinia } from 'pinia'
import { useUiStore } from '../app/stores/ui'
describe('useUiStore', () => {
beforeEach(() => {
setActivePinia(createPinia())
vi.restoreAllMocks()
})
it('tracks page loading state across nested requests', () => {
const store = useUiStore()
expect(store.isPageLoading).toBe(false)
store.startLoading()
store.startLoading()
expect(store.isPageLoading).toBe(true)
store.stopLoading()
expect(store.isPageLoading).toBe(true)
store.stopLoading()
store.stopLoading()
expect(store.isPageLoading).toBe(false)
store.setLoading(true)
expect(store.isPageLoading).toBe(true)
store.setLoading(false)
expect(store.isPageLoading).toBe(false)
})
it('creates notifications with a default tone and removes them by id', () => {
const store = useUiStore()
vi.spyOn(crypto, 'randomUUID').mockReturnValue('generated-id')
const id = store.pushNotification({
title: 'Saved',
message: 'Changes were stored.'
})
expect(id).toBe('generated-id')
expect(store.notifications).toEqual([
{
id: 'generated-id',
title: 'Saved',
message: 'Changes were stored.',
tone: 'info'
}
])
store.pushNotification({
id: 'custom-id',
title: 'Warning',
tone: 'warning'
})
expect(store.notifications).toHaveLength(2)
store.removeNotification('generated-id')
expect(store.notifications.map((notification) => notification.id)).toEqual(['custom-id'])
store.clearNotifications()
expect(store.notifications).toEqual([])
})
})