diff --git a/karma.conf.js b/karma.conf.js index f104859..f9cb450 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,6 +1,7 @@ module.exports = function (config) { config.set({ frameworks: ['jasmine'], + reporters: ['karma-jasmine'], files: [ 'src/*.js', diff --git a/lib/index.js b/lib/index.js index ee80acd..21a5e69 100644 --- a/lib/index.js +++ b/lib/index.js @@ -13,6 +13,19 @@ var initJasmine = function (files) { initJasmine.$inject = ['config.files'] +function InjectKarmaJasmineReporter (singleRun) { + return { + onSpecComplete (browser, karmaResult) { + if (!singleRun && karmaResult.debug_url) { + console.log('Debug this test: ' + karmaResult.debug_url) + } + } + } +} + +InjectKarmaJasmineReporter.$inject = ['config.singleRun'] + module.exports = { - 'framework:jasmine': ['factory', initJasmine] + 'framework:jasmine': ['factory', initJasmine], + 'reporter:karma-jasmine': ['factory', InjectKarmaJasmineReporter] } diff --git a/package-lock.json b/package-lock.json index 2d68d4f..8ecd04c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -242,8 +242,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", @@ -367,7 +366,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -629,8 +627,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -1782,8 +1779,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "1.2.7", @@ -3136,7 +3132,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -3145,8 +3140,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", @@ -3453,6 +3447,35 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, + "jasmine": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.4.0.tgz", + "integrity": "sha512-sR9b4n+fnBFDEd7VS2el2DeHgKcPiMVn44rtKFumq9q7P/t8WrxsVIZPob4UDdgcDNCwyDqwxCt4k9TDRmjPoQ==", + "requires": { + "glob": "7.1.4", + "jasmine-core": "3.4.0" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "jasmine-core": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.4.0.tgz", + "integrity": "sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==" + } + } + }, "jasmine-core": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.3.0.tgz", @@ -3895,7 +3918,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "1.1.11" } @@ -4187,7 +4209,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -4337,8 +4358,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -5624,8 +5644,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "0.2.1", diff --git a/package.json b/package.json index f1ae0d8..7e885ed 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "A Karma plugin - adapter for Jasmine testing framework.", "main": "lib/index.js", "scripts": { - "test": "grunt" + "test": "jasmine; grunt" }, "repository": { "type": "git", @@ -17,6 +17,7 @@ ], "author": "Vojta Jina ", "dependencies": { + "jasmine": "^3.4.0", "jasmine-core": "^3.3" }, "devDependencies": { diff --git a/spec/index_spec.js b/spec/index_spec.js new file mode 100644 index 0000000..951bd79 --- /dev/null +++ b/spec/index_spec.js @@ -0,0 +1,23 @@ + +const diInfo = require('../lib/index.js'); + +describe('reporter', () => { + + it('is available via dependency injection', () => { + const diEntry = diInfo['reporter:karma-jasmine']; + expect(diEntry.length).toBe(2); + expect(typeof diEntry[1]).toBe('function'); + }); + + it('logs debug_url', () => { + const logSpy = jasmine.createSpy('consoleLog', console.log); + const originalLog = console.log; + console.log = logSpy; + const InjectKarmaJasmineReporter = diInfo['reporter:karma-jasmine'][1]; + const reporter = InjectKarmaJasmineReporter(false); + reporter.onSpecComplete(/** ignored */undefined, {debug_url: 'hiya'}); + expect(logSpy).toHaveBeenCalledWith('Debug this test: hiya'); + console.log = originalLog; + }); + +}); \ No newline at end of file diff --git a/spec/support/jasmine.json b/spec/support/jasmine.json new file mode 100644 index 0000000..370fc44 --- /dev/null +++ b/spec/support/jasmine.json @@ -0,0 +1,11 @@ +{ + "spec_dir": "spec", + "spec_files": [ + "**/*[sS]pec.js" + ], + "helpers": [ + "helpers/**/*.js" + ], + "stopSpecOnExpectationFailure": false, + "random": true +}