declare var module: any; declare function require(name:string); declare var __filename: string; declare var __dirname: string; import base = require("./base"); var gulp = require('gulp'); var path = require('path'); var $ = require('gulp-load-plugins')({lazy: true}); var logs = require('./helpers/logs'); var _ = require('lodash'); class KarmaRunner extends base.BaseTask { constructor() { super(); return this; } static async:boolean = false; static taskName:string = 'karmaRunner'; static required:Array = [ 'karma', 'karma-amd-config', 'karma-jasmine', 'karma-mocha', 'karma-requirejs', 'karma-serve-static', 'workflow-amd-karma', 'mocha', 'requirejs' ]; static config(task, tasks, userOptions) { return { timeout: 8000, disconnectThreshold: 0, files: [], rootPath: '../../../', singleRun: true, browsers: ['Firefox'], frameworks: ['jasmine','serve-static', 'requirejs', 'amd-config'], reporters: ['dots'], addFiles: [], init: {}, requireJsConfig: { specFileRegx: 'Spec\.js$', baseUrl: '/base', paths: [], shim: {}, waitSeconds: 15, context: "version1", urlArgs: "cached=" + (new Date()).getTime(), config: {}, map: {} } }; } static gulp(options, settings, task, tasks, done):void { KarmaRunner.checkArguments(options, settings, task, tasks, done); var Workflow = require('workflow-amd-karma'); var workflow = new Workflow(); workflow.timeout(settings.timeout); workflow.disconnectThreshold(settings.disconnectThreshold); workflow.basePath(settings.rootPath); workflow.singleRun(settings.singleRun); workflow.browsers(settings.browsers); workflow.frameworks(settings.frameworks); workflow.reporters(settings.reporters); workflow.addFiles(settings.addFiles); workflow.requireJsConfig(settings.requireJsConfig); if(settings.preprocessors) { workflow.preprocessors(settings.preprocessors); } workflow.register('coffeePreprocessor', { options: { sourceMap: true } }); workflow.start(settings.init).done(function(){ if(settings.done && typeof(settings.done) === 'function') { settings.done(); } done(); }); } } export = KarmaRunner;