63 lines
1.5 KiB
JavaScript
63 lines
1.5 KiB
JavaScript
/*eslint-env node, mocha */
|
|
/*global expect */
|
|
/*eslint no-console: 0*/
|
|
'use strict';
|
|
|
|
import chai from 'chai'
|
|
|
|
import {plaintextDiff, diffToString} from '../src/common/util/dubdiff'
|
|
|
|
let diff = (a,b) => diffToString(plaintextDiff(a,b))
|
|
|
|
const expect = chai.expect
|
|
|
|
describe('dubdiff', () => {
|
|
|
|
beforeEach(() => {
|
|
});
|
|
|
|
it('diffs single words', ()=>{
|
|
expect(diff(
|
|
'This is a smlb sentence.',
|
|
'This is a simple sentence.'
|
|
)).to.equal('This is a [-smlb-] {+simple+} sentence.')
|
|
})
|
|
|
|
it('diffs consecutive words', ()=>{
|
|
expect(diff(
|
|
'This is a smlb sentnce with no errors.',
|
|
'This is a simple sentence with no errors.'
|
|
)).to.equal('This is a [-smlb sentnce-] {+simple sentence+} with no errors.')
|
|
})
|
|
|
|
it('diffs with word deletion', ()=>{
|
|
expect(diff(
|
|
'Gonna delete a word.',
|
|
'Gonna delete word.'
|
|
)).to.equal('Gonna delete [-a-] word.')
|
|
})
|
|
it('diffs with word insertion', ()=>{
|
|
expect(diff(
|
|
'Gonna delete word.',
|
|
'Gonna delete a word.'
|
|
)).to.equal('Gonna delete {+a+} word.')
|
|
})
|
|
it('diffs accross newline without weird spaces', () => {
|
|
expect(diff(
|
|
'This is a flawed\ncomment',
|
|
'This is a corrected\nitem'
|
|
)).to.equal('This is a [-flawed-] {+corrected+}\n[-comment-] {+item+}')
|
|
})
|
|
it('doesn\'t add spaces after newline', () => {
|
|
expect(diff(
|
|
'\nhere',
|
|
'\nhere'
|
|
)).to.equal('\nhere')
|
|
})
|
|
it('doesn\'t add spaces before newline', () => {
|
|
expect(diff(
|
|
'there\n',
|
|
'there\n'
|
|
)).to.equal('there\n')
|
|
})
|
|
}) |