describe('spaceBetweenParagraphs', function() {
var space = rule('There should only be one blank line between paragraphs');
afterEach(teardownFixtures);
it('warns of a blank line after a paragraph with text content', function() {
var $p = fixture('
Galois lived during a time of political turmoil.
');
var $empty = fixture('
');
var results = run(space);
expect(results.errors.length).toBe(1);
expect(results.errors[0].element).toEqual($p.get(0));
});
it('points to paragraph preceding a blank line; but not to other element types', function() {
var $div = fixture('Galois lived during a time of political turmoil.
');
var $empty = fixture('
');
var results = run(space);
expect(results.errors.length).toBe(1);
expect(results.errors[0].element).not.toEqual($div.get(0));
expect(results.errors[0].element).toEqual($empty.get(0));
});
it('points to the closest paragraph with text preceding the blank line', function() {
var $p1 = fixture('Galois lived during a time of political turmoil.
');
var $p2 = fixture('Galois was incensed and wrote a blistering letter.
');
var $empty = fixture('
');
var results = run(space);
expect(results.errors[0].element).toEqual($p2.get(0));
});
it('emits at most one error per paragraph with text', function() {
var $p = fixture('He passed, receiving his degree.
');
var $empty1 = fixture('
');
var $empty2= fixture('
');
var $empty3= fixture('
');
var results = run(space);
expect(results.errors.length).toEqual(1);
expect(results.errors[0].element).toEqual($p.get(0));
});
it('does not point to a paragraph separated by non-paragraph tags', function() {
var $p = fixture('Charles X had succeeded Louis XVIII.
');
var $e1 = fixture('');
var $empty = fixture('
');
var results = run(space);
expect(results.errors.length).toEqual(1);
expect(results.errors[0].element).toEqual($empty.get(0));
});
});