import { a4, A4, HtmlRequest, landscape, noMargins, NO_MARGINS, RequestType, to } from '../src'
// dumb object to test purity
const dumb: HtmlRequest = {
type: RequestType.Html,
url: 'test',
fields: {},
client: {
post: () => {
throw new Error('not implemented')
},
},
}
test('Should set static fields', () => {
expect(to()(dumb)).toEqual({ ...dumb })
expect(to({})(dumb)).toEqual({ ...dumb })
expect(to({ landscape: true })(dumb)).toEqual({
...dumb,
fields: { landscape: true },
})
expect(to({ landscape: true })(dumb)).toEqual({
...dumb,
fields: { landscape: true },
})
})
test('Should set fields using modifiers', () => {
expect(to(a4)(dumb)).toEqual({
...dumb,
fields: {
paperWidth: A4[0],
paperHeight: A4[1],
},
})
expect(to(landscape)(dumb)).toEqual({
...dumb,
fields: { landscape: true },
})
})
test('Should set "my" static fields', () => {
expect(to({ paper: A4 })(dumb)).toEqual({
...dumb,
fields: {
paperWidth: A4[0],
paperHeight: A4[1],
},
})
expect(to(A4)(dumb)).toEqual({
...dumb,
fields: {
paperWidth: A4[0],
paperHeight: A4[1],
},
})
expect(to({ width: A4[0] })(dumb)).toEqual({
...dumb,
fields: {
paperWidth: A4[0],
},
})
expect(to({ margins: NO_MARGINS })(dumb)).toEqual({
...dumb,
fields: {
marginTop: NO_MARGINS[0],
marginRight: NO_MARGINS[1],
marginBottom: NO_MARGINS[2],
marginLeft: NO_MARGINS[3],
},
})
expect(to(NO_MARGINS)(dumb)).toEqual({
...dumb,
fields: {
marginTop: NO_MARGINS[0],
marginRight: NO_MARGINS[1],
marginBottom: NO_MARGINS[2],
marginLeft: NO_MARGINS[3],
},
})
expect(to({ top: 10, left: 20 })(dumb)).toEqual({
...dumb,
fields: {
marginTop: 10,
marginLeft: 20,
},
})
})
test('Should set fields both, using modifiers and static', () => {
expect(to(noMargins, { landscape: true })(dumb)).toEqual({
...dumb,
fields: {
marginTop: NO_MARGINS[0],
marginRight: NO_MARGINS[1],
marginBottom: NO_MARGINS[2],
marginLeft: NO_MARGINS[3],
landscape: true,
},
})
})