Also: fixes DialogContent/DialogFooter's close/action buttons to use our actual Button variant set (secondary) instead of the CLI's default ghost/outline variants, which don't exist on our re-themed Button. Adds an eslint override so shadcn-vue's single-word ui/ component names (Button.vue, Dialog.vue, ...) aren't flagged by vue/multi-word-component-names. This was the last PrimeVue-wrapped component, so lib/index.ts no longer imports anything from primevue or uses the ptThemeable helper. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30 lines
1 KiB
TypeScript
30 lines
1 KiB
TypeScript
import { describe, it, expect, vi } from 'vitest'
|
|
import type { App } from 'vue'
|
|
import { createNychthemeron, LoadingIcon } from '../src/index'
|
|
|
|
describe('createNychthemeron', () => {
|
|
it('returns a Vue plugin with install method', () => {
|
|
const plugin = createNychthemeron()
|
|
expect(typeof plugin.install).toBe('function')
|
|
})
|
|
|
|
it('install registers NychButton and NychLoadingIcon globally', () => {
|
|
const plugin = createNychthemeron()
|
|
const mockApp = { component: vi.fn() } as unknown as App
|
|
plugin.install(mockApp)
|
|
expect(mockApp.component).toHaveBeenCalledWith('NychButton', expect.anything())
|
|
expect(mockApp.component).toHaveBeenCalledWith('NychLoadingIcon', expect.anything())
|
|
})
|
|
|
|
it('exposes Button and LoadingIcon components', () => {
|
|
const { Button: btn, LoadingIcon: icon } = createNychthemeron()
|
|
expect(btn).toBeDefined()
|
|
expect(icon).toBeDefined()
|
|
})
|
|
})
|
|
|
|
describe('LoadingIcon', () => {
|
|
it('is a valid Vue component', () => {
|
|
expect(LoadingIcon).toBeDefined()
|
|
})
|
|
})
|