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');
});