mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-09-23 18:22:57 +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
|
// Text
|
||||||
expect(testBrew.text).toEqual('text\n');
|
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', ()=>{
|
describe('updateBrew', ()=>{
|
||||||
|
|||||||
+15
-14
@@ -95,36 +95,37 @@ const splitTextStyleAndMetadata = (brew)=>{
|
|||||||
brew.snippets = yamlSnippetsToText(_.pick(metadata, ['snippets']).snippets || '');
|
brew.snippets = yamlSnippetsToText(_.pick(metadata, ['snippets']).snippets || '');
|
||||||
|
|
||||||
// Copy Required Bleed Space or Use defaults
|
// Copy Required Bleed Space or Use defaults
|
||||||
|
|
||||||
brew.bleed = {
|
brew.bleed = {
|
||||||
top : _.pick(metadata, ['bleed']).top || '.125in',
|
top : _.pick(metadata, ['bleed']).bleed?.top || '.125in',
|
||||||
bottom : _.pick(metadata, ['bleed']).bottom || '.125in',
|
bottom : _.pick(metadata, ['bleed']).bleed?.bottom || '.125in',
|
||||||
left : _.pick(metadata, ['bleed']).left || '.125in',
|
left : _.pick(metadata, ['bleed']).bleed?.left || '.125in',
|
||||||
right : _.pick(metadata, ['bleed']).right || '.125in',
|
right : _.pick(metadata, ['bleed']).bleed?.right || '.125in',
|
||||||
};
|
};
|
||||||
|
|
||||||
// Copy Required Safe Space or Use defaults
|
// Copy Required Safe Space or Use defaults
|
||||||
brew.safetySpace = {
|
brew.safetySpace = {
|
||||||
top : _.pick(metadata, ['safetySpace']).top || '.25in',
|
top : _.pick(metadata, ['safetySpace']).safetySpace?.top || '.25in',
|
||||||
bottom : _.pick(metadata, ['safetySpace']).bottom || '.25in',
|
bottom : _.pick(metadata, ['safetySpace']).safetySpace?.bottom || '.25in',
|
||||||
outer : _.pick(metadata, ['safetySpace']).outer || '.25in',
|
outer : _.pick(metadata, ['safetySpace']).safetySpace?.outer || '.25in',
|
||||||
inner : _.pick(metadata, ['safetySpace']).inner || '.5in',
|
inner : _.pick(metadata, ['safetySpace']).safetySpace?.inner || '.5in',
|
||||||
};
|
};
|
||||||
|
|
||||||
// Set brew paper trim size or default to US Letter
|
// Set brew paper trim size or default to US Letter
|
||||||
brew.trimSize = {
|
brew.trimSize = {
|
||||||
width : _.pick(metadata, ['trimSize']).width || '8.5in',
|
width : _.pick(metadata, ['trimSize']).trimSize?.width || '8.5in',
|
||||||
height : _.pick(metadata, ['trimSize']).height || '11in',
|
height : _.pick(metadata, ['trimSize']).trimSize?.height || '11in',
|
||||||
};
|
};
|
||||||
|
|
||||||
// Set Column specs or use defaults
|
// Set Column specs or use defaults
|
||||||
brew.columns = _.pick(metadata, ['columns']) || '2';
|
brew.columns = metadata?.columns || 2;
|
||||||
brew.columnGutter = _.pick(metadata, ['columnGutter']) || '.125in';
|
brew.columnGutter = metadata?.columnGutter || '.125in';
|
||||||
|
|
||||||
// Set License or set to Unlicensed
|
// Set License or set to Unlicensed
|
||||||
brew.license = _.pick(metadata, ['license']) || 'None';
|
brew.license = metadata?.license || 'None';
|
||||||
|
|
||||||
// Set Authors legal names or to empty.
|
// Set Authors legal names or to empty.
|
||||||
brew.legalAuthors = _.pick(metadata, ['legalAuthors']) || '';
|
brew.legalAuthors = metadata.legalAuthors || '';
|
||||||
|
|
||||||
brew.text = brew.text.slice(index + 6);
|
brew.text = brew.text.slice(index + 6);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user