132 lines
3.3 KiB
JavaScript
Executable File
132 lines
3.3 KiB
JavaScript
Executable File
'use strict'
|
|
const yaml = require('js-yaml')
|
|
const fs = require('fs')
|
|
|
|
const browsers = {
|
|
sl_chrome: {
|
|
base: 'SauceLabs',
|
|
browserName: 'chrome',
|
|
platform: 'Windows 10',
|
|
version: '53'
|
|
},
|
|
sl_firefox: {
|
|
base: 'SauceLabs',
|
|
browserName: 'firefox',
|
|
version: '49'
|
|
},
|
|
// sl_ios_safari: {
|
|
// base: 'SauceLabs',
|
|
// browserName: 'iphone',
|
|
// platform: 'OS X 10.11',
|
|
// version: '9.3'
|
|
// },
|
|
sl_ie_11: {
|
|
base: 'SauceLabs',
|
|
browserName: 'internet explorer',
|
|
platform: 'Windows 10',
|
|
version: '11'
|
|
}
|
|
}
|
|
|
|
module.exports = (config) => {
|
|
// Use ENV vars or .sauce.yml to get credentials
|
|
if (!process.env.SAUCE_USERNAME) {
|
|
if (!fs.existsSync('.sauce.yml')) {
|
|
console.log(
|
|
'Create a .sauce.yml with your credentials'
|
|
)
|
|
process.exit(1)
|
|
} else {
|
|
let sauceConfig = yaml.safeLoad(fs.readFileSync('.sauce.yml', 'utf8'))
|
|
process.env.SAUCE_USERNAME = sauceConfig.addons.sauce_connect.username
|
|
process.env.SAUCE_ACCESS_KEY = sauceConfig.addons.sauce_connect.access_key
|
|
}
|
|
}
|
|
config.set({
|
|
// base path that will be used to resolve all patterns (eg. files, exclude)
|
|
basePath: '',
|
|
|
|
// frameworks to use
|
|
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
|
frameworks: ['jasmine'],
|
|
|
|
// list of files / patterns to load in the browser
|
|
// @TODO: Make this the same across both configs
|
|
files: [
|
|
'jspdf.js',
|
|
'plugins/acroform.js',
|
|
'plugins/annotations.js',
|
|
'plugins/split_text_to_size.js',
|
|
'plugins/standard_fonts_metrics.js',
|
|
'plugins/autoprint.js',
|
|
'plugins/addhtml.js',
|
|
'tests/utils/compare.js',
|
|
{
|
|
pattern: 'tests/**/*.spec.js',
|
|
included: true
|
|
}, {
|
|
pattern: 'tests/**/reference/*.pdf',
|
|
included: false,
|
|
served: true
|
|
}
|
|
],
|
|
|
|
// list of files to exclude
|
|
exclude: [],
|
|
|
|
// preprocess matching files before serving them to the browser
|
|
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
|
preprocessors: {
|
|
'jspdf.js': 'coverage',
|
|
'plugins/*.js': 'coverage',
|
|
'tests/!(acroform)*/*.js': 'babel'
|
|
},
|
|
|
|
// web server port
|
|
port: 9876,
|
|
|
|
// enable / disable colors in the output (reporters and logs)
|
|
colors: true,
|
|
|
|
// level of logging
|
|
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
|
logLevel: config.LOG_INFO,
|
|
|
|
// enable / disable watching file and executing tests whenever any file changes
|
|
autoWatch: false,
|
|
|
|
// Continuous Integration mode
|
|
// if true, Karma captures browsers, runs the tests and exits
|
|
singleRun: false,
|
|
|
|
// Concurrency level
|
|
// how many browser should be started simultaneous
|
|
concurrency: Infinity,
|
|
|
|
browserNoActivityTimeout: 60000,
|
|
captureTimeout: 120000,
|
|
|
|
reporters: ['saucelabs', 'progress', 'mocha', 'coverage'], // 2
|
|
browsers: Object.keys(browsers), // 3
|
|
customLaunchers: browsers, // 4
|
|
|
|
coverageReporter: {
|
|
reporters: [
|
|
{
|
|
type: 'lcov',
|
|
dir: 'coverage/'
|
|
},
|
|
{
|
|
type: 'text'
|
|
}
|
|
]
|
|
},
|
|
babelPreprocessor: {
|
|
options: {
|
|
presets: ['es2015'],
|
|
sourceMap: 'inline'
|
|
}
|
|
}
|
|
})
|
|
}
|