mirror of
https://git.adityakumar.xyz/hugo-devresume-theme.git
synced 2024-11-09 23:09:46 +00:00
144 lines
3.5 KiB
JavaScript
144 lines
3.5 KiB
JavaScript
|
/* eslint-env node */
|
||
|
/* eslint no-process-env: 0 */
|
||
|
|
||
|
const path = require('path')
|
||
|
const ip = require('ip')
|
||
|
const {
|
||
|
browsers,
|
||
|
browsersKeys
|
||
|
} = require('./browsers')
|
||
|
|
||
|
const jqueryFile = process.env.USE_OLD_JQUERY ? 'https://code.jquery.com/jquery-1.9.1.min.js' : 'node_modules/jquery/dist/jquery.slim.min.js'
|
||
|
const bundle = process.env.BUNDLE === 'true'
|
||
|
const browserStack = process.env.BROWSER === 'true'
|
||
|
|
||
|
const frameworks = [
|
||
|
'qunit',
|
||
|
'sinon'
|
||
|
]
|
||
|
|
||
|
const plugins = [
|
||
|
'karma-qunit',
|
||
|
'karma-sinon'
|
||
|
]
|
||
|
|
||
|
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 = [
|
||
|
'node_modules/popper.js/dist/umd/popper.min.js',
|
||
|
'node_modules/hammer-simulator/index.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([
|
||
|
'node_modules/jquery/dist/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: path.resolve(__dirname, '../coverage/'),
|
||
|
reports: ['lcov', 'text-summary'],
|
||
|
thresholds: {
|
||
|
emitWarning: false,
|
||
|
global: {
|
||
|
statements: 90,
|
||
|
branches: 86,
|
||
|
functions: 89,
|
||
|
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)
|
||
|
}
|