mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-20 11:22:15 +00:00
57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
import { userEvent } from '@testing-library/user-event';
|
|
import NDVHeader from '@/components/NDVHeader.vue';
|
|
import { renderComponent } from '../__tests__/render';
|
|
|
|
describe('NDVHeader', () => {
|
|
const defaultProps = {
|
|
nodeName: 'My Custom Name',
|
|
nodeTypeName: 'Edit Fields',
|
|
docsUrl: 'https://example.com/docs',
|
|
icon: { icon: 'code' },
|
|
readOnly: false,
|
|
};
|
|
|
|
it('renders docs label with node type name if name is customized', () => {
|
|
const { getByText } = renderComponent(NDVHeader, { props: defaultProps });
|
|
expect(getByText('Edit Fields Docs')).toBeInTheDocument();
|
|
});
|
|
|
|
it('renders nodeTypeName if docsUrl is not provided and name is custom', () => {
|
|
const { getByText, queryByText } = renderComponent(NDVHeader, {
|
|
props: {
|
|
...defaultProps,
|
|
docsUrl: undefined,
|
|
},
|
|
});
|
|
expect(getByText('Edit Fields')).toBeInTheDocument();
|
|
expect(queryByText('Docs')).not.toBeInTheDocument();
|
|
});
|
|
|
|
it('emits rename when inline text is changed', async () => {
|
|
const { getByTestId, emitted } = renderComponent(NDVHeader, {
|
|
props: defaultProps,
|
|
});
|
|
|
|
const input = getByTestId('inline-edit-input');
|
|
const preview = getByTestId('inline-edit-preview');
|
|
await userEvent.click(preview);
|
|
await userEvent.tripleClick(input);
|
|
await userEvent.keyboard('Updated Name');
|
|
await userEvent.keyboard('{enter}');
|
|
|
|
expect(emitted().rename).toHaveLength(1);
|
|
expect(emitted().rename[0]).toEqual(['Updated Name']);
|
|
});
|
|
|
|
it('emits close when close button is clicked', async () => {
|
|
const { getByRole, emitted } = renderComponent(NDVHeader, {
|
|
props: defaultProps,
|
|
});
|
|
|
|
const closeButton = getByRole('button');
|
|
await userEvent.click(closeButton);
|
|
|
|
expect(emitted().close).toBeTruthy();
|
|
});
|
|
});
|