Files
Automata/packages/editor-ui/src/components/__tests__/ChatEmbedModal.test.ts

46 lines
1.3 KiB
TypeScript

import ChatEmbedModal from '@/components/ChatEmbedModal.vue';
import { createTestingPinia } from '@pinia/testing';
import { CHAT_EMBED_MODAL_KEY, STORES, WEBHOOK_NODE_TYPE } from '@/constants';
import { createComponentRenderer } from '@/__tests__/render';
import { waitFor } from '@testing-library/vue';
const renderComponent = createComponentRenderer(ChatEmbedModal, {
props: {
teleported: false,
appendToBody: false,
},
pinia: createTestingPinia({
initialState: {
[STORES.UI]: {
modalsById: {
[CHAT_EMBED_MODAL_KEY]: { open: true },
},
},
[STORES.WORKFLOWS]: {
workflow: {
nodes: [{ type: WEBHOOK_NODE_TYPE }],
},
},
},
}),
});
describe('ChatEmbedModal', () => {
it('should render correctly', async () => {
const wrapper = renderComponent();
await waitFor(() =>
expect(wrapper.container.querySelector('.modal-content')).toBeInTheDocument(),
);
const tabs = wrapper.container.querySelectorAll('.n8n-tabs .tab');
const activeTab = wrapper.container.querySelector('.n8n-tabs .tab.activeTab');
const editor = wrapper.container.querySelector('.cm-editor');
expect(tabs).toHaveLength(4);
expect(activeTab).toBeVisible();
expect(activeTab).toHaveTextContent('CDN Embed');
expect(editor).toBeVisible();
});
});