diff --git a/services/web/karma.conf.js b/services/web/karma.conf.js index b9c8bd8533..7136a19b54 100644 --- a/services/web/karma.conf.js +++ b/services/web/karma.conf.js @@ -14,6 +14,7 @@ module.exports = function (config) { browsers: ['ChromeCustom'], files: [ 'test/unit_frontend/js/bootstrap.js', + 'test/unit_frontend/es/es-bootstrap.js', // Angular must be loaded before requirejs to set up angular global 'public/js/libs/angular-1.6.4.min.js', 'public/js/libs/angular-mocks.js', diff --git a/services/web/test/unit_frontend/es/es-bootstrap.js b/services/web/test/unit_frontend/es/es-bootstrap.js new file mode 100644 index 0000000000..3fc951e3b9 --- /dev/null +++ b/services/web/test/unit_frontend/es/es-bootstrap.js @@ -0,0 +1,19 @@ +/* global chai */ + +/** + * Add chai assertion for comparing CodeMirror Pos objects. + * A deep comparison will fail because CodeMirror inserts additional properties + * that we want to ignore. + */ +chai.Assertion.addMethod('equalPos', function (expectedPos) { + const { line: actualLine, ch: actualCh } = this._obj + const { line: expectedLine, ch: expectedCh } = expectedPos + + this.assert( + actualLine === expectedLine && actualCh === expectedCh, + `expected #{exp} to equal #{act}`, + `expected #{exp} to not equal #{act}`, + `Pos({ line: ${expectedLine}, ch: ${expectedCh} })`, + `Pos({ line: ${actualLine}, ch: ${actualCh} })` + ) +})