mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-09-20 16:42:58 +00:00
Add test for custom page settings vs defaults and extended metadata
Tweak SplitMetadataAndText based on faulty assumptions for setting defaults.
This commit is contained in:
@@ -1127,6 +1127,79 @@ brew`);
|
||||
// Text
|
||||
expect(testBrew.text).toEqual('text\n');
|
||||
});
|
||||
|
||||
it('extended metadata', async ()=>{
|
||||
const testBrew = {
|
||||
text : '```metadata\n' +
|
||||
'title: title\n' +
|
||||
'description: description\n' +
|
||||
'tags: [ \'tag a\' , \'tag b\' ]\n' +
|
||||
'renderer: legacy\n' +
|
||||
'theme: 5ePHB\n' +
|
||||
'lang: en\n' +
|
||||
'bleed:\n' +
|
||||
' top: 1.5in\n' +
|
||||
' bottom: 1.5in\n' +
|
||||
' left: 1.5in\n' +
|
||||
' right: 1.5in\n' +
|
||||
'safetySpace:\n' +
|
||||
' top: 1.25in\n' +
|
||||
' bottom: 1.25in\n' +
|
||||
' outer: 1.25in\n' +
|
||||
' inner: 1.5in\n' +
|
||||
'trimSize:\n' +
|
||||
' width: 18.5in\n' +
|
||||
' height: 111in\n' +
|
||||
'columns: 12\n' +
|
||||
'columnGutter: 1.125in\n' +
|
||||
'license: AELF\n' +
|
||||
'legalAuthors: Tom Bombadil\n' +
|
||||
'\n' +
|
||||
'```\n' +
|
||||
'\n' +
|
||||
'```css\n' +
|
||||
'style\n' +
|
||||
'style\n' +
|
||||
'style\n' +
|
||||
'```\n' +
|
||||
'\n' +
|
||||
'text\n'
|
||||
};
|
||||
|
||||
splitTextStyleAndMetadata(testBrew);
|
||||
|
||||
// Metadata
|
||||
expect(testBrew.title).toEqual('title');
|
||||
expect(testBrew.description).toEqual('description');
|
||||
expect(testBrew.renderer).toEqual('legacy');
|
||||
expect(testBrew.theme).toEqual('5ePHB');
|
||||
expect(testBrew.lang).toEqual('en');
|
||||
// Paper Specfications
|
||||
expect(testBrew.bleed.top).toEqual('1.5in');
|
||||
expect(testBrew.bleed.bottom).toEqual('1.5in');
|
||||
expect(testBrew.bleed.left).toEqual('1.5in');
|
||||
expect(testBrew.bleed.right).toEqual('1.5in');
|
||||
|
||||
expect(testBrew.safetySpace.top).toEqual('1.25in');
|
||||
expect(testBrew.safetySpace.bottom).toEqual('1.25in');
|
||||
expect(testBrew.safetySpace.inner).toEqual('1.5in');
|
||||
expect(testBrew.safetySpace.outer).toEqual('1.25in');
|
||||
|
||||
expect(testBrew.trimSize.width).toEqual('18.5in');
|
||||
expect(testBrew.trimSize.height).toEqual('111in');
|
||||
|
||||
expect(testBrew.columns).toEqual(12);
|
||||
expect(testBrew.columnGutter).toEqual('1.125in');
|
||||
|
||||
// Extended Metadata
|
||||
expect(testBrew.license).toEqual('AELF');
|
||||
expect(testBrew.legalAuthors).toEqual('Tom Bombadil');
|
||||
|
||||
// Style
|
||||
expect(testBrew.style).toEqual('style\nstyle\nstyle\n');
|
||||
// Text
|
||||
expect(testBrew.text).toEqual('text\n');
|
||||
});
|
||||
});
|
||||
|
||||
describe('updateBrew', ()=>{
|
||||
|
||||
+15
-14
@@ -95,36 +95,37 @@ const splitTextStyleAndMetadata = (brew)=>{
|
||||
brew.snippets = yamlSnippetsToText(_.pick(metadata, ['snippets']).snippets || '');
|
||||
|
||||
// Copy Required Bleed Space or Use defaults
|
||||
|
||||
brew.bleed = {
|
||||
top : _.pick(metadata, ['bleed']).top || '.125in',
|
||||
bottom : _.pick(metadata, ['bleed']).bottom || '.125in',
|
||||
left : _.pick(metadata, ['bleed']).left || '.125in',
|
||||
right : _.pick(metadata, ['bleed']).right || '.125in',
|
||||
top : _.pick(metadata, ['bleed']).bleed?.top || '.125in',
|
||||
bottom : _.pick(metadata, ['bleed']).bleed?.bottom || '.125in',
|
||||
left : _.pick(metadata, ['bleed']).bleed?.left || '.125in',
|
||||
right : _.pick(metadata, ['bleed']).bleed?.right || '.125in',
|
||||
};
|
||||
|
||||
// Copy Required Safe Space or Use defaults
|
||||
brew.safetySpace = {
|
||||
top : _.pick(metadata, ['safetySpace']).top || '.25in',
|
||||
bottom : _.pick(metadata, ['safetySpace']).bottom || '.25in',
|
||||
outer : _.pick(metadata, ['safetySpace']).outer || '.25in',
|
||||
inner : _.pick(metadata, ['safetySpace']).inner || '.5in',
|
||||
top : _.pick(metadata, ['safetySpace']).safetySpace?.top || '.25in',
|
||||
bottom : _.pick(metadata, ['safetySpace']).safetySpace?.bottom || '.25in',
|
||||
outer : _.pick(metadata, ['safetySpace']).safetySpace?.outer || '.25in',
|
||||
inner : _.pick(metadata, ['safetySpace']).safetySpace?.inner || '.5in',
|
||||
};
|
||||
|
||||
// Set brew paper trim size or default to US Letter
|
||||
brew.trimSize = {
|
||||
width : _.pick(metadata, ['trimSize']).width || '8.5in',
|
||||
height : _.pick(metadata, ['trimSize']).height || '11in',
|
||||
width : _.pick(metadata, ['trimSize']).trimSize?.width || '8.5in',
|
||||
height : _.pick(metadata, ['trimSize']).trimSize?.height || '11in',
|
||||
};
|
||||
|
||||
// Set Column specs or use defaults
|
||||
brew.columns = _.pick(metadata, ['columns']) || '2';
|
||||
brew.columnGutter = _.pick(metadata, ['columnGutter']) || '.125in';
|
||||
brew.columns = metadata?.columns || 2;
|
||||
brew.columnGutter = metadata?.columnGutter || '.125in';
|
||||
|
||||
// Set License or set to Unlicensed
|
||||
brew.license = _.pick(metadata, ['license']) || 'None';
|
||||
brew.license = metadata?.license || 'None';
|
||||
|
||||
// Set Authors legal names or to empty.
|
||||
brew.legalAuthors = _.pick(metadata, ['legalAuthors']) || '';
|
||||
brew.legalAuthors = metadata.legalAuthors || '';
|
||||
|
||||
brew.text = brew.text.slice(index + 6);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user