debian-mirror-gitlab/spec/frontend/static_site_editor/services/front_matterify_spec.js
2021-01-29 00:20:46 +05:30

56 lines
1.6 KiB
JavaScript

import {
sourceContentYAML as content,
sourceContentHeaderObjYAML as yamlFrontMatterObj,
sourceContentSpacing as spacing,
sourceContentBody as body,
} from '../mock_data';
import { frontMatterify, stringify } from '~/static_site_editor/services/front_matterify';
describe('static_site_editor/services/front_matterify', () => {
const frontMatterifiedContent = {
source: content,
matter: yamlFrontMatterObj,
hasMatter: true,
spacing,
content: body,
delimiter: '---',
type: 'yaml',
};
const frontMatterifiedBody = {
source: body,
matter: null,
hasMatter: false,
spacing: null,
content: body,
delimiter: null,
type: null,
};
describe('frontMatterify', () => {
it.each`
frontMatterified | target
${frontMatterify(content)} | ${frontMatterifiedContent}
${frontMatterify(body)} | ${frontMatterifiedBody}
`('returns $target from $frontMatterified', ({ frontMatterified, target }) => {
expect(frontMatterified).toEqual(target);
});
it('should throw when matter is invalid', () => {
const invalidContent = `---\nkey: val\nkeyNoVal\n---\n${body}`;
expect(() => frontMatterify(invalidContent)).toThrow();
});
});
describe('stringify', () => {
it.each`
stringified | target
${stringify(frontMatterifiedContent)} | ${content}
${stringify(frontMatterifiedBody)} | ${body}
`('returns $target from $stringified', ({ stringified, target }) => {
expect(stringified).toBe(target);
});
});
});