47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
|
|
import { mount } from '@vue/test-utils'
|
||
|
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||
|
|
import { ref } from 'vue'
|
||
|
|
|
||
|
|
const mockSelectOrganization = vi.fn()
|
||
|
|
|
||
|
|
const mockOrganizations = [
|
||
|
|
{ id: '1', name: 'Org 1', apiKeys: [{ name: 'key1' }, { name: 'key2' }] },
|
||
|
|
{ id: '2', name: 'Org 2', apiKeys: [{ name: 'key3' }] },
|
||
|
|
{ id: '3', name: 'Org 3', apiKeys: [] },
|
||
|
|
]
|
||
|
|
|
||
|
|
// TODO: Add more comprehensive component tests once vitest module mocking issues are resolved
|
||
|
|
// For now, the component is indirectly tested through useOrganizationSelector tests
|
||
|
|
// and manual testing shows it works correctly
|
||
|
|
|
||
|
|
describe('OrganizationSwitcher - Single Organization', () => {
|
||
|
|
beforeEach(() => {
|
||
|
|
vi.resetModules()
|
||
|
|
mockSelectOrganization.mockClear()
|
||
|
|
|
||
|
|
// Mock with single organization
|
||
|
|
vi.mock('~/composables/useOrganizationSelector', () => ({
|
||
|
|
useOrganizationSelector: () => ({
|
||
|
|
organizations: ref([mockOrganizations[0]]),
|
||
|
|
selectedOrganization: ref(mockOrganizations[0]),
|
||
|
|
selectedOrgId: ref('1'),
|
||
|
|
selectOrganization: mockSelectOrganization,
|
||
|
|
}),
|
||
|
|
}))
|
||
|
|
})
|
||
|
|
|
||
|
|
it('should show a chip for single organization', async () => {
|
||
|
|
const module = await import('../OrganizationSwitcher.vue')
|
||
|
|
const wrapper = mount(module.default)
|
||
|
|
|
||
|
|
const html = wrapper.html()
|
||
|
|
|
||
|
|
// Should show chip
|
||
|
|
expect(html).toContain('v-chip')
|
||
|
|
expect(html).toContain('Org 1')
|
||
|
|
|
||
|
|
// Menu should not exist
|
||
|
|
expect(html).not.toContain('v-menu')
|
||
|
|
})
|
||
|
|
})
|