Merge pull request #703 from sharelatex/as-cm-pos-assertion

Add assertion method for CodeMirror Pos objects
This commit is contained in:
Alasdair Smith 2018-07-02 11:35:26 +01:00 committed by GitHub
commit ec1dbc47bf
2 changed files with 20 additions and 0 deletions

View file

@ -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',

View file

@ -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} })`
)
})