UNPKG

1.87 kBJavaScriptView Raw
1import { expect } from 'chai';
2import { evaluateTransforms } from '../src';
3
4describe('utils.evaluateTransforms', function () {
5 it('transforms passed value', function () {
6 const input = 10;
7 const output = 10;
8 const transforms = [value => ({ value })];
9
10 expect(evaluateTransforms(transforms, input).value).to.equal(output);
11 });
12
13 it('accepts extra parameters passed to transforms', function () {
14 const input = 10;
15 const output = 'foo';
16 const transforms = [(value, { result }) => ({ result })];
17
18 expect(evaluateTransforms(
19 transforms, input, { result: output }
20 ).result).to.equal(output);
21 });
22
23 it('merges from left to right', function () {
24 const output = 'foobar';
25 const transforms = [
26 () => ({ foo: 'foo' }),
27 () => ({ foo: output })
28 ];
29
30 expect(evaluateTransforms(transforms).foo).to.equal(output);
31 });
32
33 it('performs a shallow merge', function () {
34 const output = 'foobar';
35 const transforms = [
36 () => ({ foo: { bar: output } }),
37 () => ({ foo: { zoo: output } })
38 ];
39
40 expect(evaluateTransforms(transforms).foo).to.deep.equal({
41 zoo: output
42 });
43 });
44
45 it('performs a deep merge for style', function () {
46 const output = 'foobar';
47 const transforms = [
48 () => ({ style: { bar: output } }),
49 () => ({ style: { zoo: output } })
50 ];
51
52 expect(evaluateTransforms(transforms).style).to.deep.equal({
53 bar: output,
54 zoo: output
55 });
56 });
57
58 it('merges classNames', function () {
59 const transforms = [
60 () => ({ className: 'foo' }),
61 () => ({ className: 'bar' }),
62 () => ({ className: 'baz' })
63 ];
64
65 expect(evaluateTransforms(transforms).className).to.equal('foo bar baz');
66 });
67
68 it('returns an object without any input', function () {
69 expect(evaluateTransforms()).to.deep.equal({});
70 });
71});