Files
pepperplus-ui/test/pages/visProgPage/visualProgrammingUI/nodes/UniversalNodes.test.tsx

55 lines
1.9 KiB
TypeScript

import { describe, beforeEach } from '@jest/globals';
import { screen } from '@testing-library/react';
import { renderWithProviders, resetFlowStore } from '../.././/./../../test-utils/test-utils';
import type { XYPosition } from '@xyflow/react';
import { NodeTypes, NodeDefaults } from '../../../../../src/pages/VisProgPage/visualProgrammingUI/NodeRegistry';
import '@testing-library/jest-dom'
describe('NormNode', () => {
// let user: ReturnType<typeof userEvent.setup>;
// Copied from VisStores.
function createNode(id: string, type: string, position: XYPosition, data: Record<string, unknown>, deletable? : boolean) {
const defaultData = NodeDefaults[type as keyof typeof NodeDefaults]
const newData = {
id: id,
type: type,
position: position,
data: data,
deletable: deletable,
}
return {...defaultData, ...newData}
}
beforeEach(() => {
resetFlowStore();
// user = userEvent.setup();
});
describe('Rendering', () => {
test.each([Object.entries(NodeTypes)].map(([t])=>t))('it should render each node with the default data', (nodeType) => {
let newNode = createNode(nodeType + "1", nodeType, {x: 200, y:200}, {})
let uiElement = Object.entries(NodeTypes).find(([t])=>t==nodeType)?.[1]!;
let props = {
id:newNode.id,
type:newNode.type as string,
data:newNode.data as any,
selected:false,
isConnectable:true,
zIndex:0,
dragging:false,
selectable:true,
deletable:true,
draggable:true,
positionAbsoluteX:0,
positionAbsoluteY:0,}
renderWithProviders(uiElement(props));
const elements = screen.queryAllByText((content, ) =>
content.toLowerCase().includes(nodeType.toLowerCase())
);
expect(elements.length).toBeGreaterThan(0);
});
});
});