All files / options intern.ts

100% Statements 11/11
100% Branches 8/8
100% Functions 1/1
100% Lines 8/8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 524x 4x   4x 4x   4x     4x 8x   4x                                                                              
import * as path from 'path';
import { parseJson } from 'intern/lib/common/util';
 
export = function (grunt: IGrunt) {
	grunt.loadNpmTasks('intern');
 
	const progress = grunt.option<boolean>('progress');
 
	// read the test config and find a loader. if no loader is specified, we need to add ours
	const internJson = grunt.file.read(path.resolve(grunt.config.get('internConfig')));
	const { browser: { loader: browserLoader = undefined } = {}, loader } = parseJson(internJson);
 
	return {
		options: {
			config: '<%= internConfig %>',
			node: {
				'plugins+': [
					{ script: 'grunt-dojo2/lib/intern/Reporter.js', useLoader: true }
				],
				reporters: [
					{ name: 'runner', options: { 'hideSkipped': !progress, 'hidePassed': !progress } }
				]
			},
			browser: (loader || browserLoader) ? {} : {
				loader: './node_modules/grunt-dojo2/lib/intern/internLoader.js'
			}
		},
		browserstack: {
			options: {
				config: '<%= internConfig %>@browserstack'
			}
		},
		saucelabs: {
			options: {
				config: '<%= internConfig %>@saucelabs'
			}
		},
		node: {},
		remote: {},
		local: {
			options: {
				config: '<%= internConfig %>@local'
			}
		},
		serve: {
			options: {
				serveOnly: true
			}
		}
	};
};