diff --git a/.gitignore b/.gitignore index da23d0d..44e4d24 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ build/Release # Deployed apps should consider commenting this line out: # see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git node_modules + +package-lock.json \ No newline at end of file diff --git a/package.json b/package.json index 7d46b91..b317b6d 100644 --- a/package.json +++ b/package.json @@ -26,11 +26,12 @@ }, "homepage": "https://github.com/ahmednuaman/javascript-tests", "dependencies": { - "karma": "^0.12.32", + "karma": "^5.2.3", "karma-jasmine": "^0.3.5", - "karma-phantomjs-launcher": "^0.1.4" + "karma-phantomjs-launcher": "^1.0.4" }, "devDependencies": { + "jasmine-core": "^3.6.0", "karma-chrome-launcher": "^0.1.12", "karma-firefox-launcher": "^0.1.6" } diff --git a/test/clone-object.js b/test/clone-object.js index 86ec647..b0ded9b 100644 --- a/test/clone-object.js +++ b/test/clone-object.js @@ -3,7 +3,9 @@ describe('clone object', function () { var expected = {name: 'Ahmed', age: 27, skills: ['cycling', 'walking', 'eating']}, obj = {}; + obj = JSON.parse(JSON.stringify(expected)); + expect(obj).toEqual(expected); expect(obj).not.toBe(expected); }); -}); +}); \ No newline at end of file diff --git a/test/flatten-array.js b/test/flatten-array.js index c7f0632..349773f 100644 --- a/test/flatten-array.js +++ b/test/flatten-array.js @@ -3,6 +3,19 @@ describe('flatten 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]; + // arr.flat() does not work on IE + + function flatten(array) { + if (array instanceof Array) { + return array.length === 0 + ? [] + : flatten(array[0]).concat(flatten(array.slice(1))); + } + return [array]; + } + + arr = flatten(arr).sort(); + expect(arr).toEqual(expected); }); }); \ No newline at end of file diff --git a/test/scoping.js b/test/scoping.js index 557c54a..92c32e3 100644 --- a/test/scoping.js +++ b/test/scoping.js @@ -16,7 +16,7 @@ describe('scoping', function () { }; Module.prototype.req = function() { - return request(this.method); + return request(this.method.bind(this)); }; expect(mod.req()).toBe('bar');