123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- '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'
- }
- }
- })
- }
|