UNPKG

2.96 kBJavaScriptView Raw
1import { expect } from 'chai';
2import { resolveHeaderRows } from '../src';
3
4describe('utils.resolveHeaderRows', function () {
5 it('returns columns wrapped in an array', function () {
6 const column = {
7 foo: 'bar'
8 };
9 const columns = [column];
10 const expected = [
11 [
12 {
13 ...column,
14 props: {
15 rowSpan: 1
16 }
17 }
18 ]
19 ];
20
21 expect(resolveHeaderRows(columns)).to.deep.equal(expected);
22 });
23
24 it('passes props to column result', function () {
25 const props = {
26 bar: 'bar'
27 };
28 const column = {
29 foo: 'bar',
30 props
31 };
32 const columns = [column];
33 const expected = [
34 [
35 {
36 ...column,
37 props: {
38 ...props,
39 rowSpan: 1
40 }
41 }
42 ]
43 ];
44
45 expect(resolveHeaderRows(columns)).to.deep.equal(expected);
46 });
47
48 it('returns columns with child wrapped in an array', function () {
49 const childColumn = {
50 bar: 'foo'
51 };
52 const column = {
53 foo: 'bar',
54 children: [
55 childColumn
56 ]
57 };
58 const columns = [column];
59 const expected = [
60 [
61 {
62 foo: column.foo,
63 props: {
64 colSpan: 1
65 }
66 }
67 ],
68 [
69 {
70 ...childColumn,
71 props: {
72 rowSpan: 1
73 }
74 }
75 ]
76 ];
77
78 expect(resolveHeaderRows(columns)).to.deep.equal(expected);
79 });
80
81 it('calculates colSpan based on children', function () {
82 const childColumn = {
83 bar: 'foo'
84 };
85 const column = {
86 foo: 'bar',
87 children: [
88 childColumn,
89 childColumn
90 ]
91 };
92 const columns = [column];
93 const expected = [
94 [
95 {
96 foo: column.foo,
97 props: {
98 colSpan: 2
99 }
100 }
101 ],
102 [
103 {
104 ...childColumn,
105 props: {
106 rowSpan: 1
107 }
108 },
109 {
110 ...childColumn,
111 props: {
112 rowSpan: 1
113 }
114 }
115 ]
116 ];
117
118 expect(resolveHeaderRows(columns)).to.deep.equal(expected);
119 });
120
121 it('calculates rowSpan based on siblings', function () {
122 const basicColumn = {
123 bar: 'foo'
124 };
125 const column = {
126 foo: 'bar',
127 children: [
128 basicColumn,
129 basicColumn
130 ]
131 };
132 const columns = [basicColumn, column];
133 const expected = [
134 [
135 {
136 ...basicColumn,
137 props: {
138 rowSpan: 2
139 }
140 },
141 {
142 foo: column.foo,
143 props: {
144 colSpan: 2
145 }
146 }
147 ],
148 [
149 {
150 ...basicColumn,
151 props: {
152 rowSpan: 1
153 }
154 },
155 {
156 ...basicColumn,
157 props: {
158 rowSpan: 1
159 }
160 }
161 ]
162 ];
163
164 expect(resolveHeaderRows(columns)).to.deep.equal(expected);
165 });
166});