Skip to content

Commit

Permalink
Fix/not working ci mode for draw io (#29)
Browse files Browse the repository at this point in the history
* Fixed ci-mode drawio diagram generation broken after #28

* Added index.js tests to validate ci mode

Co-authored-by: Adrian Nieto Perez <[email protected]>
  • Loading branch information
adriannieto and Adrian Nieto Perez authored Feb 25, 2021
1 parent c7685bd commit 591970e
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
7 changes: 6 additions & 1 deletion graph/MxGenerator.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
36 changes: 36 additions & 0 deletions index.spec.js
Original file line number Diff line number Diff line change
@@ -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
})
})
})
}

0 comments on commit 591970e

Please sign in to comment.