mirror of
https://github.com/twbs/bootstrap.git
synced 2024-11-28 10:24:19 +01:00
refactor karma config in one file
This commit is contained in:
parent
c543f360c9
commit
9efed82522
@ -1,51 +0,0 @@
|
||||
/* eslint-env node */
|
||||
/* eslint no-process-env: 0 */
|
||||
const ip = require('ip')
|
||||
const {
|
||||
browsers,
|
||||
browsersKeys
|
||||
} = require('./browsers')
|
||||
|
||||
module.exports = (config) => {
|
||||
config.set({
|
||||
hostname: ip.address(),
|
||||
browserStack: {
|
||||
username: process.env.BROWSER_STACK_USERNAME,
|
||||
accessKey: process.env.BROWSER_STACK_ACCESS_KEY,
|
||||
build: `bootstrap-${new Date().toISOString()}`,
|
||||
project: 'Bootstrap',
|
||||
retryLimit: 2
|
||||
},
|
||||
basePath: '../..',
|
||||
frameworks: ['qunit', 'sinon'],
|
||||
plugins: [
|
||||
'karma-qunit',
|
||||
'karma-sinon',
|
||||
'karma-browserstack-launcher'
|
||||
],
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
'site/docs/4.1/assets/js/vendor/jquery-slim.min.js',
|
||||
'site/docs/4.1/assets/js/vendor/popper.min.js',
|
||||
'js/dist/util.js',
|
||||
'js/dist/tooltip.js',
|
||||
'js/dist/!(util|index|tooltip).js', // include all of our js/dist files except util.js, index.js and tooltip.js
|
||||
'js/tests/unit/*.js'
|
||||
],
|
||||
customLaunchers: browsers,
|
||||
browsers: browsersKeys,
|
||||
reporters: ['dots', 'BrowserStack'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||
logLevel: config.LOG_ERROR || config.LOG_WARN,
|
||||
autoWatch: false,
|
||||
singleRun: true,
|
||||
concurrency: Infinity,
|
||||
client: {
|
||||
qunit: {
|
||||
showUI: true
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
/* eslint-env node */
|
||||
/* eslint no-process-env: 0 */
|
||||
|
||||
module.exports = (config) => {
|
||||
const jqueryFile = process.env.USE_OLD_JQUERY ? 'https://code.jquery.com/jquery-1.9.1.min.js' : 'site/docs/4.1/assets/js/vendor/jquery-slim.min.js'
|
||||
|
||||
config.set({
|
||||
basePath: '../..',
|
||||
frameworks: ['qunit', 'sinon', 'detectBrowsers'],
|
||||
plugins: [
|
||||
'karma-chrome-launcher',
|
||||
'karma-firefox-launcher',
|
||||
'karma-qunit',
|
||||
'karma-sinon',
|
||||
'karma-detect-browsers'
|
||||
],
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
jqueryFile,
|
||||
'site/docs/4.1/assets/js/vendor/popper.min.js',
|
||||
'dist/js/bootstrap.js',
|
||||
'js/tests/unit/*.js'
|
||||
],
|
||||
reporters: ['dots'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||
logLevel: config.LOG_ERROR || config.LOG_WARN,
|
||||
autoWatch: false,
|
||||
customLaunchers: {
|
||||
FirefoxHeadless: {
|
||||
base: 'Firefox',
|
||||
flags: ['-headless']
|
||||
}
|
||||
},
|
||||
singleRun: true,
|
||||
concurrency: Infinity,
|
||||
detectBrowsers: {
|
||||
usePhantomJS: false,
|
||||
postDetection(availableBrowser) {
|
||||
if (typeof process.env.TRAVIS_JOB_ID !== 'undefined' || availableBrowser.includes('Chrome')) {
|
||||
return ['ChromeHeadless']
|
||||
}
|
||||
|
||||
if (availableBrowser.includes('Firefox')) {
|
||||
return ['FirefoxHeadless']
|
||||
}
|
||||
|
||||
throw new Error('Please install Firefox or Chrome')
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
@ -1,76 +1,139 @@
|
||||
/* eslint-env node */
|
||||
/* eslint no-process-env: 0 */
|
||||
const ip = require('ip')
|
||||
const {
|
||||
browsers,
|
||||
browsersKeys
|
||||
} = require('./browsers')
|
||||
const path = require('path')
|
||||
const jsCoveragePath = path.resolve(__dirname, '../coverage')
|
||||
|
||||
module.exports = (config) => {
|
||||
const jqueryFile = process.env.USE_OLD_JQUERY ? 'https://code.jquery.com/jquery-1.9.1.min.js' : 'site/docs/4.1/assets/js/vendor/jquery-slim.min.js'
|
||||
const jqueryFile = process.env.USE_OLD_JQUERY ? 'https://code.jquery.com/jquery-1.9.1.min.js' : 'site/docs/4.1/assets/js/vendor/jquery-slim.min.js'
|
||||
const bundle = process.env.BUNDLE === 'true'
|
||||
const browserStack = process.env.BROWSER === 'true'
|
||||
|
||||
config.set({
|
||||
basePath: '../..',
|
||||
frameworks: ['qunit', 'sinon', 'detectBrowsers'],
|
||||
plugins: [
|
||||
'karma-chrome-launcher',
|
||||
'karma-firefox-launcher',
|
||||
'karma-qunit',
|
||||
'karma-sinon',
|
||||
'karma-detect-browsers',
|
||||
'karma-coverage-istanbul-reporter'
|
||||
],
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
jqueryFile,
|
||||
'site/docs/4.1/assets/js/vendor/popper.min.js',
|
||||
'js/coverage/dist/util.js',
|
||||
'js/coverage/dist/tooltip.js',
|
||||
'js/coverage/dist/!(util|index|tooltip).js', // include all of our js/dist files except util.js, index.js and tooltip.js
|
||||
'js/tests/unit/*.js'
|
||||
],
|
||||
reporters: ['dots', 'coverage-istanbul'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||
logLevel: config.LOG_ERROR || config.LOG_WARN,
|
||||
autoWatch: false,
|
||||
customLaunchers: {
|
||||
FirefoxHeadless: {
|
||||
base: 'Firefox',
|
||||
flags: ['-headless']
|
||||
}
|
||||
},
|
||||
singleRun: true,
|
||||
concurrency: Infinity,
|
||||
detectBrowsers: {
|
||||
usePhantomJS: false,
|
||||
postDetection(availableBrowser) {
|
||||
if (typeof process.env.TRAVIS_JOB_ID !== 'undefined' || availableBrowser.includes('Chrome')) {
|
||||
return ['ChromeHeadless']
|
||||
}
|
||||
const frameworks = [
|
||||
'qunit',
|
||||
'sinon'
|
||||
]
|
||||
|
||||
if (availableBrowser.includes('Firefox')) {
|
||||
return ['FirefoxHeadless']
|
||||
}
|
||||
const plugins = [
|
||||
'karma-qunit',
|
||||
'karma-sinon'
|
||||
]
|
||||
|
||||
throw new Error('Please install Firefox or Chrome')
|
||||
}
|
||||
},
|
||||
coverageIstanbulReporter: {
|
||||
dir: jsCoveragePath,
|
||||
reports: ['lcov', 'text-summary'],
|
||||
thresholds: {
|
||||
emitWarning: false,
|
||||
global: {
|
||||
statements: 90,
|
||||
branches: 84,
|
||||
functions: 87,
|
||||
lines: 90
|
||||
}
|
||||
}
|
||||
},
|
||||
client: {
|
||||
qunit: {
|
||||
showUI: true
|
||||
const reporters = ['dots']
|
||||
|
||||
const detectBrowsers = {
|
||||
usePhantomJS: false,
|
||||
postDetection(availableBrowser) {
|
||||
if (typeof process.env.TRAVIS_JOB_ID !== 'undefined' || availableBrowser.includes('Chrome')) {
|
||||
return ['ChromeHeadless']
|
||||
}
|
||||
|
||||
if (availableBrowser.includes('Firefox')) {
|
||||
return ['FirefoxHeadless']
|
||||
}
|
||||
|
||||
throw new Error('Please install Firefox or Chrome')
|
||||
}
|
||||
}
|
||||
|
||||
const customLaunchers = {
|
||||
FirefoxHeadless: {
|
||||
base: 'Firefox',
|
||||
flags: ['-headless']
|
||||
}
|
||||
}
|
||||
|
||||
let files = ['site/docs/4.1/assets/js/vendor/popper.min.js']
|
||||
const conf = {
|
||||
basePath: '../..',
|
||||
port: 9876,
|
||||
colors: true,
|
||||
autoWatch: false,
|
||||
singleRun: true,
|
||||
concurrency: Infinity,
|
||||
client: {
|
||||
qunit: {
|
||||
showUI: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bundle) {
|
||||
frameworks.push('detectBrowsers')
|
||||
plugins.push(
|
||||
'karma-chrome-launcher',
|
||||
'karma-firefox-launcher',
|
||||
'karma-detect-browsers'
|
||||
)
|
||||
conf.customLaunchers = customLaunchers
|
||||
conf.detectBrowsers = detectBrowsers
|
||||
files = files.concat([
|
||||
jqueryFile,
|
||||
'dist/js/bootstrap.js'
|
||||
])
|
||||
} else if (browserStack) {
|
||||
conf.hostname = ip.address()
|
||||
conf.browserStack = {
|
||||
username: process.env.BROWSER_STACK_USERNAME,
|
||||
accessKey: process.env.BROWSER_STACK_ACCESS_KEY,
|
||||
build: `bootstrap-${new Date().toISOString()}`,
|
||||
project: 'Bootstrap',
|
||||
retryLimit: 2
|
||||
}
|
||||
plugins.push('karma-browserstack-launcher')
|
||||
conf.customLaunchers = browsers
|
||||
conf.browsers = browsersKeys
|
||||
reporters.push('BrowserStack')
|
||||
files = files.concat([
|
||||
'site/docs/4.1/assets/js/vendor/jquery-slim.min.js',
|
||||
'js/dist/util.js',
|
||||
'js/dist/tooltip.js',
|
||||
'js/dist/!(util|index|tooltip).js' // include all of our js/dist files except util.js, index.js and tooltip.js
|
||||
])
|
||||
} else {
|
||||
frameworks.push('detectBrowsers')
|
||||
plugins.push(
|
||||
'karma-chrome-launcher',
|
||||
'karma-firefox-launcher',
|
||||
'karma-detect-browsers',
|
||||
'karma-coverage-istanbul-reporter'
|
||||
)
|
||||
files = files.concat([
|
||||
jqueryFile,
|
||||
'js/coverage/dist/util.js',
|
||||
'js/coverage/dist/tooltip.js',
|
||||
'js/coverage/dist/!(util|index|tooltip).js' // include all of our js/dist files except util.js, index.js and tooltip.js
|
||||
])
|
||||
reporters.push('coverage-istanbul')
|
||||
conf.customLaunchers = customLaunchers
|
||||
conf.detectBrowsers = detectBrowsers
|
||||
conf.coverageIstanbulReporter = {
|
||||
dir: jsCoveragePath,
|
||||
reports: ['lcov', 'text-summary'],
|
||||
thresholds: {
|
||||
emitWarning: false,
|
||||
global: {
|
||||
statements: 90,
|
||||
branches: 84,
|
||||
functions: 87,
|
||||
lines: 90
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
files.push('js/tests/unit/*.js')
|
||||
|
||||
conf.frameworks = frameworks
|
||||
conf.plugins = plugins
|
||||
conf.reporters = reporters
|
||||
conf.files = files
|
||||
|
||||
module.exports = (karmaConfig) => {
|
||||
// possible values: karmaConfig.LOG_DISABLE || karmaConfig.LOG_ERROR || karmaConfig.LOG_WARN || karmaConfig.LOG_INFO || karmaConfig.LOG_DEBUG
|
||||
conf.logLevel = karmaConfig.LOG_ERROR || karmaConfig.LOG_WARN
|
||||
karmaConfig.set(conf)
|
||||
}
|
||||
|
@ -53,9 +53,9 @@
|
||||
"js-test": "npm-run-all js-test-karma*",
|
||||
"js-test-karma": "karma start js/tests/karma.conf.js",
|
||||
"js-test-karma-old": "cross-env USE_OLD_JQUERY=true npm run js-test-karma",
|
||||
"js-test-karma-bundle": "cross-env karma start js/tests/karma-bundle.conf.js",
|
||||
"js-test-karma-bundle-old": "cross-env USE_OLD_JQUERY=true npm run js-test-karma-bundle",
|
||||
"js-test-cloud": "karma start js/tests/karma-browserstack.conf.js",
|
||||
"js-test-karma-bundle": "cross-env BUNDLE=true npm run js-test-karma",
|
||||
"js-test-karma-bundle-old": "cross-env BUNDLE=true USE_OLD_JQUERY=true npm run js-test-karma",
|
||||
"js-test-cloud": "cross-env BROWSER=true npm run js-test-karma",
|
||||
"coveralls": "shx cat js/coverage/lcov.info | coveralls",
|
||||
"docs": "npm-run-all --parallel css-docs js-docs --sequential docs-compile docs-lint",
|
||||
"docs-compile": "bundle exec jekyll build",
|
||||
|
Loading…
Reference in New Issue
Block a user