1 | import { expect } from 'chai';
|
2 | import { evaluateTransforms } from '../src';
|
3 |
|
4 | describe('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 | });
|