regexper-static/src/layout.test.js
2019-02-01 08:49:55 -05:00

80 lines
1.6 KiB
JavaScript

import layout from 'layout';
jest.mock('rendering/types', () => ({
Example: {
layout: jest.fn()
},
Other: {
layout: jest.fn()
}
}));
import nodeTypes from 'rendering/types';
describe('layout', () => {
afterEach(() => {
jest.resetAllMocks();
});
test('running against a string', () => {
expect(layout('test')).toEqual('test');
});
test('running against a simple node', () => {
expect(layout({
type: 'Example'
})).toMatchSnapshot();
});
test('running against a node with a basic bounding box', () => {
nodeTypes.Example.layout.mockImplementation(data => {
data.box = { width: 20, height: 10 };
return data;
});
expect(layout({
type: 'Example'
})).toMatchSnapshot();
});
test('running against a node with a complete bounding box', () => {
nodeTypes.Example.layout.mockImplementation(data => {
data.box = {
width: 20,
height: 10,
axisY: 2,
axisX1: 5,
axisX2: 15
};
return data;
});
expect(layout({
type: 'Example'
})).toMatchSnapshot();
});
test('running against a node with props', () => {
expect(layout({
type: 'Example',
props: {
property: 'example'
}
})).toMatchSnapshot();
});
test('running layout on children', () => {
nodeTypes.Other.layout.mockImplementation(data => {
data.box = { width: 20, height: 10 };
return data;
});
expect(layout({
type: 'Example',
children: [
{
type: 'Other'
},
'string example'
]
})).toMatchSnapshot();
});
});