Skip to content

Commit ef1ab08

Browse files
authored
SortableGridList tests (#2586)
1 parent 5971018 commit ef1ab08

File tree

1 file changed

+121
-0
lines changed

1 file changed

+121
-0
lines changed
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
import usePresenter from '../usePresenter';
2+
import {renderHook} from '@testing-library/react-hooks';
3+
import {DEFAULT_ITEM_SPACINGS, DEFAULT_NUM_COLUMNS} from '../../gridList/useGridLayout';
4+
import {Constants} from '../../../commons/new';
5+
6+
describe('SortableGridList presenter tests', () => {
7+
const makeSUT = ({numOfColumns = DEFAULT_NUM_COLUMNS, itemSpacing = DEFAULT_ITEM_SPACINGS}) => {
8+
return renderHook(() => usePresenter(numOfColumns, itemSpacing));
9+
};
10+
11+
describe('ltr', () => {
12+
it('getTranslationByOrderChange', () => {
13+
let sut = makeSUT({});
14+
expect(sut.result.current.getTranslationByOrderChange(0, 0)).toEqual({x: 0, y: 0});
15+
expect(sut.result.current.getTranslationByOrderChange(5, 1)).toEqual({x: 16, y: 16});
16+
expect(sut.result.current.getTranslationByOrderChange(2, 1)).toEqual({x: 16, y: 0});
17+
expect(sut.result.current.getTranslationByOrderChange(1, 2)).toEqual({x: -16, y: 0});
18+
19+
sut = makeSUT({numOfColumns: 5});
20+
expect(sut.result.current.getTranslationByOrderChange(0, 0)).toEqual({x: 0, y: 0});
21+
expect(sut.result.current.getTranslationByOrderChange(5, 1)).toEqual({x: -16, y: 16});
22+
expect(sut.result.current.getTranslationByOrderChange(2, 1)).toEqual({x: 16, y: 0});
23+
expect(sut.result.current.getTranslationByOrderChange(1, 2)).toEqual({x: -16, y: 0});
24+
25+
sut = makeSUT({itemSpacing: 30});
26+
expect(sut.result.current.getTranslationByOrderChange(0, 0)).toEqual({x: 0, y: 0});
27+
expect(sut.result.current.getTranslationByOrderChange(5, 1)).toEqual({x: 30, y: 30});
28+
expect(sut.result.current.getTranslationByOrderChange(2, 1)).toEqual({x: 30, y: 0});
29+
expect(sut.result.current.getTranslationByOrderChange(1, 2)).toEqual({x: -30, y: 0});
30+
31+
sut = makeSUT({numOfColumns: 5, itemSpacing: 30});
32+
expect(sut.result.current.getTranslationByOrderChange(0, 0)).toEqual({x: 0, y: 0});
33+
expect(sut.result.current.getTranslationByOrderChange(5, 1)).toEqual({x: -30, y: 30});
34+
expect(sut.result.current.getTranslationByOrderChange(2, 1)).toEqual({x: 30, y: 0});
35+
expect(sut.result.current.getTranslationByOrderChange(1, 2)).toEqual({x: -30, y: 0});
36+
});
37+
38+
it('getOrderByPosition', () => {
39+
let sut = makeSUT({});
40+
expect(sut.result.current.getOrderByPosition(0, 0)).toEqual(0);
41+
expect(sut.result.current.getOrderByPosition(200, 200)).toEqual(4);
42+
expect(sut.result.current.getOrderByPosition(0, 200)).toEqual(3);
43+
expect(sut.result.current.getOrderByPosition(200, 0)).toEqual(1);
44+
45+
sut = makeSUT({numOfColumns: 5});
46+
expect(sut.result.current.getOrderByPosition(0, 0)).toEqual(0);
47+
expect(sut.result.current.getOrderByPosition(200, 200)).toEqual(6);
48+
expect(sut.result.current.getOrderByPosition(0, 200)).toEqual(5);
49+
expect(sut.result.current.getOrderByPosition(200, 0)).toEqual(1);
50+
51+
sut = makeSUT({itemSpacing: 30});
52+
expect(sut.result.current.getOrderByPosition(0, 0)).toEqual(0);
53+
expect(sut.result.current.getOrderByPosition(200, 200)).toEqual(4);
54+
expect(sut.result.current.getOrderByPosition(0, 200)).toEqual(3);
55+
expect(sut.result.current.getOrderByPosition(200, 0)).toEqual(1);
56+
57+
sut = makeSUT({numOfColumns: 5, itemSpacing: 30});
58+
expect(sut.result.current.getOrderByPosition(0, 0)).toEqual(0);
59+
expect(sut.result.current.getOrderByPosition(200, 200)).toEqual(6);
60+
expect(sut.result.current.getOrderByPosition(0, 200)).toEqual(5);
61+
expect(sut.result.current.getOrderByPosition(200, 0)).toEqual(1);
62+
});
63+
});
64+
65+
describe('rtl', () => {
66+
beforeAll(() => (Constants.isRTL = true));
67+
afterAll(() => (Constants.isRTL = false));
68+
69+
it('getTranslationByOrderChange', () => {
70+
let sut = makeSUT({});
71+
expect(sut.result.current.getTranslationByOrderChange(0, 0)).toEqual({x: -0, y: 0});
72+
expect(sut.result.current.getTranslationByOrderChange(5, 1)).toEqual({x: -16, y: 16});
73+
expect(sut.result.current.getTranslationByOrderChange(2, 1)).toEqual({x: -16, y: 0});
74+
expect(sut.result.current.getTranslationByOrderChange(1, 2)).toEqual({x: 16, y: 0});
75+
76+
sut = makeSUT({numOfColumns: 5});
77+
expect(sut.result.current.getTranslationByOrderChange(0, 0)).toEqual({x: -0, y: 0});
78+
expect(sut.result.current.getTranslationByOrderChange(5, 1)).toEqual({x: 16, y: 16});
79+
expect(sut.result.current.getTranslationByOrderChange(2, 1)).toEqual({x: -16, y: 0});
80+
expect(sut.result.current.getTranslationByOrderChange(1, 2)).toEqual({x: 16, y: 0});
81+
82+
sut = makeSUT({itemSpacing: 30});
83+
expect(sut.result.current.getTranslationByOrderChange(0, 0)).toEqual({x: -0, y: 0});
84+
expect(sut.result.current.getTranslationByOrderChange(5, 1)).toEqual({x: -30, y: 30});
85+
expect(sut.result.current.getTranslationByOrderChange(2, 1)).toEqual({x: -30, y: 0});
86+
expect(sut.result.current.getTranslationByOrderChange(1, 2)).toEqual({x: 30, y: 0});
87+
88+
sut = makeSUT({numOfColumns: 5, itemSpacing: 30});
89+
expect(sut.result.current.getTranslationByOrderChange(0, 0)).toEqual({x: -0, y: 0});
90+
expect(sut.result.current.getTranslationByOrderChange(5, 1)).toEqual({x: 30, y: 30});
91+
expect(sut.result.current.getTranslationByOrderChange(2, 1)).toEqual({x: -30, y: 0});
92+
expect(sut.result.current.getTranslationByOrderChange(1, 2)).toEqual({x: 30, y: 0});
93+
});
94+
95+
it('getOrderByPosition', () => {
96+
let sut = makeSUT({});
97+
expect(sut.result.current.getOrderByPosition(0, 0)).toEqual(0);
98+
expect(sut.result.current.getOrderByPosition(-200, 200)).toEqual(4);
99+
expect(sut.result.current.getOrderByPosition(0, 200)).toEqual(3);
100+
expect(sut.result.current.getOrderByPosition(-200, 0)).toEqual(1);
101+
102+
sut = makeSUT({numOfColumns: 5});
103+
expect(sut.result.current.getOrderByPosition(0, 0)).toEqual(0);
104+
expect(sut.result.current.getOrderByPosition(-200, 200)).toEqual(6);
105+
expect(sut.result.current.getOrderByPosition(0, 200)).toEqual(5);
106+
expect(sut.result.current.getOrderByPosition(-200, 0)).toEqual(1);
107+
108+
sut = makeSUT({itemSpacing: 30});
109+
expect(sut.result.current.getOrderByPosition(0, 0)).toEqual(0);
110+
expect(sut.result.current.getOrderByPosition(-200, 200)).toEqual(4);
111+
expect(sut.result.current.getOrderByPosition(0, 200)).toEqual(3);
112+
expect(sut.result.current.getOrderByPosition(-200, 0)).toEqual(1);
113+
114+
sut = makeSUT({numOfColumns: 5, itemSpacing: 30});
115+
expect(sut.result.current.getOrderByPosition(0, 0)).toEqual(0);
116+
expect(sut.result.current.getOrderByPosition(-200, 200)).toEqual(6);
117+
expect(sut.result.current.getOrderByPosition(0, 200)).toEqual(5);
118+
expect(sut.result.current.getOrderByPosition(-200, 0)).toEqual(1);
119+
});
120+
});
121+
});

0 commit comments

Comments
 (0)