mirror of
				https://github.com/videojs/video.js.git
				synced 2025-10-31 00:08:01 +02:00 
			
		
		
		
	chore: switch to videojs-generate-karma-config (#5528)
This commit is contained in:
		
				
					committed by
					
						 Gary Katsevman
						Gary Katsevman
					
				
			
			
				
	
			
			
			
						parent
						
							607ed8bea8
						
					
				
				
					commit
					2e704509c9
				
			
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -24,7 +24,7 @@ sandbox/* | ||||
| *results.xml | ||||
| *.log | ||||
|  | ||||
| test/coverage/* | ||||
| test/dist/* | ||||
| .coveralls.yml | ||||
| .sass-cache | ||||
|  | ||||
|   | ||||
							
								
								
									
										173
									
								
								build/grunt.js
									
									
									
									
									
								
							
							
						
						
									
										173
									
								
								build/grunt.js
									
									
									
									
									
								
							| @@ -1,77 +1,17 @@ | ||||
| import {gruntCustomizer, gruntOptionsMaker} from './options-customizer.js'; | ||||
| import isDocsOnly from './docs-only.js'; | ||||
|  | ||||
| module.exports = function(grunt) { | ||||
|   require('time-grunt')(grunt); | ||||
|  | ||||
|   let _ = require('lodash'); | ||||
|   let pkg = grunt.file.readJSON('package.json'); | ||||
|   let license = grunt.file.read('build/license-header.txt'); | ||||
|   let bannerCommonData = _.pick(pkg, ['version', 'copyright']); | ||||
|   let verParts = pkg.version.split('.'); | ||||
|   let version = { | ||||
|   const pkg = grunt.file.readJSON('package.json'); | ||||
|   const verParts = pkg.version.split('.'); | ||||
|   const version = { | ||||
|     full: pkg.version, | ||||
|     major: verParts[0], | ||||
|     minor: verParts[1], | ||||
|     patch: verParts[2] | ||||
|   }; | ||||
|  | ||||
|   const browserifyGruntDefaults = { | ||||
|     browserifyOptions: { | ||||
|       standalone: 'videojs' | ||||
|     }, | ||||
|     plugin: [ | ||||
|       ['bundle-collapser/plugin'], | ||||
|       ['browserify-derequire'] | ||||
|     ] | ||||
|   }; | ||||
|  | ||||
|   /** | ||||
|    * Customizes _.merge behavior in `browserifyGruntOptions` to concatenate | ||||
|    * arrays. This can be overridden on a per-call basis to | ||||
|    * | ||||
|    * @see https://lodash.com/docs#merge | ||||
|    * @function browserifyGruntCustomizer | ||||
|    * @private | ||||
|    * @param  {Mixed} objectValue | ||||
|    * @param  {Mixed} sourceValue | ||||
|    * @return {Object} | ||||
|    */ | ||||
|   const browserifyGruntCustomizer = gruntCustomizer; | ||||
|  | ||||
|   /** | ||||
|    * Creates a unique object of Browserify Grunt task options. | ||||
|    * | ||||
|    * @function browserifyGruntOptions | ||||
|    * @private | ||||
|    * @param  {Object} [options] | ||||
|    * @param  {Function} [customizer=browserifyGruntCustomizer] | ||||
|    *         If the default array-concatenation behavior is not desireable, | ||||
|    *         pass _.noop or a unique customizer (https://lodash.com/docs#merge). | ||||
|    * | ||||
|    * @return {Object} | ||||
|    */ | ||||
|   const browserifyGruntOptions = gruntOptionsMaker(browserifyGruntDefaults, browserifyGruntCustomizer); | ||||
|  | ||||
|   /** | ||||
|    * Creates processor functions for license banners. | ||||
|    * | ||||
|    * @function createLicenseProcessor | ||||
|    * @private | ||||
|    * @param  {Object} data Custom data overriding `bannerCommonData`. Will | ||||
|    *                       not be mutated. | ||||
|    * @return {Function}    A function which returns a processed grunt template | ||||
|    *                       using an object constructed from `bannerCommonData` | ||||
|    *                       and the `data` argument. | ||||
|    */ | ||||
|   function createLicenseProcessor(data) { | ||||
|     return () => { | ||||
|       return grunt.template.process(license, { | ||||
|         data: _.merge({}, bannerCommonData, data) | ||||
|       }); | ||||
|     }; | ||||
|   } | ||||
|  | ||||
|   version.majorMinor = `${version.major}.${version.minor}`; | ||||
|   grunt.vjsVersion = version; | ||||
|  | ||||
| @@ -79,8 +19,8 @@ module.exports = function(grunt) { | ||||
|   grunt.initConfig({ | ||||
|     pkg, | ||||
|     clean: { | ||||
|       build: ['build/temp/*', 'es5'], | ||||
|       dist: ['dist/*'] | ||||
|       build: ['build/temp/*', 'es5', 'test/dist'], | ||||
|       dist: ['dist/*', 'test/dist'] | ||||
|     }, | ||||
|     dist: {}, | ||||
|     watch: { | ||||
| @@ -89,55 +29,12 @@ module.exports = function(grunt) { | ||||
|         tasks: ['vjslanguages'] | ||||
|       } | ||||
|     }, | ||||
|     connect: { | ||||
|       dev: { | ||||
|         options: { | ||||
|           port: Number(process.env.VJS_CONNECT_PORT) || 9999, | ||||
|           livereload: true, | ||||
|           useAvailablePort: true | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     copy: { | ||||
|       fonts: { cwd: 'node_modules/videojs-font/fonts/', src: ['*'], dest: 'build/temp/font/', expand: true, filter: 'isFile' }, | ||||
|       dist:  { cwd: 'build/temp/', src: ['**/**', '!test*'], dest: 'dist/', expand: true, filter: 'isFile' }, | ||||
|       a11y:  { src: 'sandbox/descriptions.html.example', dest: 'sandbox/descriptions.test-a11y.html' }, // Can only test a file with a .html or .htm extension | ||||
|       examples: { cwd: 'docs/examples/', src: ['**/**'], dest: 'dist/examples/', expand: true, filter: 'isFile' } | ||||
|     }, | ||||
|     karma: { | ||||
|       // this config file applies to all following configs except if overwritten | ||||
|       options: { | ||||
|         configFile: 'test/karma.conf.js' | ||||
|       }, | ||||
|  | ||||
|       defaults: { | ||||
|         detectBrowsers: { | ||||
|           enabled: !process.env.TRAVIS, | ||||
|           usePhantomJS: false | ||||
|         } | ||||
|       }, | ||||
|  | ||||
|       watch: { | ||||
|         autoWatch: true, | ||||
|         singleRun: false | ||||
|       }, | ||||
|  | ||||
|       // these are run locally on local browsers | ||||
|       dev: { browsers: ['Chrome', 'Firefox', 'Safari'] }, | ||||
|       chromecanary: { browsers: ['ChromeCanary'] }, | ||||
|       chrome:       { browsers: ['Chrome'] }, | ||||
|       firefox:      { browsers: ['Firefox'] }, | ||||
|       safari:       { browsers: ['Safari'] }, | ||||
|       ie:           { browsers: ['IE'] }, | ||||
|  | ||||
|       // this only runs on PRs from the mainrepo on BrowserStack | ||||
|       browserstack: { browsers: ['chrome_bs'] }, | ||||
|       chrome_bs:    { browsers: ['chrome_bs'] }, | ||||
|       firefox_bs:   { browsers: ['firefox_bs'] }, | ||||
|       safari_bs:    { browsers: ['safari_bs'] }, | ||||
|       edge_bs:      { browsers: ['edge_bs'] }, | ||||
|       ie11_bs:      { browsers: ['ie11_bs'] } | ||||
|     }, | ||||
|     vjslanguages: { | ||||
|       defaults: { | ||||
|         files: { | ||||
| @@ -156,29 +53,6 @@ module.exports = function(grunt) { | ||||
|         dest: 'dist/video-js-' + version.full + '.zip' | ||||
|       } | ||||
|     }, | ||||
|     browserify: { | ||||
|       tests: { | ||||
|         options: { | ||||
|           browserifyOptions: { | ||||
|             verbose: true, | ||||
|             standalone: false, | ||||
|             transform: ['babelify'] | ||||
|           }, | ||||
|           plugin: [ | ||||
|             ['proxyquireify/plugin', 'bundle-collapser/plugin'] | ||||
|           ], | ||||
|           banner: false, | ||||
|           watch: true, | ||||
|           keepAlive: true | ||||
|         }, | ||||
|         files: { | ||||
|           'build/temp/tests.js': [ | ||||
|             'test/globals-shim.js', | ||||
|             'test/unit/**/*.js' | ||||
|           ] | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     coveralls: { | ||||
|       options: { | ||||
|         // warn instead of failing when coveralls errors | ||||
| @@ -186,7 +60,7 @@ module.exports = function(grunt) { | ||||
|         force: true | ||||
|       }, | ||||
|       all: { | ||||
|         src: 'test/coverage/lcov.info' | ||||
|         src: 'test/dist/coverage/lcov.info' | ||||
|       } | ||||
|     }, | ||||
|     concurrent: { | ||||
| @@ -195,30 +69,37 @@ module.exports = function(grunt) { | ||||
|       }, | ||||
|       tests: [ | ||||
|         'shell:babel', | ||||
|         'browserify:tests' | ||||
|       ], | ||||
|       dev: [ | ||||
|         'shell:sass', | ||||
|         'shell:babel', | ||||
|         'browserify:tests', | ||||
|         'watch:lang', | ||||
|         'copy:dist' | ||||
|         'copy:dist', | ||||
|         'shell:karma-server' | ||||
|       ], | ||||
|       // Run multiple watch tasks in parallel | ||||
|       // Needed so watchify can cache intelligently | ||||
|       watchAll: [ | ||||
|         'watch', | ||||
|         'browserify:watch', | ||||
|         'browserify:watchnovtt', | ||||
|         'browserify:tests', | ||||
|         'karma:watch' | ||||
|         'shell:karma-server' | ||||
|       ], | ||||
|       watchSandbox: [ | ||||
|         'watch', | ||||
|         'browserify:watch' | ||||
|         'watch' | ||||
|       ] | ||||
|     }, | ||||
|     shell: { | ||||
|       'karma-server': { | ||||
|         command: 'npm run karma-server', | ||||
|         options: { | ||||
|           preferLocal: true | ||||
|         } | ||||
|       }, | ||||
|       'karma-run': { | ||||
|         command: 'npm run karma-run', | ||||
|         options: { | ||||
|           preferLocal: true | ||||
|         } | ||||
|       }, | ||||
|       cssmin: { | ||||
|         command: 'npm run cssmin', | ||||
|         options: { | ||||
| @@ -331,7 +212,7 @@ module.exports = function(grunt) { | ||||
|       'shell:noderequire', | ||||
|       'shell:browserify', | ||||
|       'shell:webpack', | ||||
|       'karma:defaults', | ||||
|       'shell:karma-run', | ||||
|       'test-a11y' | ||||
|     ]; | ||||
|  | ||||
| @@ -348,13 +229,13 @@ module.exports = function(grunt) { | ||||
|   }); | ||||
|  | ||||
|   // Run while developing | ||||
|   grunt.registerTask('dev', ['sandbox', 'connect:dev', 'concurrent:dev']); | ||||
|   grunt.registerTask('watchAll', ['build', 'connect:dev', 'concurrent:watchAll']); | ||||
|   grunt.registerTask('dev', ['sandbox', 'concurrent:dev']); | ||||
|   grunt.registerTask('watchAll', ['build', 'concurrent:watchAll']); | ||||
|   grunt.registerTask('test-a11y', ['copy:a11y', 'accessibility']); | ||||
|  | ||||
|   // Pick your testing, or run both in different terminals | ||||
|   grunt.registerTask('test-ui', ['browserify:tests']); | ||||
|   grunt.registerTask('test-cli', ['karma:watch']); | ||||
|   grunt.registerTask('test-ui', ['shell:karma-server']); | ||||
|   grunt.registerTask('test-cli', ['shell:karma-server']); | ||||
|  | ||||
|   // Load all the tasks in the tasks directory | ||||
|   grunt.loadTasks('build/tasks'); | ||||
|   | ||||
| @@ -1,49 +0,0 @@ | ||||
| import _ from 'lodash'; | ||||
| /** | ||||
|  * Customizes _.merge behavior in `gruntOptions` to concatenate | ||||
|  * arrays. This can be overridden on a per-call basis to | ||||
|  * | ||||
|  * @see https://lodash.com/docs#merge | ||||
|  * @function GruntCustomizer | ||||
|  * @private | ||||
|  * @param  {Mixed} objectValue | ||||
|  * @param  {Mixed} sourceValue | ||||
|  * @return {Object} | ||||
|  */ | ||||
| function gruntCustomizer(objectValue, sourceValue) { | ||||
|   if (Array.isArray(objectValue)) { | ||||
|     return objectValue.concat(sourceValue); | ||||
|   } | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Creates a gruntOptions instance for the specific defaultOptions and gruntCustomizer | ||||
|  * | ||||
|  * @function browserifyGruntOptions | ||||
|  * @private | ||||
|  * @param  {Object} [options] | ||||
|  * @param  {Function} [customizer=gruntCustomizer] | ||||
|  *         If the default array-concatenation behavior is not desireable, | ||||
|  *         pass _.noop or a unique customizer (https://lodash.com/docs#merge). | ||||
|  * | ||||
|  * @return {Function} | ||||
|  */ | ||||
| function gruntOptionsMaker(defaultOptions, gruntCustomizer) { | ||||
|   /** | ||||
|    * Creates a unique object of Browserify Grunt task options. | ||||
|    * | ||||
|    * @function gruntOptions | ||||
|    * @private | ||||
|    * @param  {Object} [options] | ||||
|    * @param  {Function} [customizer=browserifyGruntCustomizer] | ||||
|    *         If the default array-concatenation behavior is not desireable, | ||||
|    *         pass _.noop or a unique customizer (https://lodash.com/docs#merge). | ||||
|    * | ||||
|    * @return {Object} | ||||
|    */ | ||||
|   return function gruntOptions(options = null, customizer = gruntCustomizer) { | ||||
|     return _.merge({}, defaultOptions, options, customizer); | ||||
|   } | ||||
| }; | ||||
|  | ||||
| export { gruntCustomizer, gruntOptionsMaker }; | ||||
							
								
								
									
										27
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| <!doctype html> | ||||
| <html> | ||||
| <head> | ||||
|   <meta charset="utf-8"> | ||||
|   <title>Video.js Dev Server</title> | ||||
| </head> | ||||
| <body> | ||||
|   <h2>Navigation</h2> | ||||
|   <ul> | ||||
|     <li><a href="/test/debug.html">Run unit tests in browser.</a></li> | ||||
|     <li><a href="/sandbox/index.html">Simple Demo (also seen below)</a></li> | ||||
|     <li><a href="/sandbox/plugin.html">Plugin Demo</a></li> | ||||
|     <li><a href="/sandbox/responsive.html">Responsive Demo</a></li> | ||||
|     <li><a href="/sandbox/middleware-play.html">Middleware Play Demo</a></li> | ||||
|     <li><a href="/sandbox/icons.html">Icons Demo</a></li> | ||||
|     <li><a href="/sandbox/focus-visible.html">Focus Visible Demo</a></li> | ||||
|     <li><a href="/sandbox/flash.html">Flash Demo</a></li> | ||||
|     <li><a href="/sandbox/fake-live.html">Fake Live Demo</a></li> | ||||
|     <li><a href="/sandbox/embeds.html">Embeds Demo</a></li> | ||||
|     <li><a href="/sandbox/descriptions.html">Descriptions Demo</a></li> | ||||
|     <li><a href="/sandbox/combined-tracks.html">Combined Tracks Demo</a></li> | ||||
|   </ul> | ||||
|  | ||||
|   <h2>Simple Demo (in an iframe)</h2> | ||||
|   <iframe src="/sandbox/index.html" width=700 height=500></iframe> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										2012
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2012
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										28
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								package.json
									
									
									
									
									
								
							| @@ -41,6 +41,8 @@ | ||||
|     "lint": "vjsstandard", | ||||
|     "start": "npm-run-all -p start:grunt watch", | ||||
|     "start:grunt": "grunt dev", | ||||
|     "karma-server": "karma start test/karma.conf.js --singleRun=false --auto-watch", | ||||
|     "karma-run": "karma start test/karma.conf.js", | ||||
|     "test": "grunt test", | ||||
|     "docs": "npm run docs:lint && npm run docs:api", | ||||
|     "jsdoc": "jsdoc", | ||||
| @@ -77,13 +79,11 @@ | ||||
|     "@babel/plugin-transform-runtime": "^7.0.0", | ||||
|     "@babel/preset-env": "^7.0.0", | ||||
|     "@babel/register": "^7.0.0", | ||||
|     "aliasify": "^2.1.0", | ||||
|     "autoprefixer": "^9.0.1", | ||||
|     "babelify": "^10.0.0", | ||||
|     "bluebird": "^3.5.1", | ||||
|     "browserify-derequire": "^0.9.4", | ||||
|     "browserify-istanbul": "^2.0.0", | ||||
|     "bundle-collapser": "^1.2.1", | ||||
|     "browserify": "^16.2.3", | ||||
|     "browserify-istanbul": "^3.0.1", | ||||
|     "clean-css-cli": "^4.2.1", | ||||
|     "cli-table": "^0.3.1", | ||||
|     "conventional-changelog-cli": "^2.0.1", | ||||
| @@ -94,38 +94,22 @@ | ||||
|     "gh-release": "^3.2.1", | ||||
|     "grunt": "^1.0.3", | ||||
|     "grunt-accessibility": "^6.0.0", | ||||
|     "grunt-browserify": "^5.3.0", | ||||
|     "grunt-cli": "~1.3.1", | ||||
|     "grunt-concurrent": "^2.3.1", | ||||
|     "grunt-contrib-clean": "^2.0.0", | ||||
|     "grunt-contrib-connect": "~2.0.0", | ||||
|     "grunt-contrib-copy": "^1.0.0", | ||||
|     "grunt-contrib-watch": "^1.1.0", | ||||
|     "grunt-coveralls": "^1.0.0", | ||||
|     "grunt-karma": "^3.0.0", | ||||
|     "grunt-shell": "^2.0.0", | ||||
|     "grunt-videojs-languages": "0.0.4", | ||||
|     "grunt-zip": "0.18.1", | ||||
|     "humanize-duration": "^3.12.1", | ||||
|     "husky": "^1.0.1", | ||||
|     "istanbul": "^0.4.5", | ||||
|     "jsdoc": "^3.4.2", | ||||
|     "karma": "^3.0.0", | ||||
|     "karma-browserify": "^5.3.0", | ||||
|     "karma-browserstack-launcher": "^1.0.1", | ||||
|     "karma-chrome-launcher": "^2.0.0", | ||||
|     "karma-coverage": "^1.1.2", | ||||
|     "karma-detect-browsers": "^2.2.6", | ||||
|     "karma-firefox-launcher": "^1.1.0", | ||||
|     "karma-ie-launcher": "^1.0.0", | ||||
|     "karma-opera-launcher": "^1.0.0", | ||||
|     "karma-qunit": "^2.0.1", | ||||
|     "karma-safari-launcher": "^1.0.0", | ||||
|     "karma-safaritechpreview-launcher": "0.0.6", | ||||
|     "karma-sinon": "^1.0.5", | ||||
|     "klaw-sync": "^6.0.0", | ||||
|     "load-grunt-tasks": "^4.0.0", | ||||
|     "lodash": "^4.17.10", | ||||
|     "markdown-table": "^1.0.0", | ||||
|     "maxmin": "^2.1.0", | ||||
|     "minimist": "^1.2.0", | ||||
| @@ -157,7 +141,9 @@ | ||||
|     "uglify-js": "^3.3.21", | ||||
|     "unified": "^7.0.0", | ||||
|     "videojs-flash": "^2.1.0", | ||||
|     "videojs-generate-karma-config": "~4.0.2", | ||||
|     "videojs-standard": "^8.0.2", | ||||
|     "watchify": "^3.11.0", | ||||
|     "webpack": "^1.15.0" | ||||
|   }, | ||||
|   "vjsstandard": { | ||||
| @@ -172,7 +158,7 @@ | ||||
|       "**/lang/**", | ||||
|       "**/sandbox/**", | ||||
|       "**/test/api/**", | ||||
|       "**/test/coverage/**", | ||||
|       "**/test/dist/coverage/**", | ||||
|       "**/test/karma.conf.js" | ||||
|     ] | ||||
|   }, | ||||
|   | ||||
| @@ -1,18 +0,0 @@ | ||||
| <!doctype html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|   <meta charset="utf-8"> | ||||
|   <title>VideoJS Tests</title> | ||||
|   <link rel="stylesheet" href="../node_modules/qunit/qunit/qunit.css"> | ||||
|   <link rel="stylesheet" href="../dist/video-js.min.css"> | ||||
| </head> | ||||
| <body> | ||||
|   <div id="qunit"></div> | ||||
|   <script src="../node_modules/qunit/qunit/qunit.js"></script> | ||||
|  | ||||
|   <!-- Execute the bundled tests first --> | ||||
|   <script src="../build/temp/tests.js"></script> | ||||
|   <script src="../build/temp/browserify.js"></script> | ||||
|   <script src="../build/temp/webpack.js"></script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,196 +1,47 @@ | ||||
| const generate = require('videojs-generate-karma-config'); | ||||
|  | ||||
| module.exports = function(config) { | ||||
|   // build out a name for browserstack | ||||
|   // {TRAVIS_BUILD_NUMBER} [{TRAVIS_PULL_REQUEST} {PR_BRANCH}] {TRAVIS_BRANCH} | ||||
|   var browserstackName = process.env.TRAVIS_BUILD_NUMBER; | ||||
|   const coverageFlag = process.env.npm_config_coverage; | ||||
|   const reportCoverage = false; // process.env.TRAVIS || coverageFlag || false; | ||||
|  | ||||
|   if (process.env.TRAVIS_PULL_REQUEST !== 'false') { | ||||
|     browserstackName += ' ' + process.env.TRAVIS_PULL_REQUEST + ' ' + process.env.TRAVIS_PULL_REQUEST_BRANCH; | ||||
|   } | ||||
|  | ||||
|   browserstackName +=  ' ' + process.env.TRAVIS_BRANCH; | ||||
|  | ||||
|   // Creating settings object first so we can modify based on travis | ||||
|   var settings = { | ||||
|     basePath: '', | ||||
|  | ||||
|     frameworks: ['browserify', 'qunit', 'detectBrowsers'], | ||||
|     autoWatch: false, | ||||
|     singleRun: true, | ||||
|  | ||||
|     // Compling tests here | ||||
|     files: [ | ||||
|       '../dist/video-js.css', | ||||
|       '../test/globals-shim.js', | ||||
|       '../test/unit/**/*.js', | ||||
|       '../build/temp/browserify.js', | ||||
|       '../build/temp/webpack.js', | ||||
|       { pattern: '../src/**/*.js', watched: true, included: false, served: false } | ||||
|     ], | ||||
|  | ||||
|     preprocessors: { | ||||
|       '../test/**/*.js': [ 'browserify' ] | ||||
|   // see https://github.com/videojs/videojs-generate-karma-config | ||||
|   // for options | ||||
|   const options = { | ||||
|     serverBrowsers(defaults) { | ||||
|       return []; | ||||
|     }, | ||||
|  | ||||
|     browserify: { | ||||
|       debug: true, | ||||
|       plugin: ['proxyquireify/plugin'], | ||||
|       transform: [['babelify', { | ||||
|         "presets": [ | ||||
|           [ | ||||
|             "@babel/preset-env", | ||||
|             { | ||||
|               "loose": true | ||||
|             } | ||||
|           ] | ||||
|         ] | ||||
|       }]] | ||||
|     }, | ||||
|  | ||||
|     plugins: [ | ||||
|       'karma-qunit', | ||||
|       'karma-chrome-launcher', | ||||
|       'karma-firefox-launcher', | ||||
|       'karma-ie-launcher', | ||||
|       'karma-opera-launcher', | ||||
|       'karma-safari-launcher', | ||||
|       'karma-safaritechpreview-launcher', | ||||
|       'karma-browserstack-launcher', | ||||
|       'karma-browserify', | ||||
|       'karma-coverage', | ||||
|       'karma-detect-browsers', | ||||
|     ], | ||||
|  | ||||
|     detectBrowsers: { | ||||
|       enabled: false, | ||||
|       usePhantomJS: false | ||||
|     }, | ||||
|  | ||||
|     reporters: ['dots'], | ||||
|  | ||||
|     // web server port | ||||
|     port: 9876, | ||||
|  | ||||
|     // cli runner port | ||||
|     runnerPort: 9100, | ||||
|     colors: true, | ||||
|     logLevel: config.LOG_INFO, | ||||
|     captureTimeout: 300000, | ||||
|     browserNoActivityTimeout: 300000, | ||||
|     browserDisconnectTimeout: 300000, | ||||
|     browserDisconnectTolerance: 3, | ||||
|  | ||||
|     browserStack: { | ||||
|       project: 'Video.js', | ||||
|       name: browserstackName, | ||||
|       build: browserstackName, | ||||
|       pollingTimeout: 30000, | ||||
|       captureTimeout: 600, | ||||
|       timeout: 600 | ||||
|     }, | ||||
|     customLaunchers: getCustomLaunchers(), | ||||
|  | ||||
|     // The HTML reporter seems to be busted right now, so we're just using text in the meantime | ||||
|     // along with the summary after the test run. | ||||
|     coverageReporter: { | ||||
|       reporters: [ | ||||
|         { | ||||
|           type: 'text', | ||||
|           dir: 'coverage/', | ||||
|           file: 'coverage.txt' | ||||
|         }, | ||||
|         { | ||||
|           type: 'lcovonly', | ||||
|           dir: 'coverage/', | ||||
|           subdir: '.' | ||||
|         }, | ||||
|         { type: 'text-summary' } | ||||
|       ] | ||||
|     }, | ||||
|  | ||||
|     // make QUnit show the UI in karma runs | ||||
|     client: { | ||||
|       clearContext: false, | ||||
|       qunit: { | ||||
|         showUI: true, | ||||
|         testTimeout: 5000 | ||||
|       } | ||||
|     } | ||||
|     coverage: reportCoverage, | ||||
|   }; | ||||
|  | ||||
|   config = generate(config, options); | ||||
|  | ||||
|   config.files = [ | ||||
|     'dist/video-js.css', | ||||
|     'test/globals-shim.js', | ||||
|     'test/unit/**/*.js', | ||||
|     'build/temp/browserify.js', | ||||
|     'build/temp/webpack.js', | ||||
|     {pattern: 'src/**/*.js', watched: true, included: false, served: false } | ||||
|   ]; | ||||
|  | ||||
|   config.browserStack.project = 'Video.js'; | ||||
|  | ||||
|   config.frameworks.push('browserify'); | ||||
|   config.browserify = { | ||||
|     debug: true, | ||||
|     plugin: ['proxyquireify/plugin'], | ||||
|     transform: [ | ||||
|       ['babelify', {"presets": [["@babel/preset-env", {"loose": true}]]}], | ||||
|     ] | ||||
|   }; | ||||
|  | ||||
|   // Coverage reporting | ||||
|   // Coverage is enabled by passing the flag --coverage to npm test | ||||
|   var coverageFlag = process.env.npm_config_coverage; | ||||
|   var reportCoverage = process.env.TRAVIS || coverageFlag; | ||||
|   if (reportCoverage) { | ||||
|     settings.browserify.transform.push('browserify-istanbul'); | ||||
|     settings.reporters.push('coverage'); | ||||
|     config.browserify.transform.push('browserify-istanbul'); | ||||
|   } | ||||
|  | ||||
|   if (process.env.TRAVIS) { | ||||
|     if (process.env.BROWSER_STACK_USERNAME) { | ||||
|       settings.browsers = [ | ||||
|         'chrome_bs', | ||||
|         'firefox_bs', | ||||
|         'safari_bs', | ||||
|         'edge_bs', | ||||
|         'ie11_bs' | ||||
|       ]; | ||||
|     } else { | ||||
|       settings.browsers = ['chrome_travis']; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   config.set(settings); | ||||
| }; | ||||
|  | ||||
| function getCustomLaunchers(){ | ||||
|   return { | ||||
|     chrome_travis: { | ||||
|       base: 'Chrome', | ||||
|       flags: ['--no-sandbox'] | ||||
|     }, | ||||
|  | ||||
|     chrome_bs: { | ||||
|       base: 'BrowserStack', | ||||
|       browser: 'chrome', | ||||
|       os: 'Windows', | ||||
|       os_version: '10' | ||||
|     }, | ||||
|  | ||||
|     firefox_bs: { | ||||
|       base: 'BrowserStack', | ||||
|       browser: 'firefox', | ||||
|       os: 'Windows', | ||||
|       os_version: '10' | ||||
|     }, | ||||
|  | ||||
|     safari_bs: { | ||||
|       base: 'BrowserStack', | ||||
|       browser: 'safari', | ||||
|       os: 'OS X', | ||||
|       os_version: 'High Sierra' | ||||
|     }, | ||||
|  | ||||
|     safari9_bs: { | ||||
|       base: 'BrowserStack', | ||||
|       browser: 'safari', | ||||
|       os: 'OS X', | ||||
|       os_version: 'El Capitan' | ||||
|     }, | ||||
|  | ||||
|     edge_bs: { | ||||
|       base: 'BrowserStack', | ||||
|       browser: 'edge', | ||||
|       os: 'Windows', | ||||
|       os_version: '10' | ||||
|     }, | ||||
|  | ||||
|     ie11_bs: { | ||||
|       base: 'BrowserStack', | ||||
|       browser: 'ie', | ||||
|       browser_version: '11', | ||||
|       os: 'Windows', | ||||
|       os_version: '10' | ||||
|     } | ||||
|   config.preprocessors = { | ||||
|     'test/**/*.js': ['browserify'] | ||||
|   }; | ||||
| } | ||||
|  | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user