From 2e5bdae80e20751d6dea4d46a61f3a43a0c11d8c Mon Sep 17 00:00:00 2001 From: Adem Gaygusuz Date: Fri, 1 Jun 2018 17:46:10 +0100 Subject: [PATCH] Add npm test to travis ci --- .travis.yml | 4 ++++ package.json | 2 +- src/js/tabs/cli.js | 4 ++-- {src/test => test}/karma.conf.js | 12 +++++++++--- {src/test => test}/tabs/cli.js | 6 +++++- 5 files changed, 21 insertions(+), 7 deletions(-) rename {src/test => test}/karma.conf.js (61%) rename {src/test => test}/tabs/cli.js (95%) diff --git a/.travis.yml b/.travis.yml index 1c277898..81d91cf2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,11 +19,15 @@ language: node_js node_js: - 8.11.2 +addons: + chrome: stable + before_install: - npm i -g npm@6.0.1 - npm install gulp -g script: + - npm test - gulp release - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then gulp release --chromeos; fi diff --git a/package.json b/package.json index bb535a8f..d70c34fa 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "_postinstall": "node ./node_modules/platform-dependent-modules/cli.js", "postinstall": "npm run _postinstall", "gulp": "gulp", - "test": "karma start src/test/karma.conf.js" + "test": "karma start test/karma.conf.js" }, "window": { "show": false, diff --git a/src/js/tabs/cli.js b/src/js/tabs/cli.js index 31b6cb75..2b8a803b 100644 --- a/src/js/tabs/cli.js +++ b/src/js/tabs/cli.js @@ -256,14 +256,14 @@ TABS.cli.read = function (readInfo) { case lineFeedCode: if (GUI.operating_system != "MacOS") { writeLineToOutput(this.cliBuffer); + this.cliBuffer = ""; } - this.cliBuffer = ""; break; case carriageReturnCode: if (GUI.operating_system == "MacOS") { writeLineToOutput(this.cliBuffer); + this.cliBuffer = ""; } - this.cliBuffer = ""; break; case 60: this.cliBuffer += '<'; diff --git a/src/test/karma.conf.js b/test/karma.conf.js similarity index 61% rename from src/test/karma.conf.js rename to test/karma.conf.js index eb43e14c..ed7b44c5 100644 --- a/src/test/karma.conf.js +++ b/test/karma.conf.js @@ -1,6 +1,6 @@ module.exports = function(config) { config.set({ - basePath: '../../', + basePath: '../', frameworks: ['mocha', 'chai', 'sinon-chai'], files: [ './libraries/jquery-2.1.4.min.js', @@ -10,9 +10,15 @@ module.exports = function(config) { './src/js/localization.js', './src/js/gui.js', './src/js/tabs/cli.js', - './src/test/**/*.js' + './test/**/*.js' ], - browsers: ['ChromeHeadless'], + browsers: ['ChromeHeadlessNoSandbox'], + customLaunchers: { + ChromeHeadlessNoSandbox: { + base: 'ChromeHeadless', + flags: ['--no-sandbox'] + } + }, singleRun: true }); }; diff --git a/src/test/tabs/cli.js b/test/tabs/cli.js similarity index 95% rename from src/test/tabs/cli.js rename to test/tabs/cli.js index 5d41c109..8810de6b 100644 --- a/src/test/tabs/cli.js +++ b/test/tabs/cli.js @@ -39,7 +39,11 @@ describe('TABS.cli', () => { data: toArrayBuffer('\r\033[Kserialpassthrough\tservo\r\n# ser') }); - expect(cliOutput.html()).to.equal('
serialpassthrough\tservo
'); + // Ambigous auto-complete from firmware is preceded with an \r carriage return + const expectedValue = GUI.operating_system === "MacOS" ? + '
serialpassthrough\tservo
' : + 'serialpassthrough\tservo
'; + expect(cliOutput.html()).to.equal(expectedValue); expect(cliPrompt.val()).to.equal('ser'); });