Files
Michael Cartner b9c60b07dc Initial commit
Co-Authored-By: Eric Tuvesson <eric.tuvesson@gmail.com>
Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com>
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com>
Co-Authored-By: Anders Larsson <64838990+anders-topp@users.noreply.github.com>
Co-Authored-By: Johan  <4934465+joolsus@users.noreply.github.com>
Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com>
Co-Authored-By: victoratndl <99176179+victoratndl@users.noreply.github.com>
2024-01-26 11:52:55 +01:00

101 lines
3.0 KiB
JavaScript

const NodeGraphModel = require('@noodl-models/nodegraphmodel').NodeGraphModel;
const NodeGraphNode = require('@noodl-models/nodegraphmodel').NodeGraphNode;
describe('Numbered ports tests', function () {
var g1, e1, e2, e3;
beforeEach(() => {
g1 = new NodeGraphModel();
e1 = NodeGraphNode.fromJSON({
id: 'A',
type: 'nodeWithNumberedPorts'
});
g1.addRoot(e1);
});
xit('can add new ports dynamically', function () {
var ports = e1.getPorts();
expect(ports.length).toBe(1);
expect(ports[0].name).toBe('my number 0');
expect(ports[0].displayName).toBe('My number 0');
expect(ports[0].type).toBe('number');
expect(ports[0].group).toBe('My group');
e1.setParameter('my number 0', 10);
var ports = e1.getPorts();
expect(ports.length).toBe(2);
expect(ports[1].name).toBe('my number 1');
expect(ports[1].displayName).toBe('My number 1');
});
xit('can find highest parameter', function () {
// The number of parameters should be defined by the highest parameter that is
// not undefined
e1.setParameter('my number 1', 20);
var ports = e1.getPorts();
expect(ports.length).toBe(3);
// Setting to undefined should still be there because 'my number 1' is 20
e1.setParameter('my number 0', undefined);
var ports = e1.getPorts();
expect(ports.length).toBe(3);
});
xit('can detect connections', function () {
e2 = NodeGraphNode.fromJSON({
id: 'B',
type: 'nodeWithNumberedPorts'
});
g1.addRoot(e2);
g1.addConnection({
fromId: 'A',
fromProperty: 'my number 2',
toId: 'B',
toProperty: 'my number 1'
});
// A should now have 4 ports (connected to my number 2)
var ports = e1.getPorts();
expect(ports.length).toBe(4);
// B should have 3 ports (connected to my number 1)
var ports = e2.getPorts();
expect(ports.length).toBe(3);
});
xit('can generate selectors', function () {
e3 = NodeGraphNode.fromJSON({
id: 'C',
type: 'nodeWithNumberedPortsAndSelectors'
});
g1.addRoot(e3);
var ports = e3.getPorts();
expect(ports.length).toBe(2);
expect(ports[1].name).toBe('startAt');
expect(ports[1].group).toBe('My selectors');
expect(ports[1].type.enums.length).toBe(0);
expect(ports[1].type.name).toBe('enum');
// Add a dynamic port, should be listed in the selector
e3.setParameter('my number 0', 10);
var ports = e3.getPorts();
expect(ports.length).toBe(3);
expect(ports[2].type.enums.length).toBe(1);
expect(ports[2].type.enums[0].value).toBe('my number 0');
expect(ports[2].type.enums[0].label).toBe('My number 0');
// More
e3.setParameter('my number 1', 20);
var ports = e3.getPorts();
expect(ports.length).toBe(4);
expect(ports[3].type.enums.length).toBe(2);
expect(ports[3].type.enums[0].value).toBe('my number 0');
expect(ports[3].type.enums[0].label).toBe('My number 0');
expect(ports[3].type.enums[1].value).toBe('my number 1');
expect(ports[3].type.enums[1].label).toBe('My number 1');
});
});