2017-04-16 17:13:09 -04:00
|
|
|
var testPackage = require('../../helpers/test-package');
|
|
|
|
var Dgeni = require('dgeni');
|
|
|
|
|
|
|
|
describe('convertToJson processor', () => {
|
|
|
|
var dgeni, injector, processor, log;
|
|
|
|
|
2017-04-19 04:56:39 -04:00
|
|
|
beforeAll(function() {
|
2017-04-21 08:10:52 -04:00
|
|
|
dgeni = new Dgeni([testPackage('angular-base-package')]);
|
2017-04-16 17:13:09 -04:00
|
|
|
injector = dgeni.configureInjector();
|
|
|
|
processor = injector.get('convertToJsonProcessor');
|
|
|
|
log = injector.get('log');
|
|
|
|
processor.docTypes = ['test-doc'];
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should be part of the dgeni package', () => {
|
|
|
|
expect(processor).toBeDefined();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should convert the renderedContent to JSON', () => {
|
|
|
|
const docs = [{
|
|
|
|
docType: 'test-doc',
|
|
|
|
title: 'The Title',
|
|
|
|
name: 'The Name',
|
2017-04-20 07:55:34 -04:00
|
|
|
path: 'test/doc',
|
2017-04-16 17:13:09 -04:00
|
|
|
renderedContent: 'Some Content'
|
|
|
|
}];
|
|
|
|
processor.$process(docs);
|
2017-04-20 07:55:34 -04:00
|
|
|
expect(JSON.parse(docs[0].renderedContent).id).toEqual('test/doc');
|
2017-04-16 17:13:09 -04:00
|
|
|
expect(JSON.parse(docs[0].renderedContent).title).toEqual('The Title');
|
|
|
|
expect(JSON.parse(docs[0].renderedContent).contents).toEqual('Some Content');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should get the title from name if no title is specified', () => {
|
|
|
|
const docs = [{ docType: 'test-doc', name: 'The Name' }];
|
|
|
|
processor.$process(docs);
|
|
|
|
expect(JSON.parse(docs[0].renderedContent).title).toEqual('The Name');
|
|
|
|
});
|
|
|
|
|
2017-04-19 04:56:39 -04:00
|
|
|
it('should accept an empty title', () => {
|
|
|
|
const docs = [{ docType: 'test-doc', title: '' }];
|
|
|
|
processor.$process(docs);
|
|
|
|
expect(JSON.parse(docs[0].renderedContent).title).toEqual('');
|
|
|
|
expect(log.warn).not.toHaveBeenCalled();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should accept an empty name if title is not provided', () => {
|
|
|
|
const docs = [{ docType: 'test-doc', name: '' }];
|
|
|
|
processor.$process(docs);
|
|
|
|
expect(JSON.parse(docs[0].renderedContent).title).toEqual('');
|
|
|
|
expect(log.warn).not.toHaveBeenCalled();
|
|
|
|
});
|
|
|
|
|
2017-05-30 15:24:44 -04:00
|
|
|
it('should get the title from the title extracted from the h1 in the rendered content if no title property is specified', () => {
|
|
|
|
const docs = [{
|
|
|
|
docType: 'test-doc',
|
|
|
|
vFile: { title: 'Some title' },
|
|
|
|
renderedContent: '<div><h1 class="title">Some title</h1><article><h1>Article 1</h1></article></div>'
|
|
|
|
}];
|
2017-04-16 17:13:09 -04:00
|
|
|
processor.$process(docs);
|
|
|
|
expect(JSON.parse(docs[0].renderedContent).contents).toEqual('<div><h1 class="title">Some title</h1><article><h1>Article 1</h1></article></div>');
|
|
|
|
expect(JSON.parse(docs[0].renderedContent).title).toEqual('Some title');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should set missing titles to empty', () => {
|
|
|
|
const docs = [{ docType: 'test-doc' }];
|
|
|
|
processor.$process(docs);
|
|
|
|
expect(JSON.parse(docs[0].renderedContent).title).toBe('');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should log a warning', () => {
|
|
|
|
const docs = [{ docType: 'test-doc' }];
|
|
|
|
processor.$process(docs);
|
|
|
|
expect(log.warn).toHaveBeenCalled();
|
|
|
|
});
|
|
|
|
});
|