diff --git a/src/eoc.js b/src/eoc.js index 2461840b..5ba22c88 100755 --- a/src/eoc.js +++ b/src/eoc.js @@ -234,6 +234,7 @@ program.command('compile') program.command('link') .description('Link together all binaries into a single executable binary') .action(async (str, opts) => { + pin(program.opts()); clear(str); if (program.opts().alone === undefined) { await pipe()(coms(), ['register', 'assemble', 'lint', 'resolve', 'transpile', 'compile', 'link'], program.opts()); @@ -341,6 +342,7 @@ program.command('jeo:assemble') 'classes' ) .action((str, opts) => { + pin(program.opts()); coms().jeo_assemble({...program.opts(), ...str}); }); diff --git a/test/test_eoc.js b/test/test_eoc.js index ef403f9f..d3189064 100644 --- a/test/test_eoc.js +++ b/test/test_eoc.js @@ -59,3 +59,21 @@ describe('eoc', () => { done(); }); }); + +describe('eoc', () => { + before(weAreOnline); + it('fails link due to version mismatch if different --pin provided', (done) => { + assert.throws( + () => { runSync(['--pin=29.9.4', '--alone', 'link']); }, + /Version mismatch: you are running eoc [0-9]+\.[0-9]+\.[0-9]+, but --pin option requires 29.9.4/ + ); + done(); + }); + it('fails jeo:assemble due to version mismatch if different --pin provided', (done) => { + assert.throws( + () => { runSync(['--pin=29.9.4', 'jeo:assemble']); }, + /Version mismatch: you are running eoc [0-9]+\.[0-9]+\.[0-9]+, but --pin option requires 29.9.4/ + ); + done(); + }); +});