Files
noodl/packages/noodl-editor/tests/components/dynamicports.js
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

90 lines
1.9 KiB
JavaScript

const { ProjectModel } = require('@noodl-models/projectmodel');
describe('Dynamic ports from viewer tests', function () {
// Setup
var projectJSON = {
components: [
{
name: 'Root',
graph: {
connections: [
{
fromId: 'A',
fromProperty: 'dynaA',
toId: 'B',
toProperty: 'x'
},
{
fromId: 'B',
fromProperty: 'y',
toId: 'A',
toProperty: 'dynaB'
}
],
roots: [
{
type: 'rectangle',
id: 'A',
parameters: {
dynaA: 10,
dynaB: 'hej'
}
},
{
type: 'rectangle',
id: 'B'
}
]
}
}
]
};
var project = ProjectModel.fromJSON(projectJSON);
it('can rename inputs', function () {
var n = project.findNodeWithId('A');
n.setDynamicPorts([
{
name: 'dynaA',
type: 'number'
},
{
name: 'dynaB',
type: 'string'
}
]);
// Now renamed
n.setDynamicPorts(
[
{
name: 'bosseA',
type: 'number'
},
{
name: 'bosseB',
type: 'string'
}
],
{
renamed: {
plug: 'input',
patterns: ['{{*}}A', '{{*}}B'],
before: 'dyna',
after: 'bosse'
}
}
);
expect(n.parameters['bosseA']).toBe(10);
expect(n.parameters['bosseB']).toBe('hej');
expect(n.parameters['dynaA']).toBe(undefined);
expect(n.parameters['dynaB']).toBe(undefined);
expect(project.getComponentWithName('Root').graph.connections[0].fromProperty).toBe('bosseA');
expect(project.getComponentWithName('Root').graph.connections[1].toProperty).toBe('bosseB');
});
});