1
0
mirror of synced 2025-11-06 04:30:40 +08:00
Files
Mergely/karma.conf.js
Jamie Peabody 37fedd05c8 v5.0 (#174)
* feat: v5

BREAKING CHANGE: Mergely is no longer a jQuery plugin.

BREAKING CHANGE: Removed `options.autoresize`

BREAKING CHANGE: Removed `options.editor_width`

BREAKING CHANGE: Removed `options.editor_height`

BREAKING CHANGE: Removed `options.fadein`

BREAKING CHANGE: Removed `options.fgcolor`

BREAKING CHANGE: Removed `options.resize`

BREAKING CHANGE: Removed `options.width`

BREAKING CHANGE: Removed `options.height`

BREAKING CHANGE: Removed `options.loaded` callback

BREAKING CHANGE: Removed `options.resized` callback

BREAKING CHANGE: Removed styles `.mergely-resizer`, `.mergely-full-screen-0`, and `.mergely-full-screen-8`

BREAKING CHANGE: Changed default for `options.change_timeout` changed from `150` to `50`.

BREAKING CHANGE: No longer automatically scrolls to first change.

feat: CodeMirror is now an explicit dependency.

feat: No longer necessary to separately require codemirror/addon/search/searchcursor

feat: No longer necessary to separately require codemirror/addon/selection/mark-selection

feat: `mergely.js` is now unminimized, and added new minimized version `mergely.min.js`

feat: Gutter click now scrolls to any line

feat: Mergely now emits `resize` event on resize

feat: The UI is now non-blocking as diff now runs in background

feat: Added support to provide `options.lhs` and `options.rhs` as strings

feat: #16 added titles to editor.mergely.com

fix: #165 block of changes at end of file are now distinguishable

fix: #140 fixed performance issue with large files

fix: Fixed issue where canvas markup was not rendered when `viewport` enabled

fix: Fixed timing issue where swap sides may not work as expected.

fix: Fixed issue where unmarkup did not emit an updated event.

fix: Fixed documentation issue where `merge` incorrectly stated: from the specified `side` to the opposite side.

fix: Fixed performance issue scrolling

fix: Fixed issue where initial render scrolled to first change, showing it at the bottom (as opposed to middle as expected)

fix: Fixed issue where line-diffs failed to diff non-alphanumeric characters

* chore: tweaked no-start/end styles

* feat: dark mode

* chore: updated examples

* chore(ci): updated webpack

* chore(ci): alpha, beta, next branches

* chore(ci): test

* chore(ci): package-lock.json

* chore(ci): ignore alpha, beta, next on branch

* fix: fixes firefox scroll-linked effect issue

* fix: fixes firefox scroll-linked effect issue

* chore: fix css

* chore: debug
2023-04-23 16:29:59 +01:00

108 lines
2.3 KiB
JavaScript

const os = require('os');
const path = require('path');
const webpack = require('webpack');
const webpackConfig = require('./webpack.dev.js');
const ENTROPY_SIZE = 1000000;
const outputPath = `${path.join(os.tmpdir(), "_karma_webpack_")}${Math.floor(Math.random() * ENTROPY_SIZE)}`;
module.exports = function(config) {
config.set({
restartOnFileChange: true,
browsers: [ 'MyHeadlessChrome' ],
customLaunchers: {
MyHeadlessChrome: {
base: 'ChromeHeadless',
flags: [ '--no-sandbox' ]
}
},
frameworks: [
'webpack',
'mocha',
'chai'
],
plugins: [
'karma-webpack',
'karma-mocha',
'karma-chai',
'karma-chrome-launcher',
'karma-sourcemap-loader',
'karma-mocha-reporter',
'karma-coverage-istanbul-reporter',
// 'karma-coverage-istanbul-instrumenter'
],
files: [
'node_modules/codemirror/lib/codemirror.css',
'src/mergely.css',
'src/*.js',
'test/**/*.spec.js'
],
preprocessors: {
'node_modules/codemirror/lib/codemirror.js': [ 'webpack' ],
'test/*.spec.js': [ 'webpack' ],
// 'src/*.js': [ 'webpack', 'sourcemap', 'karma-coverage-istanbul-instrumenter' ]
'src/*.js': [ 'webpack', 'sourcemap' ]
},
reporters: [ 'mocha', 'coverage-istanbul' ],
coverageIstanbulReporter: {
reports: [ 'html', 'lcov', 'text-summary' ],
dir: path.join(__dirname, 'coverage'),
fixWebpackSourcePaths: false,
esModules: false,
// enforce percentage thresholds
// anything under these percentages will cause karma to fail
// with an exit code of 1 if not running in watch mode
thresholds: {
// set to `true` to not fail the test command when thresholds are not met
emitWarning: true,
global: { // thresholds for all files
statements: 94.09,
branches: 89.92,
functions: 92.67,
lines: 94.33
}
}
},
colors: true,
logLevel: config.LOG_DEBUG,
singleRun: true,
webpack: tweakWebpack(webpackConfig),
});
}
function tweakWebpack(webpackConfig) {
const config = {
...webpackConfig,
output: {
// https://github.com/scottohara/tvmanager/issues/99
path: outputPath
},
externals: {
CodeMirror: 'CodeMirror'
}
};
if (!config.plugins) {
config.plugins = [];
}
config.plugins.push(
new webpack.ProvidePlugin({
CodeMirror: 'codemirror'
})
);
config.devtool = 'inline-source-map';
return config;
}