<commit_before>const path = require('path')
const pkg = require('./package.json')

/*
    Polyfill to add typed arrays for Mocha in IE9
*/
const typedArrayPolyfill = files => {
    files.unshift({
        pattern: path.resolve('./node_modules/js-polyfills/typedarray.js'),
        included: true,
        served: true,
        watched: false,
    })
    return files
}
typedArrayPolyfill.$inject = ['config.files']

/*
    Web Driver config
*/
const webDriverConfig = {
    hostname: 'hub.lambdatest.com',
    port: 80,
}

/*
    Karma config
*/
module.exports = config => {
    config.set({
        // Base
        basePath: '.',
        files: [
            'https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js',
            'tests/lib/toast.min.js',
            'tests/utils.js',
            'tests/tests.base.js',
            'tests/tests.css.js',
            'tests/tests.js.js',
            'tests/tests.all.js',
        ],
        logLevel: config.LOG_INFO,
        autoWatch: false,
        // Karma + Mocha + Chai + Sinon = <3
        frameworks: [
            'mocha',
            'sinon-chai',
            'typedarray-polyfill',
        ],
        plugins: [
            'karma-*',
            {
                'framework:typedarray-polyfill': [
                    'factory',
                    typedArrayPolyfill,
                ],
            },
        ],
        reporters: ['mocha'],
        client: {
            chai: { includeStack: true },
        },
        // LambdaTest
        hostname: 'localhost.lambdatest.com',
        port: '9876',
        singleRun: true,
        captureTimeout: 600000,
        retryLimit: 1,
        browserDisconnectTimeout: 90000,
        browserDisconnectTolerance: 1,
        browserNoActivityTimeout: 90000,
        concurrency: 1,
        browsers: [
            'lambda_chrome',
            'lambda_firefox',
            'lambda_edge',
            'lambda_ie11',
            'lambda_ie10',
            'lambda_ie9',
            'lambda_safari',
        ],
        customLaunchers: {
            lambda_chrome: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Chrome',
                platform: 'Windows 10',
                version: '71.0',
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_firefox: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Firefox',
                platform: 'Windows 10',
                version: '64.0',
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_edge: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'MicrosoftEdge',
                platform: 'Windows 10',
                version: '18.0',
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_ie11: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Internet Explorer',
                platform: 'Windows 10',
                version: '11.0',
                'ie.compatibility': 11001,
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_ie10: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Internet Explorer',
                platform: 'Windows 7',
                version: '10.0',
                'ie.compatibility': 11001,
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_ie9: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Internet Explorer',
                platform: 'Windows 7',
                version: '9.0',
                'ie.compatibility': 11001,
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_safari: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Safari',
                platform: 'macOS Mojave',
                version: '12.0',
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
        },
    })
}
<commit_msg>Update Karma browser list<commit_after>const path = require('path')
const pkg = require('./package.json')

/*
    Polyfill to add typed arrays for Mocha in IE9
*/
const typedArrayPolyfill = files => {
    files.unshift({
        pattern: path.resolve('./node_modules/js-polyfills/typedarray.js'),
        included: true,
        served: true,
        watched: false,
    })
    return files
}
typedArrayPolyfill.$inject = ['config.files']

/*
    Web Driver config
*/
const webDriverConfig = {
    hostname: 'hub.lambdatest.com',
    port: 80,
}

/*
    Karma config
*/
module.exports = config => {
    config.set({
        // Base
        basePath: '.',
        files: [
            'https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js',
            'tests/lib/toast.min.js',
            'tests/utils.js',
            'tests/tests.base.js',
            'tests/tests.css.js',
            'tests/tests.js.js',
            'tests/tests.all.js',
        ],
        logLevel: config.LOG_INFO,
        autoWatch: false,
        // Karma + Mocha + Chai + Sinon = <3
        frameworks: [
            'mocha',
            'sinon-chai',
            'typedarray-polyfill',
        ],
        plugins: [
            'karma-*',
            {
                'framework:typedarray-polyfill': [
                    'factory',
                    typedArrayPolyfill,
                ],
            },
        ],
        reporters: ['mocha'],
        client: {
            chai: { includeStack: true },
        },
        // LambdaTest
        hostname: 'localhost.lambdatest.com',
        port: '9876',
        singleRun: true,
        captureTimeout: 600000,
        retryLimit: 1,
        browserDisconnectTimeout: 90000,
        browserDisconnectTolerance: 1,
        browserNoActivityTimeout: 90000,
        concurrency: 1,
        browsers: [
            'lambda_chrome',
            'lambda_firefox',
            'lambda_edge',
            'lambda_ie11',
            'lambda_ie10',
            'lambda_ie9',
            'lambda_safari',
        ],
        customLaunchers: {
            lambda_chrome: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Chrome',
                platform: 'Windows 10',
                version: '73.0',
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_firefox: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Firefox',
                platform: 'Windows 10',
                version: '66.0',
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_edge: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'MicrosoftEdge',
                platform: 'Windows 10',
                version: '18.0',
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_ie11: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Internet Explorer',
                platform: 'Windows 10',
                version: '11.0',
                'ie.compatibility': 11001,
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_ie10: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Internet Explorer',
                platform: 'Windows 7',
                version: '10.0',
                'ie.compatibility': 11001,
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_ie9: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Internet Explorer',
                platform: 'Windows 7',
                version: '9.0',
                'ie.compatibility': 11001,
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
            lambda_safari: {
                name: pkg.name,
                build: pkg.version,
                base: 'WebDriver',
                config: webDriverConfig,
                browserName: 'Safari',
                platform: 'macOS Mojave',
                version: '12.0',
                tunnel: true,
                tunnelName: 'karma',
                video: true,
                visual: true,
                network: true,
                console: true,
                user: process.env.LT_USERNAME,
                accessKey: process.env.LT_ACCESS_KEY,
                pseudoActivityInterval: 15000,
            },
        },
    })
}
<|endoftext|>


<commit_before>// list of files / patterns to load in the browser
files = [
	JASMINE,
	JASMINE_ADAPTER,
	'./dist/scripts/libs/angular.js',
	'./dist/scripts/libs/angular-resource.js',
	'./dist/scripts/libs/ui-bootstrap-tpls.js',
	'./dist/scripts/libs/d3.v3.js',
	'./test/scripts/libs/angular-mocks.js',
	'./test/scripts/libs/prelude-browser-min.js',

	/* things under test */
	'./dist/scripts/app.js',
	'./dist/scripts/**/controllers/*.js',
	'./dist/scripts/**/directives/*.js',
	'./dist/scripts/**/filters/*.js',
	'./dist/scripts/**/responseInterceptors/*.js',
	'./dist/scripts/**/services/*.js',

	/* test scripts */
	'./dist_test/scripts/controllers/*.js',
	'./dist_test/scripts/directives/*.js',
	'./dist_test/scripts/filters/*.js',
	'./dist_test/scripts/services/*.js',

  /* This line needs to be specific or bootstrap.js throws an error :( */
  /* See http://stackoverflow.com/questions/9227406/ */
  './dist/scripts/libs/qa/*.js',

  /* Unit tests for mathmo */
  './dist/scripts/pubs/mathmo/services/*.js',
  './dist/scripts/libs/seedrandom.js',
  './dist_test/pubs/**/*.js'
  // './test/unit/**/*.js'
];

// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel = LOG_INFO;
<commit_msg>Revert "switched old frogs and d3 directive tests back on"<commit_after>// list of files / patterns to load in the browser
files = [
	JASMINE,
	JASMINE_ADAPTER,
	'./dist/scripts/libs/angular.js',
	'./dist/scripts/libs/angular-resource.js',
	'./dist/scripts/libs/ui-bootstrap-tpls.js',
	'./dist/scripts/libs/d3.v3.js',
	'./test/scripts/libs/angular-mocks.js',
	'./test/scripts/libs/prelude-browser-min.js',

	/* things under test */
	'./dist/scripts/app.js',
	'./dist/scripts/**/controllers/*.js',
	'./dist/scripts/**/directives/*.js',
	'./dist/scripts/**/filters/*.js',
	'./dist/scripts/**/responseInterceptors/*.js',
	'./dist/scripts/**/services/*.js',

	/* test scripts */
	// './dist_test/scripts/controllers/*.js',
	// './dist_test/scripts/directives/*.js',
	// './dist_test/scripts/filters/*.js',
	// './dist_test/scripts/services/*.js',

  /* This line needs to be specific or bootstrap.js throws an error :( */
  /* See http://stackoverflow.com/questions/9227406/ */
  './dist/scripts/libs/qa/*.js',

  /* Unit tests for mathmo */
  './dist/scripts/pubs/mathmo/services/*.js',
  './dist/scripts/libs/seedrandom.js',
  './dist_test/pubs/**/*.js'
  // './test/unit/**/*.js'
];

// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel = LOG_INFO;
<|endoftext|>


<commit_before>'use strict';

// Karma configuration
module.exports = function(config) {
    var _ = require('lodash'),
        basePath = '.',
        assets = require(basePath + '/config/assets.json');

    config.set({

        // base path, that will be used to resolve files and exclude
        basePath: basePath,

        // frameworks to use
        frameworks: ['jasmine'],

        // list of files / patterns to load in the browser
        files: _.flatten(_.values(assets.core.js)).concat([
            'packages/system/public/init.js',
//            'packages/*/public/{controllers,routes,services}/*.js',
//            'packages/*/public/tests/*.js'
            'packages/*/public/*/*.js'
        ]),

        // list of files to exclude
        exclude: [],

        // test results reporter to use
        // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
        reporters: ['progress', 'coverage'],

        // coverage
        preprocessors: {
            // source files, that you wanna generate coverage for
            // do not include tests or libraries
            // (these files will be instrumented by Istanbul)
            'packages/*/public/controllers/*.js': ['coverage'],
            'packages/*/public/services/*.js': ['coverage']
        },

        coverageReporter: {
            type: 'html',
            dir: 'test/coverage/'
        },

        // 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,
        logLevel: config.LOG_DEBUG,

        // enable / disable watching file and executing tests whenever any file changes
        autoWatch: true,

        // Start these browsers, currently available:
        // - Chrome
        // - ChromeCanary
        // - Firefox
        // - Opera
        // - Safari (only Mac)
        // - PhantomJS
        // - IE (only Windows)
        browsers: ['PhantomJS'],

        // If browser does not capture in given timeout [ms], kill it
        captureTimeout: 60000,

        // Continuous Integration mode
        // if true, it capture browsers, run tests and exit
        singleRun: true
    });
};
<commit_msg>seems like a developer left karma debug log level to LOG_DEBUG, returned back to original LOG_INFO level<commit_after>'use strict';

// Karma configuration
module.exports = function(config) {
    var _ = require('lodash'),
        basePath = '.',
        assets = require(basePath + '/config/assets.json');

    config.set({

        // base path, that will be used to resolve files and exclude
        basePath: basePath,

        // frameworks to use
        frameworks: ['jasmine'],

        // list of files / patterns to load in the browser
        files: _.flatten(_.values(assets.core.js)).concat([
            'packages/system/public/init.js',
//            'packages/*/public/{controllers,routes,services}/*.js',
//            'packages/*/public/tests/*.js'
            'packages/*/public/*/*.js'
        ]),

        // list of files to exclude
        exclude: [],

        // test results reporter to use
        // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
        reporters: ['progress', 'coverage'],

        // coverage
        preprocessors: {
            // source files, that you wanna generate coverage for
            // do not include tests or libraries
            // (these files will be instrumented by Istanbul)
            'packages/*/public/controllers/*.js': ['coverage'],
            'packages/*/public/services/*.js': ['coverage']
        },

        coverageReporter: {
            type: 'html',
            dir: 'test/coverage/'
        },

        // 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: true,

        // Start these browsers, currently available:
        // - Chrome
        // - ChromeCanary
        // - Firefox
        // - Opera
        // - Safari (only Mac)
        // - PhantomJS
        // - IE (only Windows)
        browsers: ['PhantomJS'],

        // If browser does not capture in given timeout [ms], kill it
        captureTimeout: 60000,

        // Continuous Integration mode
        // if true, it capture browsers, run tests and exit
        singleRun: true
    });
};
<|endoftext|>


<commit_before>var Data = {

  starts : [
    "Experiential truth ",
    "Coffee ",
    "Geopolitics ",
    "Espresso ",
    "Absinthe ",
    "Practical economics ",
    "Consternation ",
    "The physical world ",
    "Non-judgment ",
    "Parsimony ",
    "Hodor ",
    "Salacity ",
    "Grunge music ",
    "Clarity ",
    "Antagonism ",
    "Heterodoxity ",
    "Erudition ",
    "Remuneration ",
    "Primacy ",
    "The empty set ",
    "Bergamot marmalade ",
    "Amelioration ",
    "Apostasy ",
    "Reprobacy ",
    "Aquaculture ",
    "Infinity ",
    "Rubric ",
    "Email ",
    "Calamity ",
    "Loquacity ",
    "Honesty ",
    "Cosmology ",
    "Aperture science ",
    "Temporal quaquaversality ",
    "Derrida ",
    "Mellow vibe ",
    "Prosody ",
    "Selectivity ",
    "Unity ",
    "Good health ",
    "A quantum leap ",    // thanks Francis Veilleux-Gaboury
    "A clean brain ",
    "Entreaty ",
    "Brusque temperment ",
    "A flexible thought pattern ",
    "Insightful visage ",
    "Mindfulness in action ",
    "Automated translation ",
    "Facebook ",
    "Compassion ",
    "Altruism ",
    "Totality ",
    "Rhetorical training ",
    "Insoucinace ",
    "Dynamic mutative creation ",
    "The graspably non-considerable ",
    "Social science ",
    "Stone age philosophy ",
    "Interpretive dance ",
    "Meditative physics ",
    "Rambunctious cause ",
    "Biology ",
    "Multitudinality ",
    "Nascent luminence ",
    "True randomness ",
    "Deconstrutionist wisdom ",
    "Science intersecting religion ",
    "The role of a leader ",
    "The soul of a calm person ",
    "The idea of God ",
    "Mechanistic reaction ",
    "Semiotic involvement ",
    "Quantum physics ",
    "Cerebrolinguistics ",
    "Dubstep as a metaphor for liberty "
  ],

  middles : [
    "nurtures ",
    "unifies ",
    "stymies ",
    "separates ",
    "distributes widely ",
    "appreciates ",
    "deprecates ",
    "conglomerates ",
    "gives meaning to ",
    "displays ",
    "projects ",
    "permeates ",
    "clarifies ",
    "macerates ",
    "asceticizes ",
    "recapitulates ",
    "satisfies ",
    "sanctifies via ",
    "trivializes ",
    "justifies with ",
    "rarifies ",
    "enjoins ",
    "codifies ",
    "socializes by way of ",
    "reclaims ",
    "disintegrates ",
    "integrates ",
    "reduces ",
    "explores ",
    "dissociates from within ",
    "exposes ",
    "masticates ",
    "builds, using ",
    "teaches through ",
    "projects onto ",
    "imparts reality to ",
    "constructs with "
  ],

  qualifiers : [
    "abundance of ",
    "ostentatious ",
    "the barrier of ",
    "self-righteous ",
    "collective ",
    "species specific ",
    "heterodynamic ",
    "clarity within ",
    "epistemological ",
    "synchronistic ",
    "timely ",
    "unpredictable ",
    "unassailable ",
    "glassy eyed ",
    "dishonest ",
    "indefatigable ",
    "factual ",
    "highly descriptive ",
    "location based ",
    "describably pure ",
    "bounded ",
    "unbounded ",
    "trans-boundary ",
    "expedient ",
    "ontogenous ",
    "parallelizes ",
    "serendipitous ",
    "geopolitical ",
    "popular ",
    "advocatory ",
    "pluripotentialistic ",
    "atomized ",
    "rhythmatic ",
    "dimensional ",
    "sophist ",
    "Etruscan ",
    "reliquary ",
    "escapist ",
    "anarchist ",
    "conformist ",
    "erudite ",
    "epistemic ",
    "cromulent ",
    "poker faced ",
    "miniscule ",
    "Manichean ",
    "Hadrean ",
    "media driven ",
    "global ",
    "local ",
    "post-",
    "hyper-",
    "trans-",
    "extra-",
    "super-",
    "supra-",
    "world regarding ",
    "provably optimal ",
    "potential ",
    "munctional "
  ],

  finishes : [
    "marvel.",
    "choices.",
    "harmony.",
    "phylogeny.",
    "disharmony.",
    "traversal.",
    "ostracism.",
    "semiotics.",
    "deconstructionism.",
    "post-logic.",
    "escapism.",
    "criarchy.",
    "permaculture.",
    "platitudinality.",
    "creosophy.",
    "journalism.",
    "preternaturality.",
    "glossolalia.",
    "idolatry.",
    "conscience confluence.",
    "hapto-ergonomics.",
    "mental rigor.",
    "spiritual fortitude.",
    "wisdom.",
    "secret genius.",
    "inner brilliance.",
    "unseen internal gift.",
    "combobulation.",
    "transdoctrinal inference.",
    "creativity.",
    "significance.",
    "materialization.",
    "generosity.",
    "infinitude.",
    "plurality.",
    "asceticism.",
    "truism.",
    "horizontal scaling.",
    "monopoly.",
    "temerity.",
    "neo-Platonism."
    "monosophism.",
    "polyarchy.",
    "heredity.",
    "togetherness.",
    "voluminous reaction.",
    "joyous revelation.",
    "stimulation.",
    "numbing.",
    "intuition.",
    "actions."
  ]

};

function randFrom(X) {
  return X[Math.floor(Math.random() * X.length)];
}

function makeDC() {
  return randFrom(Data.starts) + randFrom(Data.middles) + randFrom(Data.qualifiers) + randFrom(Data.finishes);
}

function go() {
  document.getElementById('txt').innerHTML = '"' + makeDC() + '"';
}
<commit_msg>Update choprifier.js<commit_after>var Data = {

  starts : [
    "Experiential truth ",
    "Coffee ",
    "Geopolitics ",
    "Espresso ",
    "Absinthe ",
    "Autosomy ",
    "Practical economics ",
    "Consternation ",
    "The physical world ",
    "Non-judgment ",
    "Parsimony ",
    "Hodor ",
    "Salacity ",
    "Grunge music ",
    "Clarity ",
    "Antagonism ",
    "Heterodoxity ",
    "Erudition ",
    "Remuneration ",
    "Primacy ",
    "The empty set ",
    "Bergamot marmalade ",
    "Amelioration ",
    "Apostasy ",
    "Reprobacy ",
    "Aquaculture ",
    "Infinity ",
    "Rubric ",
    "Email ",
    "Calamity ",
    "Loquacity ",
    "Honesty ",
    "Cosmology ",
    "Aperture science ",
    "Temporal quaquaversality ",
    "Derrida ",
    "Mellow vibe ",
    "Prosody ",
    "Selectivity ",
    "Unity ",
    "Good health ",
    "A quantum leap ",    // thanks Francis Veilleux-Gaboury
    "A clean brain ",
    "Entreaty ",
    "Brusque temperment ",
    "A flexible thought pattern ",
    "Insightful visage ",
    "Mindfulness in action ",
    "Automated translation ",
    "Facebook ",
    "Compassion ",
    "Altruism ",
    "Totality ",
    "Rhetorical training ",
    "Insoucinace ",
    "Dynamic mutative creation ",
    "The graspably non-considerable ",
    "Social science ",
    "Stone age philosophy ",
    "Interpretive dance ",
    "Meditative physics ",
    "Rambunctious cause ",
    "Biology ",
    "Multitudinality ",
    "Nascent luminence ",
    "True randomness ",
    "Deconstrutionist wisdom ",
    "Science intersecting religion ",
    "The role of a leader ",
    "The soul of a calm person ",
    "The idea of God ",
    "Mechanistic reaction ",
    "Semiotic involvement ",
    "Quantum physics ",
    "Cerebrolinguistics ",
    "Dubstep as a metaphor for liberty "
  ],

  middles : [
    "nurtures ",
    "unifies ",
    "stymies ",
    "separates ",
    "distributes widely ",
    "appreciates ",
    "deprecates ",
    "conglomerates ",
    "gives meaning to ",
    "displays ",
    "projects ",
    "permeates ",
    "clarifies ",
    "macerates ",
    "asceticizes ",
    "recapitulates ",
    "satisfies ",
    "sanctifies via ",
    "trivializes ",
    "justifies with ",
    "rarifies ",
    "enjoins ",
    "codifies ",
    "socializes by way of ",
    "reclaims ",
    "disintegrates ",
    "integrates ",
    "reduces ",
    "explores ",
    "dissociates from within ",
    "exposes ",
    "masticates ",
    "builds, using ",
    "teaches through ",
    "projects onto ",
    "imparts reality to ",
    "constructs with "
  ],

  qualifiers : [
    "abundance of ",
    "ostentatious ",
    "the barrier of ",
    "self-righteous ",
    "collective ",
    "species specific ",
    "heterodynamic ",
    "clarity within ",
    "epistemological ",
    "synchronistic ",
    "timely ",
    "unpredictable ",
    "unassailable ",
    "glassy eyed ",
    "dishonest ",
    "indefatigable ",
    "factual ",
    "highly descriptive ",
    "location based ",
    "describably pure ",
    "bounded ",
    "unbounded ",
    "trans-boundary ",
    "expedient ",
    "ontogenous ",
    "parallelizes ",
    "serendipitous ",
    "geopolitical ",
    "popular ",
    "advocatory ",
    "pluripotentialistic ",
    "atomized ",
    "rhythmatic ",
    "dimensional ",
    "sophist ",
    "Etruscan ",
    "reliquary ",
    "escapist ",
    "anarchist ",
    "conformist ",
    "erudite ",
    "epistemic ",
    "cromulent ",
    "poker faced ",
    "miniscule ",
    "Manichean ",
    "Hadrean ",
    "media driven ",
    "global ",
    "local ",
    "post-",
    "hyper-",
    "trans-",
    "extra-",
    "super-",
    "supra-",
    "world regarding ",
    "provably optimal ",
    "potential ",
    "munctional "
  ],

  finishes : [
    "marvel.",
    "choices.",
    "harmony.",
    "phylogeny.",
    "disharmony.",
    "traversal.",
    "ostracism.",
    "semiotics.",
    "deconstructionism.",
    "post-logic.",
    "escapism.",
    "criarchy.",
    "permaculture.",
    "platitudinality.",
    "creosophy.",
    "journalism.",
    "preternaturality.",
    "glossolalia.",
    "idolatry.",
    "conscience confluence.",
    "hapto-ergonomics.",
    "mental rigor.",
    "spiritual fortitude.",
    "wisdom.",
    "secret genius.",
    "inner brilliance.",
    "unseen internal gift.",
    "combobulation.",
    "transdoctrinal inference.",
    "creativity.",
    "significance.",
    "materialization.",
    "generosity.",
    "infinitude.",
    "plurality.",
    "asceticism.",
    "truism.",
    "horizontal scaling.",
    "monopoly.",
    "temerity.",
    "neo-Platonism."
    "monosophism.",
    "polyarchy.",
    "heredity.",
    "togetherness.",
    "voluminous reaction.",
    "joyous revelation.",
    "stimulation.",
    "numbing.",
    "intuition.",
    "actions."
  ]

};

function randFrom(X) {
  return X[Math.floor(Math.random() * X.length)];
}

function makeDC() {
  return randFrom(Data.starts) + randFrom(Data.middles) + randFrom(Data.qualifiers) + randFrom(Data.finishes);
}

function go() {
  document.getElementById('txt').innerHTML = '"' + makeDC() + '"';
}
<|endoftext|>


<commit_before>// Karma configuration
// Generated on Fri Dec 05 2014 16:49:29 GMT-0500 (EST)

module.exports = function(config) {
  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: ['jspm', 'jasmine'],

    jspm: {
      // Edit this to your needs
      loadFiles: ['src/**/*.js', 'test/unit/**/*.js'],
      paths: {
        '*': '*.js',
        'github:*': 'jspm_packages/github/*.js',
        'npm:*': 'jspm_packages/npm/*.js'
      }
    },

    // list of files / patterns to load in the browser
    files: [],

    // 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: {
      'test/**/*.js': ['babel'],
      'src/**/*.js': ['babel']
    },
    'babelPreprocessor': {
      options: {
        sourceMap: 'inline',
        moduleIds: false,
        optional: [
          'es7.decorators',
          'es7.classProperties'
        ]
      }
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],

    // 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: true,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['Chrome'],

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false
  });
};
<commit_msg>Do not append an extra .js extension for karma<commit_after>// Karma configuration
// Generated on Fri Dec 05 2014 16:49:29 GMT-0500 (EST)

module.exports = function(config) {
  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: ['jspm', 'jasmine'],

    jspm: {
      // Edit this to your needs
      loadFiles: ['src/**/*.js', 'test/unit/**/*.js'],
      paths: {
        '*': '*',
        'github:*': 'jspm_packages/github/*',
        'npm:*': 'jspm_packages/npm/*'
      }
    },

    // list of files / patterns to load in the browser
    files: [],

    // 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: {
      'test/**/*.js': ['babel'],
      'src/**/*.js': ['babel']
    },
    'babelPreprocessor': {
      options: {
        sourceMap: 'inline',
        moduleIds: false,
        optional: [
          'es7.decorators',
          'es7.classProperties'
        ]
      }
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],

    // 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: true,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['Chrome'],

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false
  });
};
<|endoftext|>


<commit_before>var cp = require('child_process');

function addShellAction(command, next) {
    return function () {
        var shellCmd = cp.exec(command, function (err, stdout) {
            if (!err) {
                // Show git output
                console.log(stdout);
            } else {
                // Display git or shell error
                console.error(err);
            }

            shellCmd.stdin.end();

            if (typeof next === 'function') {
                next();
            }
        });
    };
}

module.exports = function () {
    var actions, commands = [
        'git branch -D gh-pages',
        'git branch gh-pages',
        'git rebase master gh-pages'
    ];

    commands.reverse().forEach(function (cmd, index) {
        if (index === 0) {
            actions = addShellAction(cmd);
        } else {
            actions = addShellAction(cmd, actions);
        }
    });

    if (typeof actions == 'function') {
        actions();
    }
};

/*
 ,
 'git add --all .',
 'git commit -m "Made pages"'
 */<commit_msg>Added command to make-pages<commit_after>var cp = require('child_process');

function addShellAction(command, next) {
    return function () {
        var shellCmd = cp.exec(command, function (err, stdout) {
            if (!err) {
                // Show git output
                console.log(stdout);
            } else {
                // Display git or shell error
                console.error(err);
            }

            shellCmd.stdin.end();

            if (typeof next === 'function') {
                next();
            }
        });
    };
}

module.exports = function () {
    var actions, commands = [
        'git branch -D gh-pages',
        'git branch gh-pages',
        'git rebase master gh-pages',
        'rm *.*',
        'cp -r dist/* .'
    ];

    commands.reverse().forEach(function (cmd, index) {
        if (index === 0) {
            actions = addShellAction(cmd);
        } else {
            actions = addShellAction(cmd, actions);
        }
    });

    if (typeof actions == 'function') {
        actions();
    }
};

/*
 ,
 'git add --all .',
 'git commit -m "Made pages"'
 */<|endoftext|>


<commit_before>var Data = {

  starts : [
    "Experiential truth ",
    "Coffee ",
    "The physical world ",
    "Non-judgment ",
    "Parsimony ",
    "Clarity ",
    "Infinity ",
    "Calamity ",
    "Prosody ",
    "Unity ",
    "Good health ",
    "A quantum leap ",    // thanks Francis Veilleux-Gaboury
    "A clean brain ",
    "Entreaty ",
    "Brusque temperment ",
    "A flexible thought pattern ",
    "Insightful visage ",
    "Mindfulness in action ",
    "Automated translation ",
    "Facebook ",
    "Compassion ",
    "Altruism ",
    "Totality ",
    "Insoucinace ",
    "Dynamic mutative creation ",
    "The graspably non-considerable ",
    "Social science ",
    "Stone age philosophy ",
    "Interpretive dance ",
    "Meditative physics ",
    "Rambunctious cause ",
    "Multitudinality ",
    "Nascent luminence ",
    "True randomness ",
    "Deconstrutionist wisdom ",
    "Science intersecting religion ",
    "The role of a leader ",
    "The soul of a calm person ",
    "The idea of God ",
    "Mechanistic reaction ",
    "Semiotic involvement ",
    "Quantum physics ",
    "Cerebrolinguistics ",
    "Dubstep as a metaphor for liberty "
  ],

  middles : [
    "nurtures ",
    "unifies ",
    "separates ",
    "distributes widely ",
    "appreciates ",
    "deprecates ",
    "conglomerates ",
    "gives meaning to ",
    "displays ",
    "permeates ",
    "clarifies ",
    "asceticizes ",
    "recapitulates ",
    "satisfies ",
    "sanctifies via ",
    "trivializes ",
    "justifies with ",
    "rarifies ",
    "codifies ",
    "socializes by way of ",
    "reclaims ",
    "disintegrates ",
    "integrates ",
    "reduces ",
    "explores ",
    "dissociates from within ",
    "exposes ",
    "builds, using ",
    "teaches through ",
    "projects onto ",
    "imparts reality to ",
    "constructs with "
  ],

  qualifiers : [
    "abundance of ",
    "ostentatious ",
    "the barrier of ",
    "self-righteous ",
    "species specific ",
    "heterodynamic ",
    "epistemological ",
    "synchronistic ",
    "timely ",
    "unpredictable ",
    "unassailable ",
    "dishonest ",
    "factual ",
    "highly descriptive ",
    "location based ",
    "describably pure ",
    "bounded ",
    "unbounded ",
    "trans-boundary ",
    "expedient ",
    "ontogenous ",
    "geopolitical ",
    "popular ",
    "advocatory ",
    "pluripotentialistic ",
    "rhythmatic ",
    "dimensional ",
    "sophist ",
    "reliquary ",
    "escapist ",
    "anarchist ",
    "conformist ",
    "erudite ",
    "miniscule ",
    "Manichean ",
    "Hadrean ",
    "media driven ",
    "global ",
    "local ",
    "post-",
    "hyper-",
    "trans-",
    "extra-",
    "super-",
    "supra-",
    "world regarding ",
    "provably optimal ",
    "potential "
  ],

  finishes : [
    "marvel.",
    "choices.",
    "harmony.",
    "phylogeny.",
    "disharmony.",
    "traversal.",
    "ostracism.",
    "semiotics.",
    "deconstructionism.",
    "post-logic.",
    "escapism.",
    "criarchy.",
    "platitudinality.",
    "creosophy.",
    "journalism.",
    "preternaturality.",
    "glossolalia.",
    "idolatry.",
    "conscience confluence.",
    "hapto-ergonomics.",
    "mental rigor.",
    "spiritual fortitude.",
    "wisdom.",
    "secret genius.",
    "inner brilliance.",
    "unseen internal gift.",
    "combobulation.",
    "transdoctrinal inference.",
    "creativity.",
    "significance.",
    "materialization.",
    "generosity.",
    "infinitude.",
    "plurality.",
    "asceticism.",
    "truism.",
    "monopoly.",
    "monosophism.",
    "polyarchy.",
    "togetherness.",
    "voluminous reaction.",
    "joyous revelation.",
    "stimulation.",
    "numbing.",
    "intuition.",
    "actions."
  ]

};

function randFrom(X) {
  return X[Math.floor(Math.random() * X.length)];
}

function makeDC() {
  return randFrom(Data.starts) + randFrom(Data.middles) + randFrom(Data.qualifiers) + randFrom(Data.finishes);
}

function go() {
  document.getElementById('txt').innerHTML = '"' + makeDC() + '"';
}
<commit_msg>Update choprifier.js<commit_after>var Data = {

  starts : [
    "Experiential truth ",
    "Coffee ",
    "The physical world ",
    "Non-judgment ",
    "Parsimony ",
    "Clarity ",
    "Apostasy ",
    "Infinity ",
    "Calamity ",
    "Prosody ",
    "Unity ",
    "Good health ",
    "A quantum leap ",    // thanks Francis Veilleux-Gaboury
    "A clean brain ",
    "Entreaty ",
    "Brusque temperment ",
    "A flexible thought pattern ",
    "Insightful visage ",
    "Mindfulness in action ",
    "Automated translation ",
    "Facebook ",
    "Compassion ",
    "Altruism ",
    "Totality ",
    "Insoucinace ",
    "Dynamic mutative creation ",
    "The graspably non-considerable ",
    "Social science ",
    "Stone age philosophy ",
    "Interpretive dance ",
    "Meditative physics ",
    "Rambunctious cause ",
    "Multitudinality ",
    "Nascent luminence ",
    "True randomness ",
    "Deconstrutionist wisdom ",
    "Science intersecting religion ",
    "The role of a leader ",
    "The soul of a calm person ",
    "The idea of God ",
    "Mechanistic reaction ",
    "Semiotic involvement ",
    "Quantum physics ",
    "Cerebrolinguistics ",
    "Dubstep as a metaphor for liberty "
  ],

  middles : [
    "nurtures ",
    "unifies ",
    "separates ",
    "distributes widely ",
    "appreciates ",
    "deprecates ",
    "conglomerates ",
    "gives meaning to ",
    "displays ",
    "permeates ",
    "clarifies ",
    "asceticizes ",
    "recapitulates ",
    "satisfies ",
    "sanctifies via ",
    "trivializes ",
    "justifies with ",
    "rarifies ",
    "codifies ",
    "socializes by way of ",
    "reclaims ",
    "disintegrates ",
    "integrates ",
    "reduces ",
    "explores ",
    "dissociates from within ",
    "exposes ",
    "builds, using ",
    "teaches through ",
    "projects onto ",
    "imparts reality to ",
    "constructs with "
  ],

  qualifiers : [
    "abundance of ",
    "ostentatious ",
    "the barrier of ",
    "self-righteous ",
    "species specific ",
    "heterodynamic ",
    "epistemological ",
    "synchronistic ",
    "timely ",
    "unpredictable ",
    "unassailable ",
    "dishonest ",
    "factual ",
    "highly descriptive ",
    "location based ",
    "describably pure ",
    "bounded ",
    "unbounded ",
    "trans-boundary ",
    "expedient ",
    "ontogenous ",
    "geopolitical ",
    "popular ",
    "advocatory ",
    "pluripotentialistic ",
    "rhythmatic ",
    "dimensional ",
    "sophist ",
    "reliquary ",
    "escapist ",
    "anarchist ",
    "conformist ",
    "erudite ",
    "miniscule ",
    "Manichean ",
    "Hadrean ",
    "media driven ",
    "global ",
    "local ",
    "post-",
    "hyper-",
    "trans-",
    "extra-",
    "super-",
    "supra-",
    "world regarding ",
    "provably optimal ",
    "potential "
  ],

  finishes : [
    "marvel.",
    "choices.",
    "harmony.",
    "phylogeny.",
    "disharmony.",
    "traversal.",
    "ostracism.",
    "semiotics.",
    "deconstructionism.",
    "post-logic.",
    "escapism.",
    "criarchy.",
    "platitudinality.",
    "creosophy.",
    "journalism.",
    "preternaturality.",
    "glossolalia.",
    "idolatry.",
    "conscience confluence.",
    "hapto-ergonomics.",
    "mental rigor.",
    "spiritual fortitude.",
    "wisdom.",
    "secret genius.",
    "inner brilliance.",
    "unseen internal gift.",
    "combobulation.",
    "transdoctrinal inference.",
    "creativity.",
    "significance.",
    "materialization.",
    "generosity.",
    "infinitude.",
    "plurality.",
    "asceticism.",
    "truism.",
    "monopoly.",
    "monosophism.",
    "polyarchy.",
    "togetherness.",
    "voluminous reaction.",
    "joyous revelation.",
    "stimulation.",
    "numbing.",
    "intuition.",
    "actions."
  ]

};

function randFrom(X) {
  return X[Math.floor(Math.random() * X.length)];
}

function makeDC() {
  return randFrom(Data.starts) + randFrom(Data.middles) + randFrom(Data.qualifiers) + randFrom(Data.finishes);
}

function go() {
  document.getElementById('txt').innerHTML = '"' + makeDC() + '"';
}
<|endoftext|>


<commit_before>// Karma configuration
// Generated on Tue May 02 2017 14:29:01 GMT-0500 (Central Daylight Time)

module.exports = function(config) {
  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: ['mocha', 'chai'],

    // list of files / patterns to load in the browser
    files: [
      { pattern: 'src/**/*.js', included: false },
      'tests/**/*.spec.js'
    ],

    // 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: {
      'src/index.js': ['rollup'],
      'tests/**/*.spec.js': ['rollup']
    },

    rollupPreprocessor: {
      plugins: [
        require('rollup-plugin-node-resolve')(),
        require('rollup-plugin-commonjs')(),
        require('rollup-plugin-babel')()
      ],
      format: 'iife',
      moduleName: 'ko.store',
      sourceMap: 'inline'
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],

    // 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: true,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['PhantomJS', 'Chrome'],

    // 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
  });
};
<commit_msg>Finalize karma testing config.<commit_after>// Karma configuration
// Generated on Tue May 02 2017 14:29:01 GMT-0500 (Central Daylight Time)

module.exports = function(config) {
  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: ['mocha', 'chai'],

    // list of files / patterns to load in the browser
    files: [
      { pattern: 'src/**/*.js', included: false },
      'tests/**/*.spec.js'
    ],

    // 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: {
      'src/index.js': ['rollup'],
      'tests/**/*.spec.js': ['rollup']
    },

    rollupPreprocessor: {
      plugins: [
        require('rollup-plugin-node-resolve')(),
        require('rollup-plugin-commonjs')(),
        require('rollup-plugin-babel')()
      ],
      format: 'iife',
      moduleName: 'ko.store',
      sourceMap: 'inline'
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],

    // 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: true,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['PhantomJS'],

    // 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
  });
};
<|endoftext|>


<commit_before>//jshint strict: false
module.exports = function(config) {
  config.set({

    basePath: './app',

    files: [
      'bower_components/angular/angular.js',
      'bower_components/angular-route/angular-route.js',
      'bower_components/angular-mocks/angular-mocks.js',
      'components/**/*.js',
      'views/**/*.js'
    ],

    autoWatch: true,

    frameworks: ['jasmine'],

    browsers: ['Chrome'],

    plugins: [
      'karma-chrome-launcher',
      'karma-firefox-launcher',
      'karma-jasmine',
      'karma-junit-reporter'
    ],

    junitReporter: {
      outputFile: 'test_out/unit.xml',
      suite: 'unit'
    }

  });
};
<commit_msg>Add `ngStorage' and `moment' to Karma config<commit_after>//jshint strict: false
module.exports = function(config) {
  config.set({

    basePath: './app',

    files: [
      'bower_components/angular/angular.js',
      'bower_components/angular-route/angular-route.js',
      'bower_components/angular-mocks/angular-mocks.js',
      'bower_components/ngstorage/ngStorage.js',

      'bower_components/moment/moment.js',

      'components/**/*.js',
      'views/**/*.js'
    ],

    autoWatch: true,

    frameworks: ['jasmine'],

    browsers: ['Chrome'],

    plugins: [
      'karma-chrome-launcher',
      'karma-firefox-launcher',
      'karma-jasmine',
      'karma-junit-reporter'
    ],

    junitReporter: {
      outputFile: 'test_out/unit.xml',
      suite: 'unit'
    }

  });
};
<|endoftext|>


<commit_before>// Karma configuration
// Generated on Fri Aug 15 2014 23:11:13 GMT-0500 (CDT)

var webpack = require('webpack');

function createCustomLauncher(browser, version, platform) {
  return {
    base: 'SauceLabs',
    browserName: browser,
    version: version,
    platform: platform
  };
}

module.exports = function(config) {
  var customLaunchers = {};
  var browsers = [];

  if (process.env.SAUCE_USERNAME || process.env.SAUCE_ACCESS_KEY) {
    customLaunchers = {};

    var runAll = true;
    var options = [
      'SAUCE_CHROME',
      'SAUCE_FIREFOX',
      'SAUCE_SAFARI',
      'SAUCE_OPERA',
      'SAUCE_IE',
      'SAUCE_EDGE',
      'SAUCE_IOS',
      'SAUCE_ANDROID'
    ];

    options.forEach(function (opt) {
      if (process.env[opt]) {
        runAll = false;
      }
    });

    // Chrome
    if (runAll || process.env.SAUCE_CHROME) {
      customLaunchers.SL_Chrome = createCustomLauncher('chrome');
      // customLaunchers.SL_ChromeDev = createCustomLauncher('chrome', 'dev');
      // customLaunchers.SL_ChromeBeta = createCustomLauncher('chrome', 'beta');
    }

    // Firefox
    if (runAll || process.env.SAUCE_FIREFOX) {
      customLaunchers.SL_Firefox = createCustomLauncher('firefox');
      // customLaunchers.SL_FirefoxDev = createCustomLauncher('firefox', 'dev');
      // customLaunchers.SL_FirefoxBeta = createCustomLauncher('firefox', 'beta');
    }

    // Safari
    if (runAll || process.env.SAUCE_SAFARI) {
      // customLaunchers.SL_Safari7 = createCustomLauncher('safari', 7);
      // customLaunchers.SL_Safari8 = createCustomLauncher('safari', 8);

      customLaunchers.SL_Safari9 = createCustomLauncher('safari', 9);
    }

    // Opera
    if (runAll || process.env.SAUCE_OPERA) {
      // TODO The available versions of Opera are too old and lack basic APIs
      // customLaunchers.SL_Opera11 = createCustomLauncher('opera', 11, 'Windows XP');
      // customLaunchers.SL_Opera12 = createCustomLauncher('opera', 12, 'Windows 7');
    }

    // IE
    if (runAll || process.env.SAUCE_IE) {
      customLaunchers.SL_IE10 = createCustomLauncher('internet explorer', 10, 'Windows 2012');
      customLaunchers.SL_IE11 = createCustomLauncher('internet explorer', 11, 'Windows 8.1');
    }

    // Edge
    if (runAll || process.env.SAUCE_EDGE) {
      customLaunchers.SL_Edge = createCustomLauncher('microsoftedge', null, 'Windows 10');
    }

    // IOS
    if (runAll || process.env.SAUCE_IOS) {
      // TODO IOS7 capture always timesout
      // customLaunchers.SL_IOS7 = createCustomLauncher('iphone', '7.1', 'OS X 10.10');
      // TODO Mobile browsers are causing failures, possibly from too many concurrent VMs
      // customLaunchers.SL_IOS8 = createCustomLauncher('iphone', '8.4', 'OS X 10.10');
      // customLaunchers.SL_IOS9 = createCustomLauncher('iphone', '9.2', 'OS X 10.10');
    }

    // Android
    if (runAll || process.env.SAUCE_ANDROID) {
      // TODO Mobile browsers are causing failures, possibly from too many concurrent VMs
      // customLaunchers.SL_Android4 = createCustomLauncher('android', '4.4', 'Linux');
      // customLaunchers.SL_Android5 = createCustomLauncher('android', '5.1', 'Linux');
    }

    browsers = Object.keys(customLaunchers);
  } else if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') {
    console.log(
      'Cannot run on Sauce Labs as encrypted environment variables are not available to PRs. ' +
      'Running on Travis.'
    );
    browsers = ['Firefox'];
  } else {
    console.log('Running locally since SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables are not set.');
    browsers = ['Firefox', 'Chrome', 'Safari', 'Opera'];
  }

  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-ajax', 'jasmine', 'sinon'],

    // list of files / patterns to load in the browser
    files: [
      'test/specs/__helpers.js',
      'test/specs/**/*.spec.js',
    ],

    // 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: {
      'test/specs/__helpers.js': ['webpack', 'sourcemap'],
      'test/specs/**/*.spec.js': ['webpack', 'sourcemap']
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['dots', 'coverage', 'saucelabs'],

    // web server port
    port: 9876,

    // Increase timeouts to prevent the issue with disconnected tests (https://goo.gl/nstA69)
    captureTimeout: 4 * 60 * 1000,
    browserDisconnectTimeout: 10000,
    browserDisconnectTolerance: 1,
    browserNoActivityTimeout: 4 * 60 * 1000,

    // 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,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: browsers,

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false,

    // Webpack config
    webpack: {
      cache: true,
      devtool: 'inline-source-map',
      module: {
        postLoaders: [
          {
            test: /\.js$/,
            exclude: /(node_modules|test)/,
            loader: 'istanbul-instrumenter'
          }
        ]
      },
      externals: [
        {
          './adapters/http': 'var undefined'
        }
      ],
      plugins: [
        new webpack.DefinePlugin({
          'process.env.NODE_ENV': JSON.stringify('test')
        })
      ]
    },

    webpackServer: {
      stats: {
        colors: true
      }
    },

    // Coverage reporting
    coverageReporter: {
      type: 'lcov',
      dir: 'coverage/',
      subdir: '.'
    },

    // SauceLabs config
    sauceLabs: {
      recordScreenshots: false,
      connectOptions: {
        // port: 5757,
        logfile: 'sauce_connect.log'
      },
      public: 'public'
    },

    customLaunchers: customLaunchers
  });
};
<commit_msg>Remove IE10 launcher from karma config<commit_after>// Karma configuration
// Generated on Fri Aug 15 2014 23:11:13 GMT-0500 (CDT)

var webpack = require('webpack');

function createCustomLauncher(browser, version, platform) {
  return {
    base: 'SauceLabs',
    browserName: browser,
    version: version,
    platform: platform
  };
}

module.exports = function(config) {
  var customLaunchers = {};
  var browsers = [];

  if (process.env.SAUCE_USERNAME || process.env.SAUCE_ACCESS_KEY) {
    customLaunchers = {};

    var runAll = true;
    var options = [
      'SAUCE_CHROME',
      'SAUCE_FIREFOX',
      'SAUCE_SAFARI',
      'SAUCE_OPERA',
      'SAUCE_IE',
      'SAUCE_EDGE',
      'SAUCE_IOS',
      'SAUCE_ANDROID'
    ];

    options.forEach(function (opt) {
      if (process.env[opt]) {
        runAll = false;
      }
    });

    // Chrome
    if (runAll || process.env.SAUCE_CHROME) {
      customLaunchers.SL_Chrome = createCustomLauncher('chrome');
      // customLaunchers.SL_ChromeDev = createCustomLauncher('chrome', 'dev');
      // customLaunchers.SL_ChromeBeta = createCustomLauncher('chrome', 'beta');
    }

    // Firefox
    if (runAll || process.env.SAUCE_FIREFOX) {
      customLaunchers.SL_Firefox = createCustomLauncher('firefox');
      // customLaunchers.SL_FirefoxDev = createCustomLauncher('firefox', 'dev');
      // customLaunchers.SL_FirefoxBeta = createCustomLauncher('firefox', 'beta');
    }

    // Safari
    if (runAll || process.env.SAUCE_SAFARI) {
      // customLaunchers.SL_Safari7 = createCustomLauncher('safari', 7);
      // customLaunchers.SL_Safari8 = createCustomLauncher('safari', 8);

      customLaunchers.SL_Safari9 = createCustomLauncher('safari', 9);
    }

    // Opera
    if (runAll || process.env.SAUCE_OPERA) {
      // TODO The available versions of Opera are too old and lack basic APIs
      // customLaunchers.SL_Opera11 = createCustomLauncher('opera', 11, 'Windows XP');
      // customLaunchers.SL_Opera12 = createCustomLauncher('opera', 12, 'Windows 7');
    }

    // IE
    if (runAll || process.env.SAUCE_IE) {
      customLaunchers.SL_IE11 = createCustomLauncher('internet explorer', 11, 'Windows 8.1');
    }

    // Edge
    if (runAll || process.env.SAUCE_EDGE) {
      customLaunchers.SL_Edge = createCustomLauncher('microsoftedge', null, 'Windows 10');
    }

    // IOS
    if (runAll || process.env.SAUCE_IOS) {
      // TODO IOS7 capture always timesout
      // customLaunchers.SL_IOS7 = createCustomLauncher('iphone', '7.1', 'OS X 10.10');
      // TODO Mobile browsers are causing failures, possibly from too many concurrent VMs
      // customLaunchers.SL_IOS8 = createCustomLauncher('iphone', '8.4', 'OS X 10.10');
      // customLaunchers.SL_IOS9 = createCustomLauncher('iphone', '9.2', 'OS X 10.10');
    }

    // Android
    if (runAll || process.env.SAUCE_ANDROID) {
      // TODO Mobile browsers are causing failures, possibly from too many concurrent VMs
      // customLaunchers.SL_Android4 = createCustomLauncher('android', '4.4', 'Linux');
      // customLaunchers.SL_Android5 = createCustomLauncher('android', '5.1', 'Linux');
    }

    browsers = Object.keys(customLaunchers);
  } else if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') {
    console.log(
      'Cannot run on Sauce Labs as encrypted environment variables are not available to PRs. ' +
      'Running on Travis.'
    );
    browsers = ['Firefox'];
  } else {
    console.log('Running locally since SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables are not set.');
    browsers = ['Firefox', 'Chrome', 'Safari', 'Opera'];
  }

  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-ajax', 'jasmine', 'sinon'],

    // list of files / patterns to load in the browser
    files: [
      'test/specs/__helpers.js',
      'test/specs/**/*.spec.js',
    ],

    // 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: {
      'test/specs/__helpers.js': ['webpack', 'sourcemap'],
      'test/specs/**/*.spec.js': ['webpack', 'sourcemap']
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['dots', 'coverage', 'saucelabs'],

    // web server port
    port: 9876,

    // Increase timeouts to prevent the issue with disconnected tests (https://goo.gl/nstA69)
    captureTimeout: 4 * 60 * 1000,
    browserDisconnectTimeout: 10000,
    browserDisconnectTolerance: 1,
    browserNoActivityTimeout: 4 * 60 * 1000,

    // 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,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: browsers,

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false,

    // Webpack config
    webpack: {
      cache: true,
      devtool: 'inline-source-map',
      module: {
        postLoaders: [
          {
            test: /\.js$/,
            exclude: /(node_modules|test)/,
            loader: 'istanbul-instrumenter'
          }
        ]
      },
      externals: [
        {
          './adapters/http': 'var undefined'
        }
      ],
      plugins: [
        new webpack.DefinePlugin({
          'process.env.NODE_ENV': JSON.stringify('test')
        })
      ]
    },

    webpackServer: {
      stats: {
        colors: true
      }
    },

    // Coverage reporting
    coverageReporter: {
      type: 'lcov',
      dir: 'coverage/',
      subdir: '.'
    },

    // SauceLabs config
    sauceLabs: {
      recordScreenshots: false,
      connectOptions: {
        // port: 5757,
        logfile: 'sauce_connect.log'
      },
      public: 'public'
    },

    customLaunchers: customLaunchers
  });
};
<|endoftext|>


<commit_before>// Karma configuration file, see link for more information
// https://karma-runner.github.io/0.13/config/configuration-file.html

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: [
      '@angular-devkit/build-angular',
      'jasmine'
    ],
    plugins: [
      require('@angular-devkit/build-angular/plugins/karma'),
      require('karma-jasmine'),
      //require('karma-chrome-launcher'),
      require('karma-phantomjs-launcher'),
      require('karma-coverage-istanbul-reporter'),
    ],
    client: {
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    mime: {
      'text/x-typescript': ['ts', 'tsx']
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, 'coverage'), reports: [
        'lcovonly',
        'text-summary',
        'html'
      ],
      fixWebpackSourcePaths: true,
    },
    angularCli: {
      config: './angular-cli.json',
      environment: 'dev'
    },
    reporters: config.angularCli && config.angularCli.codeCoverage
      ? ['progress', 'coverage-istanbul']
      : ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['PhantomJS'],
    singleRun: false
  });
};
<commit_msg>chore: fix unit tests not running as single run<commit_after>// Karma configuration file, see link for more information
// https://karma-runner.github.io/0.13/config/configuration-file.html

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: [
      '@angular-devkit/build-angular',
      'jasmine'
    ],
    plugins: [
      require('@angular-devkit/build-angular/plugins/karma'),
      require('karma-jasmine'),
      //require('karma-chrome-launcher'),
      require('karma-phantomjs-launcher'),
      require('karma-coverage-istanbul-reporter'),
    ],
    client: {
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    mime: {
      'text/x-typescript': ['ts', 'tsx']
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, 'coverage'), reports: [
        'lcovonly',
        'text-summary',
        'html'
      ],
      fixWebpackSourcePaths: true,
    },
    angularCli: {
      config: './angular-cli.json',
      environment: 'dev'
    },
    reporters: config.angularCli && config.angularCli.codeCoverage
      ? ['progress', 'coverage-istanbul']
      : ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['PhantomJS'],
    singleRun: true
  });
};
<|endoftext|>


<commit_before>import en from '../locale/dim.json';
import it from '../locale/it/dim.json';
import de from '../locale/de/dim.json';
import fr from '../locale/fr/dim.json';
import es from '../locale/es-ES/dim.json';
import esMX from '../locale/es-MX/dim.json';
import ja from '../locale/ja/dim.json';
import pl from '../locale/pl/dim.json';
import ptBR from '../locale/pt-BR/dim.json';
import ru from '../locale/ru/dim.json';
import zhCN from '../locale/zh-CN/dim.json';

import { init as i18init } from 'i18next';

function config($compileProvider, $httpProvider, hotkeysProvider,
                ngHttpRateLimiterConfigProvider, ngDialogProvider) {
  'ngInject';

  // TODO: remove this depenency by fixing component bindings https://github.com/angular/angular.js/blob/master/docs/CHANGELOG.md#breaking-changes-1
  $compileProvider.preAssignBindingsEnabled(true);
  $compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?:|data:image\/)/);

  $httpProvider.interceptors.push('ngHttpRateLimiterInterceptor');
  $httpProvider.interceptors.push('http-refresh-token');
  $httpProvider.useApplyAsync(true);

  hotkeysProvider.includeCheatSheet = true;

  // See https://github.com/i18next/ng-i18next
  i18init({
    debug: $DIM_FLAVOR === 'dev',
    fallbackLng: 'en',
    lowerCaseLng: true,
    interpolation: {
      escapeValue: false,
      format: function(val, format) {
        if (format === 'pct') {
          return `${Math.min(100.0, Math.floor(100.0 * val))}%`;
        }
        return val;
      }
    },
    resources: {
      en: { translation: en },
      it: { translation: it },
      de: { translation: de },
      fr: { translation: fr },
      es: { translation: es },
      'es-mx': { translation: esMX },
      ja: { translation: ja },
      'pt-br': { translation: ptBR },
      pl: { translation: pl },
      ru: { translation: ru },
      'zh-cht': { translation: zhCN }
    },
    returnObjects: true
  });

  // Bungie's API will start throttling an API if it's called more than once per second. It does this
  // by making responses take 2s to return, not by sending an error code or throttling response. Choosing
  // our throttling limit to be 1 request every 1100ms lets us achieve best throughput while accounting for
  // what I assume is clock skew between Bungie's hosts when they calculate a global rate limit.
  // ngHttpRateLimiterConfigProvider.addLimiter(/www\.bungie\.net\/D1\/Platform\/Destiny\/TransferItem/, 1, 1100);
  // ngHttpRateLimiterConfigProvider.addLimiter(/www\.bungie\.net\/D1\/Platform\/Destiny\/EquipItem/, 1, 1100);
  // ngHttpRateLimiterConfigProvider.addLimiter(/www\.bungie\.net\/Platform\/Destiny2\/Actions\/Items\/TransferItem/, 1, 1100);
  // ngHttpRateLimiterConfigProvider.addLimiter(/www\.bungie\.net\/Platform\/Destiny2\/Actions\/Items\/EquipItem/, 1, 1100);

  // https://github.com/likeastore/ngDialog/issues/327
  ngDialogProvider.setDefaults({
    appendTo: '.app',
    disableAnimation: true,
    plain: true
  });
}

export default config;
<commit_msg>Put back throttling<commit_after>import en from '../locale/dim.json';
import it from '../locale/it/dim.json';
import de from '../locale/de/dim.json';
import fr from '../locale/fr/dim.json';
import es from '../locale/es-ES/dim.json';
import esMX from '../locale/es-MX/dim.json';
import ja from '../locale/ja/dim.json';
import pl from '../locale/pl/dim.json';
import ptBR from '../locale/pt-BR/dim.json';
import ru from '../locale/ru/dim.json';
import zhCN from '../locale/zh-CN/dim.json';

import { init as i18init } from 'i18next';

function config($compileProvider, $httpProvider, hotkeysProvider,
                ngHttpRateLimiterConfigProvider, ngDialogProvider) {
  'ngInject';

  // TODO: remove this depenency by fixing component bindings https://github.com/angular/angular.js/blob/master/docs/CHANGELOG.md#breaking-changes-1
  $compileProvider.preAssignBindingsEnabled(true);
  $compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?:|data:image\/)/);

  $httpProvider.interceptors.push('ngHttpRateLimiterInterceptor');
  $httpProvider.interceptors.push('http-refresh-token');
  $httpProvider.useApplyAsync(true);

  hotkeysProvider.includeCheatSheet = true;

  // See https://github.com/i18next/ng-i18next
  i18init({
    debug: $DIM_FLAVOR === 'dev',
    fallbackLng: 'en',
    lowerCaseLng: true,
    interpolation: {
      escapeValue: false,
      format: function(val, format) {
        if (format === 'pct') {
          return `${Math.min(100.0, Math.floor(100.0 * val))}%`;
        }
        return val;
      }
    },
    resources: {
      en: { translation: en },
      it: { translation: it },
      de: { translation: de },
      fr: { translation: fr },
      es: { translation: es },
      'es-mx': { translation: esMX },
      ja: { translation: ja },
      'pt-br': { translation: ptBR },
      pl: { translation: pl },
      ru: { translation: ru },
      'zh-cht': { translation: zhCN }
    },
    returnObjects: true
  });

  // Bungie's API will start throttling an API if it's called more than once per second. It does this
  // by making responses take 2s to return, not by sending an error code or throttling response. Choosing
  // our throttling limit to be 1 request every 1100ms lets us achieve best throughput while accounting for
  // what I assume is clock skew between Bungie's hosts when they calculate a global rate limit.
  ngHttpRateLimiterConfigProvider.addLimiter(/www\.bungie\.net\/D1\/Platform\/Destiny\/TransferItem/, 1, 1100);
  ngHttpRateLimiterConfigProvider.addLimiter(/www\.bungie\.net\/D1\/Platform\/Destiny\/EquipItem/, 1, 1100);
  ngHttpRateLimiterConfigProvider.addLimiter(/www\.bungie\.net\/Platform\/Destiny2\/Actions\/Items\/TransferItem/, 1, 1100);
  ngHttpRateLimiterConfigProvider.addLimiter(/www\.bungie\.net\/Platform\/Destiny2\/Actions\/Items\/EquipItem/, 1, 1100);

  // https://github.com/likeastore/ngDialog/issues/327
  ngDialogProvider.setDefaults({
    appendTo: '.app',
    disableAnimation: true,
    plain: true
  });
}

export default config;
<|endoftext|>


<commit_before>// Karma configuration
// Generated on Thu Feb 19 2015 20:30:05 GMT-0500 (EST)

module.exports = function(config) {
  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: ['browserify', 'mocha'],

    // list of files / patterns to load in the browser
    files: [
      'remoting.io.js', 'test/**/*.js'
    ],

    // 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: {
		'test/**/*.js': [ 'browserify' ]
    },

	browserify: {
		debug: true
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],

    // 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,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['PhantomJS'],

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: true
  });
};
<commit_msg>Fixed Karma config.<commit_after>// Karma configuration
// Generated on Thu Feb 19 2015 20:30:05 GMT-0500 (EST)

module.exports = function(config) {
  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: ['browserify', 'mocha'],

    // list of files / patterns to load in the browser
    files: [
      'dist/remoting.io.js', 'test/**/*.js'
    ],

    // 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: {
		'test/**/*.js': [ 'browserify' ]
    },

	browserify: {
		debug: true
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],

    // 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,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['PhantomJS'],

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: true
  });
};
<|endoftext|>


<commit_before>// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt

frappe.ui.form.on_change("Opportunity", "customer", function(frm) {
	erpnext.utils.get_party_details(frm) });
frappe.ui.form.on_change("Opportunity", "customer_address", erpnext.utils.get_address_display);
frappe.ui.form.on_change("Opportunity", "contact_person", erpnext.utils.get_contact_details);

frappe.provide("erpnext.selling");
// TODO commonify this code
erpnext.selling.Opportunity = frappe.ui.form.Controller.extend({
	onload: function() {
		if(!this.frm.doc.enquiry_from && this.frm.doc.customer)
			this.frm.doc.enquiry_from = "Customer";
		if(!this.frm.doc.enquiry_from && this.frm.doc.lead)
			this.frm.doc.enquiry_from = "Lead";

		if(!this.frm.doc.status)
			set_multiple(cdt, cdn, { status:'Draft' });
		if(!this.frm.doc.date)
			this.frm.doc.transaction_date = date.obj_to_str(new Date());
		if(!this.frm.doc.company && frappe.defaults.get_user_default("company"))
			set_multiple(cdt, cdn, { company:frappe.defaults.get_user_default("company") });
		if(!this.frm.doc.fiscal_year && sys_defaults.fiscal_year)
			set_multiple(cdt, cdn, { fiscal_year:sys_defaults.fiscal_year });

		if(!this.frm.doc.__islocal) {
			cur_frm.communication_view = new frappe.views.CommunicationList({
				list: frappe.get_list("Communication", {"opportunity": this.frm.doc.name}),
				parent: cur_frm.fields_dict.communication_html.wrapper,
				doc: this.frm.doc,
				recipients: this.frm.doc.contact_email
			});
		}

		if(this.frm.doc.customer && !this.frm.doc.customer_name) cur_frm.cscript.customer(this.frm.doc);

		this.setup_queries();
	},

	setup_queries: function() {
		var me = this;

		if(this.frm.fields_dict.contact_by.df.options.match(/^User/)) {
			this.frm.set_query("contact_by", erpnext.queries.user);
		}

		this.frm.set_query("customer_address", function() {
			if(me.frm.doc.lead) return {filters: { lead: me.frm.doc.lead } };
			else if(me.frm.doc.customer) return {filters: { customer: me.frm.doc.customer } };
		});

		this.frm.set_query("item_code", "enquiry_details", function() {
			return {
				query: "erpnext.controllers.queries.item_query",
				filters: me.frm.doc.enquiry_type === "Maintenance" ?
					{"is_service_item": "Yes"} : {"is_sales_item": "Yes"}
			};
		});

		$.each([["lead", "lead"],
			["customer", "customer"],
			["contact_person", "customer_filter"],
			["territory", "not_a_group_filter"]], function(i, opts) {
				me.frm.set_query(opts[0], erpnext.queries[opts[1]]);
			});
	},

	create_quotation: function() {
		frappe.model.open_mapped_doc({
			method: "erpnext.selling.doctype.opportunity.opportunity.make_quotation",
			frm: cur_frm
		})
	}
});

$.extend(cur_frm.cscript, new erpnext.selling.Opportunity({frm: cur_frm}));

cur_frm.cscript.refresh = function(doc, cdt, cdn) {
	erpnext.toggle_naming_series();

	if(doc.docstatus === 1 && doc.status!=="Lost") {
		cur_frm.add_custom_button(__('Create Quotation'),
			cur_frm.cscript.create_quotation, frappe.boot.doctype_icons["Quotation"],
			"btn-default");
		if(doc.status!=="Quotation")
			cur_frm.add_custom_button(__('Opportunity Lost'),
				cur_frm.cscript['Declare Opportunity Lost'], "icon-remove", "btn-default");

		cur_frm.add_custom_button(__('Send SMS'), cur_frm.cscript.send_sms,
			"icon-mobile-phone", true);
	}
}

cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
	if(doc.enquiry_from == 'Lead' && doc.lead)
		cur_frm.cscript.lead(doc, cdt, cdn);
}

cur_frm.cscript.item_code = function(doc, cdt, cdn) {
	var d = locals[cdt][cdn];
	if (d.item_code) {
		return get_server_fields('get_item_details', d.item_code,
			'enquiry_details', doc, cdt, cdn, 1);
	}
}

cur_frm.cscript.lead = function(doc, cdt, cdn) {
	cur_frm.toggle_display("contact_info", doc.customer || doc.lead);
	frappe.model.map_current_doc({
		method: "erpnext.selling.doctype.lead.lead.make_opportunity",
		source_name: cur_frm.doc.lead,
		frm: cur_frm
	});
}

cur_frm.cscript['Declare Opportunity Lost'] = function() {
	var dialog = new frappe.ui.Dialog({
		title: __("Set as Lost"),
		fields: [
			{"fieldtype": "Text", "label": __("Reason for losing"), "fieldname": "reason",
				"reqd": 1 },
			{"fieldtype": "Button", "label": __("Update"), "fieldname": "update"},
		]
	});

	dialog.fields_dict.update.$input.click(function() {
		args = dialog.get_values();
		if(!args) return;
		return cur_frm.call({
			doc: cur_frm.doc,
			method: "declare_enquiry_lost",
			args: args.reason,
			callback: function(r) {
				if(r.exc) {
					msgprint(__("There were errors."));
				} else {
					dialog.hide();
					cur_frm.refresh();
				}
			},
			btn: this
		})
	});
	dialog.show();
}

cur_frm.cscript.send_sms = function() {
	frappe.require("assets/erpnext/js/sms_manager.js");
	var sms_man = new SMSManager(cur_frm.doc);
}

<commit_msg>[fix] Opportunity communication listing<commit_after>// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt

frappe.ui.form.on_change("Opportunity", "customer", function(frm) {
	erpnext.utils.get_party_details(frm) });
frappe.ui.form.on_change("Opportunity", "customer_address", erpnext.utils.get_address_display);
frappe.ui.form.on_change("Opportunity", "contact_person", erpnext.utils.get_contact_details);

frappe.provide("erpnext.selling");
// TODO commonify this code
erpnext.selling.Opportunity = frappe.ui.form.Controller.extend({
	onload: function() {
		if(!this.frm.doc.enquiry_from && this.frm.doc.customer)
			this.frm.doc.enquiry_from = "Customer";
		if(!this.frm.doc.enquiry_from && this.frm.doc.lead)
			this.frm.doc.enquiry_from = "Lead";

		if(!this.frm.doc.status)
			set_multiple(cdt, cdn, { status:'Draft' });
		if(!this.frm.doc.date)
			this.frm.doc.transaction_date = date.obj_to_str(new Date());
		if(!this.frm.doc.company && frappe.defaults.get_user_default("company"))
			set_multiple(cdt, cdn, { company:frappe.defaults.get_user_default("company") });
		if(!this.frm.doc.fiscal_year && sys_defaults.fiscal_year)
			set_multiple(cdt, cdn, { fiscal_year:sys_defaults.fiscal_year });

		if(!this.frm.doc.__islocal) {
			cur_frm.communication_view = new frappe.views.CommunicationList({
				list: frappe.get_list("Communication", {"parent": this.frm.doc.name, "parenttype": "Opportunity"}),
				parent: cur_frm.fields_dict.communication_html.wrapper,
				doc: this.frm.doc,
				recipients: this.frm.doc.contact_email
			});
		}

		if(this.frm.doc.customer && !this.frm.doc.customer_name) cur_frm.cscript.customer(this.frm.doc);

		this.setup_queries();
	},

	setup_queries: function() {
		var me = this;

		if(this.frm.fields_dict.contact_by.df.options.match(/^User/)) {
			this.frm.set_query("contact_by", erpnext.queries.user);
		}

		this.frm.set_query("customer_address", function() {
			if(me.frm.doc.lead) return {filters: { lead: me.frm.doc.lead } };
			else if(me.frm.doc.customer) return {filters: { customer: me.frm.doc.customer } };
		});

		this.frm.set_query("item_code", "enquiry_details", function() {
			return {
				query: "erpnext.controllers.queries.item_query",
				filters: me.frm.doc.enquiry_type === "Maintenance" ?
					{"is_service_item": "Yes"} : {"is_sales_item": "Yes"}
			};
		});

		$.each([["lead", "lead"],
			["customer", "customer"],
			["contact_person", "customer_filter"],
			["territory", "not_a_group_filter"]], function(i, opts) {
				me.frm.set_query(opts[0], erpnext.queries[opts[1]]);
			});
	},

	create_quotation: function() {
		frappe.model.open_mapped_doc({
			method: "erpnext.selling.doctype.opportunity.opportunity.make_quotation",
			frm: cur_frm
		})
	}
});

$.extend(cur_frm.cscript, new erpnext.selling.Opportunity({frm: cur_frm}));

cur_frm.cscript.refresh = function(doc, cdt, cdn) {
	erpnext.toggle_naming_series();

	if(doc.docstatus === 1 && doc.status!=="Lost") {
		cur_frm.add_custom_button(__('Create Quotation'),
			cur_frm.cscript.create_quotation, frappe.boot.doctype_icons["Quotation"],
			"btn-default");
		if(doc.status!=="Quotation")
			cur_frm.add_custom_button(__('Opportunity Lost'),
				cur_frm.cscript['Declare Opportunity Lost'], "icon-remove", "btn-default");

		cur_frm.add_custom_button(__('Send SMS'), cur_frm.cscript.send_sms,
			"icon-mobile-phone", true);
	}
}

cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
	if(doc.enquiry_from == 'Lead' && doc.lead)
		cur_frm.cscript.lead(doc, cdt, cdn);
}

cur_frm.cscript.item_code = function(doc, cdt, cdn) {
	var d = locals[cdt][cdn];
	if (d.item_code) {
		return get_server_fields('get_item_details', d.item_code,
			'enquiry_details', doc, cdt, cdn, 1);
	}
}

cur_frm.cscript.lead = function(doc, cdt, cdn) {
	cur_frm.toggle_display("contact_info", doc.customer || doc.lead);
	frappe.model.map_current_doc({
		method: "erpnext.selling.doctype.lead.lead.make_opportunity",
		source_name: cur_frm.doc.lead,
		frm: cur_frm
	});
}

cur_frm.cscript['Declare Opportunity Lost'] = function() {
	var dialog = new frappe.ui.Dialog({
		title: __("Set as Lost"),
		fields: [
			{"fieldtype": "Text", "label": __("Reason for losing"), "fieldname": "reason",
				"reqd": 1 },
			{"fieldtype": "Button", "label": __("Update"), "fieldname": "update"},
		]
	});

	dialog.fields_dict.update.$input.click(function() {
		args = dialog.get_values();
		if(!args) return;
		return cur_frm.call({
			doc: cur_frm.doc,
			method: "declare_enquiry_lost",
			args: args.reason,
			callback: function(r) {
				if(r.exc) {
					msgprint(__("There were errors."));
				} else {
					dialog.hide();
					cur_frm.refresh();
				}
			},
			btn: this
		})
	});
	dialog.show();
}

cur_frm.cscript.send_sms = function() {
	frappe.require("assets/erpnext/js/sms_manager.js");
	var sms_man = new SMSManager(cur_frm.doc);
}

<|endoftext|>


<commit_before>'use strict'

// Karma configuration
// Generated on Thu Nov 12 2015 07:04:29 GMT-0600 (CST)
require && require('localenvironment')
var caniuse = require('caniuse-api')
var lb = caniuse.getLatestStableBrowsers() // Latest Browsers

console.info('Latest Browsers:')
lb.forEach(function (b) {
  var lb = b.split(' ')
  if (lb[0].indexOf('_') < 0) {
    console.info('  - ' + lb[0] + ':', lb[1])
  }
})

module.exports = function(config) {
  var customLaunchers = {}

  lb.forEach(function (item) {
    item = item.split(' ')
    var browser = item[0]
    var version = item[1]

    switch (browser) {
      case 'chrome':
        for (var i = 45; i <= version; i++) {
          customLaunchers['cl_chrome_' + i.toString()] = {
            base: 'SauceLabs',
            browserName: 'chrome',
            version: i
          }
        }
        break
      case 'firefox':
        for (var i = 41; i <= version; i++) {
          customLaunchers['cl_firefox_' + i.toString()] = {
            base: 'SauceLabs',
            browserName: 'firefox',
            version: i
          }
        }
        break
//      case 'safari':
//        for (var i = version; i >= (version - 1); i--) {
//          customLaunchers['cl_safari_' + i.toString()] = {
//            base: 'SauceLabs',
//            browserName: 'safari',
//            //platform: 'OS X 10.11',
//            version: i.toString() + '.0'
//          }
//        }
//        break
//      case 'opera':
//       for (var i = 32; i <= version; i++) {
//          customLaunchers['cl_opera_' + i.toString()] = {
//            base: 'SauceLabs',
//            browserName: 'opera',
//            version: i
//          }
//        }
//        break
//      case 'edge':
//        for (var i = 13; i <= version; i++) {
//          customLaunchers['cl_edge_' + i.toString()] = {
//            base: 'SauceLabs',
//            browserName: 'internet explorer',
//            platform: 'Windows 10',
//            version: parseInt(i, 10) // + 7 // Saucelabs has an incorrect version # for Edge
//          }
//        }
//        break
    }
  })

  customLaunchers.cl_safari_8 = {
    base: 'SauceLabs',
    browserName: 'safari',
    platform: 'OS X 10.10',
    version: '8'
  }

  customLaunchers.cl_safari_9 = {
    base: 'SauceLabs',
    browserName: 'safari',
    platform: 'OS X 10.11',
    version: '9'
  }

  customLaunchers.cl_ie_11 = {
    base: 'SauceLabs',
    browserName: 'internet explorer',
    platform: 'Windows 10',
    version: '11'
  }

  customLaunchers.cl_edge_20 = {
    base: 'SauceLabs',
    browserName: 'edge',
    platform: 'Windows 10',
    version: '20.10240'
  }

  config.set({

    sauceLabs: {
      testName: 'NGN Chassis JS Lib Unit Tests',
      build: process.env.TRAVIS_BUILD_NUMBER || 1,
      recordVideo: false,
      recordScreenshots: false,
      tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER,
      username: process.env.SAUCE_USERNAME,
      accessKey: process.env.SAUCE_ACCESS_KEY,
      startConnect: false,
      connectOptions: {
        port: 5757,
        logfile: 'sauce_connect.log'
      }
    },

    customLaunchers: customLaunchers,

    plugins: [
      require('karma-browserify'),
      require('tape'),
      require('karma-tap'),
      require('karma-spec-reporter'),
      require('karma-chrome-launcher'),
      require('karma-phantomjs-launcher'),
      require('karma-sauce-launcher')
    ],

    // 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: ['tap', 'browserify'],

    // list of files / patterns to load in the browser
    files: [
      'src/dom.js',
      'src/bus.js',
      'src/reference.js',
      'src/http.js',
      'src/svg.js',
      'test/*.js'
    ],

    // 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: {
      'test/*.js': [ 'browserify' ]
    },

    browserify: {
      debug: true
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['saucelabs', 'spec'],

    // 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_DEBUG,

    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: false,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: Object.keys(customLaunchers),
    //['Chrome', 'Firefox', 'Safari', 'Opera', 'IE'],

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: true,

    // Concurrency level
    // how many browser should be started simultanous
    concurrency: 1
  })
}
<commit_msg>Updated sauce labs config for MS Edge<commit_after>'use strict'

// Karma configuration
// Generated on Thu Nov 12 2015 07:04:29 GMT-0600 (CST)
require && require('localenvironment')
var caniuse = require('caniuse-api')
var lb = caniuse.getLatestStableBrowsers() // Latest Browsers

console.info('Latest Browsers:')
lb.forEach(function (b) {
  var lb = b.split(' ')
  if (lb[0].indexOf('_') < 0) {
    console.info('  - ' + lb[0] + ':', lb[1])
  }
})

module.exports = function(config) {
  var customLaunchers = {}

  lb.forEach(function (item) {
    item = item.split(' ')
    var browser = item[0]
    var version = item[1]

    switch (browser) {
      case 'chrome':
        for (var i = 45; i <= version; i++) {
          customLaunchers['cl_chrome_' + i.toString()] = {
            base: 'SauceLabs',
            browserName: 'chrome',
            version: i
          }
        }
        break
      case 'firefox':
        for (var i = 41; i <= version; i++) {
          customLaunchers['cl_firefox_' + i.toString()] = {
            base: 'SauceLabs',
            browserName: 'firefox',
            version: i
          }
        }
        break
//      case 'safari':
//        for (var i = version; i >= (version - 1); i--) {
//          customLaunchers['cl_safari_' + i.toString()] = {
//            base: 'SauceLabs',
//            browserName: 'safari',
//            //platform: 'OS X 10.11',
//            version: i.toString() + '.0'
//          }
//        }
//        break
//      case 'opera':
//       for (var i = 32; i <= version; i++) {
//          customLaunchers['cl_opera_' + i.toString()] = {
//            base: 'SauceLabs',
//            browserName: 'opera',
//            version: i
//          }
//        }
//        break
//      case 'edge':
//        for (var i = 13; i <= version; i++) {
//          customLaunchers['cl_edge_' + i.toString()] = {
//            base: 'SauceLabs',
//            browserName: 'internet explorer',
//            platform: 'Windows 10',
//            version: parseInt(i, 10) // + 7 // Saucelabs has an incorrect version # for Edge
//          }
//        }
//        break
    }
  })

  customLaunchers.cl_safari_8 = {
    base: 'SauceLabs',
    browserName: 'safari',
    platform: 'OS X 10.10',
    version: '8'
  }

  customLaunchers.cl_safari_9 = {
    base: 'SauceLabs',
    browserName: 'safari',
    platform: 'OS X 10.11',
    version: '9'
  }

  customLaunchers.cl_ie_11 = {
    base: 'SauceLabs',
    browserName: 'internet explorer',
    platform: 'Windows 10',
    version: '11'
  }

  customLaunchers.cl_edge_20 = {
    base: 'SauceLabs',
    browserName: 'microsoftedge',
    platform: 'Windows 10',
    version: '20.10240'
  }

  config.set({

    sauceLabs: {
      testName: 'NGN Chassis JS Lib Unit Tests',
      build: process.env.TRAVIS_BUILD_NUMBER || 1,
      recordVideo: false,
      recordScreenshots: false,
      tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER,
      username: process.env.SAUCE_USERNAME,
      accessKey: process.env.SAUCE_ACCESS_KEY,
      startConnect: false,
      connectOptions: {
        port: 5757,
        logfile: 'sauce_connect.log'
      }
    },

    customLaunchers: customLaunchers,

    plugins: [
      require('karma-browserify'),
      require('tape'),
      require('karma-tap'),
      require('karma-spec-reporter'),
      require('karma-chrome-launcher'),
      require('karma-phantomjs-launcher'),
      require('karma-sauce-launcher')
    ],

    // 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: ['tap', 'browserify'],

    // list of files / patterns to load in the browser
    files: [
      'src/dom.js',
      'src/bus.js',
      'src/reference.js',
      'src/http.js',
      'src/svg.js',
      'test/*.js'
    ],

    // 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: {
      'test/*.js': [ 'browserify' ]
    },

    browserify: {
      debug: true
    },

    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['saucelabs', 'spec'],

    // 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_WARN,

    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: false,

    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: Object.keys(customLaunchers),
    //['Chrome', 'Firefox', 'Safari', 'Opera', 'IE'],

    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: true,

    // Concurrency level
    // how many browser should be started simultanous
    concurrency: 1
  })
}
<|endoftext|>


<commit_before>'use strict';
var path = require('path');

module.exports = function (config) {
    config.set({
        basePath: './',

        files: [
            'src/**/*.spec.js'
        ],

        preprocessors: {
            'src/**/*.spec.js': ['webpack']
        },

        singleRun: true,

        frameworks: ['jasmine'],

        browsers: ['Chrome'],

        reporters: ['spec', 'coverage'],

        coverageReporter: {
            reporters: [
                { type: 'html', dir: 'coverage/', subdir: '.' },
                { type: 'text-summary' }
            ]
        },

        webpack: {
            module: {
                loaders: [
                    {
                        test:    /\.spec\.js$/,
                        loaders: ['babel'],
                        exclude: /node_modules/
                    },
                    {
                        test:    /\.js$/,
                        loaders: ['isparta'],
                        exclude: /node_modules|\.spec.js$/
                    }
                ]
            }
        },

        plugins: [
            'karma-chrome-launcher',
            'karma-spec-reporter',
            'karma-jasmine',
            'karma-coverage',
            'karma-webpack'
        ],

        colors: true
    });
};
<commit_msg>karma conf fix<commit_after>'use strict';

var path = require('path');

module.exports = function (config) {
    config.set({
        basePath: './',

        files: [
            'lib/**/*.spec.js'
        ],

        preprocessors: {
            'lib/**/*.spec.js': ['webpack']
        },

        singleRun: true,

        frameworks: ['jasmine'],

        browsers: ['Chrome'],

        reporters: ['spec', 'coverage'],

        coverageReporter: {
            reporters: [
                { type: 'html', dir: 'coverage/', subdir: '.' },
                { type: 'text-summary' }
            ]
        },

        webpack: {
            module: {
                loaders: [
                    {
                        test:    /\.spec\.js$/,
                        loaders: ['babel'],
                        exclude: /node_modules/
                    },
                    {
                        test:    /\.js$/,
                        loaders: ['isparta'],
                        exclude: /node_modules|\.spec.js$/
                    }
                ]
            }
        },

        plugins: [
            'karma-chrome-launcher',
            'karma-spec-reporter',
            'karma-jasmine',
            'karma-coverage',
            'karma-webpack'
        ],

        colors: true
    });
};
<|endoftext|>