diff --git a/.travis.yml b/.travis.yml index 7caf3cd..8c1c462 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ language: node_js node_js: - "node" - "iojs" +services: + - "xvfb" before_script: - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start diff --git a/package.json b/package.json index 7d46b91..74202d4 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,10 @@ }, "homepage": "https://github.com/ahmednuaman/javascript-tests", "dependencies": { - "karma": "^0.12.32", - "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4" + "jasmine-core": "2.3.4", + "karma": "^0.13.22", + "karma-jasmine": "0.3.5", + "karma-phantomjs-launcher": "1.0.4" }, "devDependencies": { "karma-chrome-launcher": "^0.1.12", diff --git a/test/clone-object.js b/test/clone-object.js index 86ec647..17e8ffd 100644 --- a/test/clone-object.js +++ b/test/clone-object.js @@ -1,7 +1,8 @@ describe('clone object', function () { it('should clone an object', function () { var expected = {name: 'Ahmed', age: 27, skills: ['cycling', 'walking', 'eating']}, - obj = {}; +// efficient one line to clone objects. + obj = JSON.parse(JSON.stringify(expected)); expect(obj).toEqual(expected); expect(obj).not.toBe(expected); diff --git a/test/flatten-array.js b/test/flatten-array.js index c7f0632..3746700 100644 --- a/test/flatten-array.js +++ b/test/flatten-array.js @@ -2,7 +2,13 @@ describe('flatten array', function () { it('should flatten an array', function () { var arr = [1, 2, [1, 2, [3, 4, 5, [1]]], 2, [2]], expected = [1, 1, 1, 2, 2, 2, 2, 3, 4, 5]; + +// re-write to work with travis, converting the array to a string array and then mapping it as number array, then finally sorting it into the correct order + const stringArr = arr.toString(); + const flattenedArr = stringArr.split(',').map(Number); + + arr = flattenedArr.sort(); expect(arr).toEqual(expected); }); -}); \ No newline at end of file +}); diff --git a/test/scoping.js b/test/scoping.js index 557c54a..5b46673 100644 --- a/test/scoping.js +++ b/test/scoping.js @@ -15,10 +15,11 @@ describe('scoping', function () { return this.foo; }; +// explicitely setting the 'this' value Module.prototype.req = function() { - return request(this.method); + return request(this.method.bind(this)); }; expect(mod.req()).toBe('bar'); }); -}); \ No newline at end of file +});