Skip to content
Permalink
Browse files
Merge pull request #176 from raphinesse/karma
Migrate tests to Jasmine 3 driven by Karma
  • Loading branch information
raphinesse committed Oct 25, 2018
2 parents 243e7aa + 967b326 commit 9490096bb175b2c04b614e40fecf7b7622522489
Showing 21 changed files with 222 additions and 466 deletions.
@@ -38,7 +38,5 @@ module.exports = function(grunt) {
grunt.loadTasks('tasks');

// defaults
grunt.registerTask('default', ['compile', 'test']);
grunt.registerTask('test', ['compile:test', '_test']);
grunt.registerTask('cover', ['compile', '_cover']);
grunt.registerTask('default', ['compile']);
};
@@ -0,0 +1,90 @@
/*!
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

// Use Chrome executable installed through npm
process.env.CHROME_BIN = require('puppeteer').executablePath();

module.exports = function (config) {
config.set({

// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',

// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],

// list of files / patterns to load in the browser
files: [
'pkg/cordova.test.js',
'test/**/test.*.js'
],

// list of files / patterns to exclude
exclude: [
],

// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
},

// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],

// web server port
port: 9876,

// enable / disable colors in the output (reporters and logs)
colors: true,

// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,

// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,

// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['ChromeHeadless'],

// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: true,

// Concurrency level
// how many browser should be started simultaneous
concurrency: Infinity
});

if (process.env.TRAVIS) {
config.set({
browsers: ['ChromeHeadlessNoSandbox'],
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: ['--no-sandbox']
}
}
});
}
};
@@ -16,7 +16,8 @@
},
"scripts": {
"eslint": "eslint src test pkg",
"test": "grunt test && npm run eslint",
"pretest": "grunt compile:test",
"test": "npm run eslint && karma start",
"build": "grunt compile"
},
"license": "Apache-2.0",
@@ -77,10 +78,11 @@
"eslint-plugin-standard": "^3.0.1",
"grunt": "^1.0.1",
"grunt-contrib-clean": "^1.0.0",
"istanbul": "^0.4.5",
"jasmine-node": "^1.14.6",
"jsdom-no-contextify": "^3.1.0",
"mkdirp": "^0.5.0"
"jasmine-core": "^3.2.1",
"karma": "^3.0.0",
"karma-chrome-launcher": "^2.2.0",
"karma-jasmine": "^1.1.2",
"puppeteer": "^1.8.0"
},
"cordova-platforms": {
"cordova-android": "../cordova-android",
@@ -19,25 +19,24 @@
*
*/

/* eslint-env jasmine */

// Use this helper module to stub out properties within Jasmine tests.
// Original values will be restored after each test.

var curStubs = null;
var stubs = [];

function removeAllStubs () {
for (var i = curStubs.length - 1, stub; stub = curStubs[i]; --i) { // eslint-disable-line no-cond-assign
for (const stub of stubs) {
stub.obj[stub.key] = stub.value;
}
curStubs = null;
stubs = [];
}

exports.stub = function (obj, key, value) {
if (!curStubs) {
curStubs = [];
jasmine.getEnv().currentSpec.after(removeAllStubs); // eslint-disable-line no-undef
}
afterEach(removeAllStubs);

curStubs.push({
exports.stub = function (obj, key, value) {
stubs.push({
obj: obj,
key: key,
value: obj[key]

This file was deleted.

This file was deleted.

This file was deleted.

0 comments on commit 9490096

Please sign in to comment.