/*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 add word.', 'Gonna add a word.' )).to.equal('Gonna add {+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') }) it('treats punctuation separately', () => { expect(diff( 'Hello world.', 'Hello, world.' )).to.equal('Hello{+, +}world.') }) })