2017-03-25 21:07:34 +00:00
var testPackage = require ( '../../helpers/test-package' );
var Dgeni = require ( 'dgeni' );
describe ( 'renderExamples processor' , () => {
2017-04-01 21:34:10 +03:00
var injector , processor , exampleMap , collectExamples ;
2017-03-25 21:07:34 +00:00
beforeEach ( function () {
const dgeni = new Dgeni ([ testPackage ( 'examples-package' , true )]);
injector = dgeni . configureInjector ();
exampleMap = injector . get ( 'exampleMap' );
processor = injector . get ( 'renderExamples' );
collectExamples = injector . get ( 'collectExamples' );
exampleMap = injector . get ( 'exampleMap' );
collectExamples . exampleFolders = [ 'examples' ];
exampleMap [ 'examples' ] = {
'test/url' : { regions : {
'' : { renderedContent : 'whole file' },
'region-1' : { renderedContent : 'region 1 contents' }
} }
};
});
it ( 'should run before the correct processor' , () => {
2017-04-01 21:34:10 +03:00
expect ( processor . $runBefore ). toEqual ([ 'writing-files' ]);
2017-03-25 21:07:34 +00:00
});
it ( 'should run after the correct processor' , () => {
expect ( processor . $runAfter ). toEqual ([ 'docs-rendered' ]);
});
[ 'code-example' , 'code-pane' ]. forEach ( CODE_TAG =>
describe ( CODE_TAG , () => {
it ( `should ignore a < ${ CODE_TAG } > tags with no path attribute` , () => {
const docs = [
{ renderedContent : `Some text\n< ${ CODE_TAG } >Some code</ ${ CODE_TAG } >\n< ${ CODE_TAG } class="anti-pattern" title="Bad Code">do not do this</ ${ CODE_TAG } >` }
];
processor . $process ( docs );
expect ( docs [ 0 ]. renderedContent ). toEqual ( `Some text\n< ${ CODE_TAG } >Some code</ ${ CODE_TAG } >\n< ${ CODE_TAG } class="anti-pattern" title="Bad Code">do not do this</ ${ CODE_TAG } >` );
});
it ( `should replace the content of the < ${ CODE_TAG } > tag with the whole contents from an example file if a path is provided` , () => {
const docs = [
{ renderedContent : `< ${ CODE_TAG } path="test/url">Some code</ ${ CODE_TAG } >` }
];
processor . $process ( docs );
expect ( docs [ 0 ]. renderedContent ). toEqual ( `< ${ CODE_TAG } >\nwhole file\n</ ${ CODE_TAG } >` );
});
2017-03-27 16:37:44 +01:00
it ( `should replace all instances of < ${ CODE_TAG } > tags` , () => {
const docs = [
{ renderedContent : `< ${ CODE_TAG } path="test/url">Some code</ ${ CODE_TAG } >< ${ CODE_TAG } path="test/url" region="region-1">Other code</ ${ CODE_TAG } >` }
];
processor . $process ( docs );
expect ( docs [ 0 ]. renderedContent ). toEqual ( `< ${ CODE_TAG } >\nwhole file\n</ ${ CODE_TAG } >< ${ CODE_TAG } >\nregion 1 contents\n</ ${ CODE_TAG } >` );
});
2017-03-25 21:07:34 +00:00
it ( 'should contain the region contents from the example file if a region is specified' , () => {
const docs = [
{ renderedContent : `< ${ CODE_TAG } path="test/url" region="region-1">Some code</ ${ CODE_TAG } >` }
];
processor . $process ( docs );
expect ( docs [ 0 ]. renderedContent ). toEqual ( `< ${ CODE_TAG } >\nregion 1 contents\n</ ${ CODE_TAG } >` );
});
it ( `should replace the content of the < ${ CODE_TAG } > tag with the whole contents from an example file if the region is empty` , () => {
const docs = [
{ renderedContent : `< ${ CODE_TAG } path="test/url" region="">Some code</ ${ CODE_TAG } >` }
];
processor . $process ( docs );
expect ( docs [ 0 ]. renderedContent ). toEqual ( `< ${ CODE_TAG } >\nwhole file\n</ ${ CODE_TAG } >` );
});
it ( 'should remove the path and region attributes but leave the other attributes alone' , () => {
const docs = [
{ renderedContent : `< ${ CODE_TAG } class="special" path="test/url" linenums="15" region="region-1" id="some-id">Some code</ ${ CODE_TAG } >` }
];
processor . $process ( docs );
expect ( docs [ 0 ]. renderedContent ). toEqual ( `< ${ CODE_TAG } class="special" linenums="15" id="some-id">\nregion 1 contents\n</ ${ CODE_TAG } >` );
});
it ( 'should cope with spaces and double quotes inside attribute values' , () => {
const docs = [
{ renderedContent : `< ${ CODE_TAG } title='a "quoted" value' path="test/url"></ ${ CODE_TAG } >` }
];
processor . $process ( docs );
expect ( docs [ 0 ]. renderedContent ). toEqual ( `< ${ CODE_TAG } title="a "quoted" value">\nwhole file\n</ ${ CODE_TAG } >` );
});
})
);
2017-04-01 21:34:10 +03:00
});