var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); const plugin = require('./h1-checker'); describe('h1Checker postprocessor', () => { let processor, createDocMessage; beforeEach(() => { const dgeni = new Dgeni([testPackage('angular-base-package')]); const injector = dgeni.configureInjector(); createDocMessage = injector.get('createDocMessage'); processor = injector.get('postProcessHtml'); processor.docTypes = ['a']; processor.plugins = [plugin]; }); it('should complain if there is more than two h1 in a document', () => { const doc = { docType: 'a', renderedContent: `

Heading 1

标题1

Heading 2

Heading 1a

` }; expect(() => processor.$process([doc])).toThrowError(createDocMessage('More than one h1 found in ' + doc.renderedContent, doc)); }); it('should not complain if there is exactly one h1 in a document', () => { const doc = { docType: 'a', renderedContent: `

Heading 1

Heading 2

` }; expect(() => processor.$process([doc])).not.toThrow(); }); it('should not complain if there are no h1s in a document', () => { const doc = { docType: 'a', renderedContent: `

Heading 2

` }; expect(() => processor.$process([doc])).not.toThrow(); }); it('should attach the h1 text to the vFile', () => { const doc = { docType: 'a', renderedContent: '

Heading 1

' }; processor.$process([doc]); expect(doc.vFile.title).toEqual('Heading 1'); }); it('should clean aria-hidden anchors from h1 text added to the vFile', () => { const doc = { docType: 'a', renderedContent: '

' + 'What is Angular?' + '

' }; processor.$process([doc]); expect(doc.vFile.title).toEqual('What is Angular?'); }); it('should not break if the h1 is empty (except for an aria-hidden anchor)', () => { const doc = { docType: 'a', renderedContent: `

` }; expect(() => processor.$process([doc])).not.toThrow(); }); });