mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 02:21:13 +00:00
69 lines
2.0 KiB
TypeScript
69 lines
2.0 KiB
TypeScript
import { setActivePinia } from 'pinia';
|
|
import { createTestingPinia } from '@pinia/testing';
|
|
import { createComponentRenderer } from '@/__tests__/render';
|
|
import CredentialCard from '@/components/CredentialCard.vue';
|
|
import { useUIStore } from '@/stores/ui.store';
|
|
import { useUsersStore } from '@/stores/users.store';
|
|
import { useCredentialsStore } from '@/stores/credentials.store';
|
|
import type { ICredentialsResponse } from '@/Interface';
|
|
import type { ProjectSharingData } from '@/types/projects.types';
|
|
|
|
const renderComponent = createComponentRenderer(CredentialCard);
|
|
|
|
const createCredential = (overrides = {}): ICredentialsResponse => ({
|
|
id: '',
|
|
createdAt: '',
|
|
updatedAt: '',
|
|
type: '',
|
|
name: '',
|
|
sharedWithProjects: [],
|
|
homeProject: {} as ProjectSharingData,
|
|
...overrides,
|
|
});
|
|
|
|
describe('CredentialCard', () => {
|
|
let uiStore: ReturnType<typeof useUIStore>;
|
|
let usersStore: ReturnType<typeof useUsersStore>;
|
|
let credentialsStore: ReturnType<typeof useCredentialsStore>;
|
|
|
|
beforeEach(() => {
|
|
const pinia = createTestingPinia();
|
|
setActivePinia(pinia);
|
|
uiStore = useUIStore();
|
|
usersStore = useUsersStore();
|
|
credentialsStore = useCredentialsStore();
|
|
});
|
|
|
|
it('should render name and home project name', () => {
|
|
const projectName = 'Test Project';
|
|
const data = createCredential({
|
|
homeProject: {
|
|
name: projectName,
|
|
},
|
|
});
|
|
const { getByRole, getByTestId } = renderComponent({ props: { data } });
|
|
|
|
const heading = getByRole('heading');
|
|
const badge = getByTestId('card-badge');
|
|
|
|
expect(heading).toHaveTextContent(data.name);
|
|
expect(badge).toHaveTextContent(projectName);
|
|
});
|
|
|
|
it('should render name and personal project name', () => {
|
|
const projectName = 'John Doe <john@n8n.io>';
|
|
const data = createCredential({
|
|
homeProject: {
|
|
name: projectName,
|
|
},
|
|
});
|
|
const { getByRole, getByTestId } = renderComponent({ props: { data } });
|
|
|
|
const heading = getByRole('heading');
|
|
const badge = getByTestId('card-badge');
|
|
|
|
expect(heading).toHaveTextContent(data.name);
|
|
expect(badge).toHaveTextContent('John Doe');
|
|
});
|
|
});
|