UNPKG

karma-growlnetwork-reporter

Version:

A Karma plugin. Report results with growl over Network.

73 lines (58 loc) 2.04 kB
var util = require('util'); var growly = require('growly'); var path = require('path'); var MSG_SUCCESS = '%d tests passed in %s.'; var MSG_FAILURE = '%d/%d tests failed in %s.'; var MSG_ERROR = ''; var OPTIONS = { success: { dispname: 'Success', title: 'PASSED - %s', icon: path.join(__dirname, 'images/success.png') }, failed: { dispname: 'Failure', title: 'FAILED - %s', icon: path.join(__dirname, 'images/failed.png') }, error: { dispname: 'Aborted', title: 'ERROR - %s', icon: path.join(__dirname, 'images/error.png') } }; var GrowlReporter = function(helper, logger, config) { var log = logger.create('reporter.growlnetwork'); var optionsFor = function(type, browser) { var prefix = config && config.prefix ? config.prefix : ''; return helper.merge(OPTIONS[type], {title: prefix + util.format(OPTIONS[type].title, browser)}); }; growly.setHost('192.168.54.1', '23053'); growly.register('Karma', '', [], function(error) { var warning = 'No running version of GNTP found.\n' + 'Make sure the Growl service is installed and running.\n' + 'For more information see https://github.com/theabraham/growly.'; if (error) { log.warn(warning); } }); this.adapters = []; this.onBrowserComplete = function(browser) { var results = browser.lastResult; var time = helper.formatTimeInterval(results.totalTime); if (results.disconnected || results.error) { return growly.notify(MSG_ERROR, optionsFor('error', browser.name)); } if (results.failed) { return growly.notify(util.format(MSG_FAILURE, results.failed, results.total, time), optionsFor('failed', browser.name)); } growly.notify(util.format(MSG_SUCCESS, results.success, time), optionsFor('success', browser.name)); }; }; GrowlReporter.$inject = ['helper', 'logger','config.growlnetworkReporter']; // PUBLISH DI MODULE module.exports = { 'reporter:growlnetwork': ['type', GrowlReporter] };