import { render, screen } from '@testing-library/vue';
import N8nAlert from './Alert.vue';
describe('components', () => {
describe('N8nAlert', () => {
it('should render with props', () => {
render(N8nAlert, {
props: { title: 'Title', description: 'Message' },
});
expect(screen.getByRole('alert')).toBeVisible();
expect(screen.getByText('Title')).toBeVisible();
expect(screen.getByText('Message')).toBeVisible();
});
it('should render slots instead of props', () => {
const { container } = render(N8nAlert, {
props: { showIcon: false },
slots: {
title: 'Title',
default: 'Message',
aside: '',
icon: '',
},
global: {
components: {
'n8n-icon': {
template: '',
props: ['icon'],
},
},
},
});
expect(screen.getByRole('alert')).toBeVisible();
expect(screen.getByText('Title')).toBeVisible();
expect(screen.getByText('Message')).toBeVisible();
expect(screen.getByRole('button')).toBeVisible();
expect(container.querySelector('.n8n-icon')).toBeInTheDocument();
});
});
});