From 591970ea609051b8f5a07593ef19aa77d4d76f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Nieto?= Date: Thu, 25 Feb 2021 19:19:52 +0100 Subject: [PATCH] Fix/not working ci mode for draw io (#29) * Fixed ci-mode drawio diagram generation broken after #28 * Added index.js tests to validate ci mode Co-authored-by: Adrian Nieto Perez --- graph/MxGenerator.js | 7 ++++++- index.spec.js | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 index.spec.js diff --git a/graph/MxGenerator.js b/graph/MxGenerator.js index 9b93e02..da162c3 100644 --- a/graph/MxGenerator.js +++ b/graph/MxGenerator.js @@ -248,10 +248,15 @@ async function generate(cmd, template) { types = [...new Set(types)].sort(); let resourceTypes = { answer: types }; let resourceNames = { answer: resources }; - let edgeMode = { answer: "On" }; + let edgeMode = { answer: "On" }; + filterConfig.resourceNamesToInclude = resourceNames.answer; + filterConfig.resourceTypesToInclude = resourceTypes.answer; + filterConfig.edgeMode = edgeMode.answer; + let actionChoice = {}; console.log("Diagram will be written to " + cmd.outputFile); + if (ciMode) { const xml = renderTemplate(template); fs.writeFileSync(cmd.outputFile, xml); diff --git a/index.spec.js b/index.spec.js new file mode 100644 index 0000000..844387e --- /dev/null +++ b/index.spec.js @@ -0,0 +1,36 @@ +let os = require('os'); +let path = require('path'); +let exec = require('child_process').exec; + +test('Code should be 0', async () => { + jest.setTimeout(30000); + + console.log("output path set to " + os.tmpdir() + '/template.drawio') + let result = await cli(['draw.io', '--template-file', './tests/template.json', '--output-file', os.tmpdir() + '/template.drawio', '--ci-mode' ], '.'); + console.log(result.stdout) + console.log(result.stderr) + expect(result.code).toBe(0); + + console.log("output path set to " + os.tmpdir()) + result = await cli(['html', '--template-file', './tests/template.json', '--output-path', os.tmpdir(), '--ci-mode'], '.'); + console.log(result.stdout) + console.log(result.stderr) + expect(result.code).toBe(0); + +}) + + +function cli(args, cwd) { + return new Promise(resolve => { + exec(`node ${path.resolve('./index.js')} ${args.join(' ')}`, + { cwd }, + (error, stdout, stderr) => { + resolve({ + code: error && error.code ? error.code : 0, + error, + stdout, + stderr + }) + }) + }) +} \ No newline at end of file