diff --git a/js/package.json b/js/package.json index 59b75c591..dca0e0e6d 100644 --- a/js/package.json +++ b/js/package.json @@ -43,6 +43,7 @@ "test": "mocha 'src/**/*.spec.js'", "test:coverage": "istanbul cover _mocha -- 'src/**/*.spec.js'", "test:e2e": "mocha 'src/**/*.e2e.js'", + "test:npm": "node test/npmLibrary", "prepush": "npm run lint:cached" }, "devDependencies": { diff --git a/js/test/npmLibrary.js b/js/test/npmLibrary.js new file mode 100644 index 000000000..63d8f9515 --- /dev/null +++ b/js/test/npmLibrary.js @@ -0,0 +1,45 @@ +// Copyright 2015, 2016 Ethcore (UK) Ltd. +// This file is part of Parity. + +// Parity is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity. If not, see . + +try { + var Api = require('../.npmjs/library.js').Api; + var Abi = require('../.npmjs/library.js').Abi; + + if (typeof Api !== 'function') { + throw new Error('No Api'); + } + + if (typeof Abi !== 'function') { + throw new Error('No Abi'); + } + + var transport = new Api.Transport.Http('http://localhost:8545'); + var api = new Api(transport); + + api.eth + .blockNumber() + .then((block) => { + console.log('library working fine', '(block #' + block.toFormat() + ')'); + process.exit(0); + }) + .catch(() => { + console.log('library working fine (disconnected)'); + process.exit(0); + }); +} catch (e) { + console.error('An error occured:', e.toString().split('\n')[0]); + process.exit(1); +}