Skip to content

Commit c46e6d6

Browse files
committed
added tests for chars
1 parent 194c74c commit c46e6d6

File tree

1 file changed

+158
-0
lines changed

1 file changed

+158
-0
lines changed

test/test.spec.js

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,3 +350,161 @@ describe('#diff', function() {
350350

351351
});
352352
});
353+
354+
describe('#diff', function() {
355+
describe('compare chars', function() {
356+
it('compare change chars start-string', function() {
357+
var changes = diff(
358+
'the quick red fox jumped',
359+
'The quick red fox jumped',
360+
{compare: 'chars'}
361+
), change;
362+
363+
expect(changes.length).to.equal(1);
364+
365+
change = changes[0];
366+
367+
expect(change.lhs.at).to.equal(0);
368+
expect(change.lhs.del).to.be.equal(1);
369+
370+
expect(change.rhs.at).to.equal(0);
371+
expect(change.rhs.add).to.be.equal(1);
372+
});
373+
374+
it('compare change chars end-string', function() {
375+
var changes = diff(
376+
'the quick red fox jumped',
377+
'the quick red fox Jumped',
378+
{compare: 'chars'}
379+
), change;
380+
381+
expect(changes.length).to.equal(1);
382+
383+
change = changes[0];
384+
385+
expect(change.lhs.at).to.equal(18);
386+
expect(change.lhs.del).to.be.equal(1);
387+
388+
expect(change.rhs.at).to.equal(18);
389+
expect(change.rhs.add).to.be.equal(1);
390+
});
391+
392+
it('compare change chars mid-string', function() {
393+
var changes = diff(
394+
'the quick red fox jumped',
395+
'the quick RED fox jumped',
396+
{compare: 'chars'}
397+
), change;
398+
399+
expect(changes.length).to.equal(1);
400+
401+
change = changes[0];
402+
403+
expect(change.lhs.at).to.equal(10);
404+
expect(change.lhs.del).to.be.equal(3);
405+
406+
expect(change.rhs.at).to.equal(10);
407+
expect(change.rhs.add).to.be.equal(3);
408+
});
409+
410+
it('compare add chars start-string', function() {
411+
var changes = diff(
412+
'the quick red fox jumped',
413+
'*the quick red fox jumped',
414+
{compare: 'chars'}
415+
), change;
416+
417+
expect(changes.length).to.equal(1);
418+
419+
change = changes[0];
420+
421+
expect(change.lhs.at).to.equal(0);
422+
expect(change.lhs.del).to.be.equal(0);
423+
424+
expect(change.rhs.at).to.equal(0);
425+
expect(change.rhs.add).to.be.equal(1);
426+
});
427+
428+
it('compare add chars end-string', function() {
429+
var changes = diff(
430+
'the quick red fox jumped',
431+
'the quick red fox jumped*',
432+
{compare: 'chars'}
433+
), change;
434+
435+
expect(changes.length).to.equal(1);
436+
437+
change = changes[0];
438+
439+
expect(change.lhs.at).to.equal(23);
440+
expect(change.lhs.del).to.be.equal(0);
441+
442+
expect(change.rhs.at).to.equal(24);
443+
expect(change.rhs.add).to.be.equal(1);
444+
});
445+
446+
it('compare del chars start-string', function() {
447+
var changes = diff(
448+
'*the quick red fox jumped',
449+
'the quick red fox jumped',
450+
{compare: 'chars'}
451+
), change;
452+
453+
expect(changes.length).to.equal(1);
454+
455+
change = changes[0];
456+
457+
expect(change.lhs.at).to.equal(0);
458+
expect(change.lhs.del).to.be.equal(1);
459+
460+
expect(change.rhs.at).to.equal(0);
461+
expect(change.rhs.add).to.be.equal(0);
462+
});
463+
464+
it('compare del chars end-string', function() {
465+
var changes = diff(
466+
'the quick red fox jumped*',
467+
'the quick red fox jumped',
468+
{compare: 'chars'}
469+
), change;
470+
471+
expect(changes.length).to.equal(1);
472+
473+
change = changes[0];
474+
475+
expect(change.lhs.at).to.equal(24);
476+
expect(change.lhs.del).to.be.equal(1);
477+
478+
expect(change.rhs.at).to.equal(23);
479+
expect(change.rhs.add).to.be.equal(0);
480+
});
481+
482+
it('compare chars', function() {
483+
var changes = diff(
484+
'the quick red fox jumped',
485+
'the quick orange fox jumped',
486+
{compare: 'chars'}
487+
), change;
488+
489+
expect(changes.length).to.equal(3);
490+
491+
// adds an 'o' to the rhs
492+
expect(changes[0].lhs.at).to.equal(10);
493+
expect(changes[0].lhs.del).to.be.equal(0);
494+
expect(changes[0].rhs.at).to.equal(10);
495+
expect(changes[0].rhs.add).to.be.equal(1);
496+
497+
// adds an 'ang' to the rhs
498+
expect(changes[1].lhs.at).to.equal(11);
499+
expect(changes[1].lhs.del).to.be.equal(0);
500+
expect(changes[1].rhs.at).to.equal(12);
501+
expect(changes[1].rhs.add).to.be.equal(3);
502+
503+
// deletes a 'd' from the lhs
504+
expect(changes[2].lhs.at).to.equal(12);
505+
expect(changes[2].lhs.del).to.be.equal(1);
506+
expect(changes[2].rhs.at).to.equal(16);
507+
expect(changes[2].rhs.add).to.be.equal(0);
508+
});
509+
});
510+
});

0 commit comments

Comments
 (0)