diff --git a/test/fixtures/events.json b/test/fixtures/events.json index 064c76c69..4b7573504 100644 --- a/test/fixtures/events.json +++ b/test/fixtures/events.json @@ -11,5 +11,16 @@ "z!+#Nqr,_(V=xz0y7a@d", "!6Ahqg4f}Ljl}X5Hws?Z" ] + }, + "createsubstack": { + "name": "block", + "xml": { + "outerHTML": "<block type=\"control_forever\" id=\"r9`RpL74T6*SXPKv7}Dq\" x=\"61\" y=\"90\"><statement name=\"SUBSTACK\"><block type=\"control_wait\" id=\"{Rwt[LFtD1-JPAi-qf:.\"><value name=\"DURATION\"><shadow type=\"math_number\" id=\"VMDxt_9SYe5{*eNRe5dZ\"><field name=\"NUM\">1</field></shadow></value></block></statement></block>" + }, + "ids": [ + "r9`RpL74T6*SXPKv7}Dq", + "{Rwt[LFtD1-JPAi-qf:.", + "VMDxt_9SYe5{*eNRe5dZ" + ] } } diff --git a/test/unit/adapter.js b/test/unit/adapter.js index 31e904845..44ea13928 100644 --- a/test/unit/adapter.js +++ b/test/unit/adapter.js @@ -34,3 +34,27 @@ test('create event', function (t) { t.end(); }); + +test('create with substack', function (t) { + var result = adapter(events.createsubstack); + // Outer block + t.type(result[0].id, 'string'); + t.type(result[0].opcode, 'string'); + t.type(result[0].fields, 'object'); + t.type(result[0].inputs, 'object'); + t.type(result[0].inputs['SUBSTACK'], 'object'); + t.type(result[0].topLevel, 'boolean'); + t.equal(result[0].topLevel, true); + // In substack + var substackBlockId = result[0].inputs['SUBSTACK']['block']; + t.type(substackBlockId, 'string'); + // Find actual substack block + var substackBlock = null; + for (var i = 0; i < result.length; i++) { + if (result[i].id == substackBlockId) { + substackBlock = result[i]; + } + } + t.type(substackBlock, 'object'); + t.end(); +});