chore: create new tests for the UI, namely normnode, and one for all nodes

This commit is contained in:
Björn Otgaar
2025-11-27 17:14:19 +01:00
parent f87c7fed03
commit c5d9b8342d
7 changed files with 999 additions and 11 deletions

View File

@@ -0,0 +1,55 @@
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);
});
});
});