Skip to content

Commit

Permalink
chore: add test for loading two procedure defs
Browse files Browse the repository at this point in the history
  • Loading branch information
BeksOmega committed Jan 9, 2023
1 parent 8b4b57c commit 8c27dcd
Showing 1 changed file with 53 additions and 1 deletion.
54 changes: 53 additions & 1 deletion tests/mocha/blocks/procedures_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1985,7 +1985,7 @@ suite('Procedures', function() {
});
});

suite('extra serialization test cases', function() {
suite('full workspace serialization test cases', function() {
test('definitions with parameters are properly rendered', function() {
Blockly.serialization.workspaces.load({
"blocks": {
Expand Down Expand Up @@ -2032,6 +2032,58 @@ suite('Procedures', function() {
assertDefBlockStructure(
this.workspace.getTopBlocks(false)[0], false, ['x'], ['varId']);
});
test(
'multiple definitions pointing to the same model end up with ' +
'different models',
function() {
Blockly.serialization.workspaces.load({
"blocks": {
"languageVersion": 0,
"blocks": [
{
"type": "procedures_defnoreturn",
"extraState": {
"procedureId": "procId",
},
"fields": {
"NAME": "do something",
},
},
{
"type": "procedures_defnoreturn",
"y": 10,
"extraState": {
"procedureId": "procId",
},
"fields": {
"NAME": "do something",
},
},
],
},
"procedures": [
{
"id": "procId",
"name": "do something",
"returnTypes": null,
},
],
}, this.workspace);
const def1 = this.workspace.getTopBlocks(true)[0];
const def2 = this.workspace.getTopBlocks(true)[1];
chai.assert.equal(
def1.getProcedureModel().getName(),
'do something',
'Expected the first procedure definition to have the name in XML');
chai.assert.equal(
def2.getProcedureModel().getName(),
'do something2',
'Expected the second procedure definition to be renamed');
chai.assert.notEqual(
def1.getProcedureModel(),
def2.getProcedureModel(),
'Expected the procedures to have different models');
});
});

const testSuites = [
Expand Down

0 comments on commit 8c27dcd

Please sign in to comment.