Skip to content

Commit b69896a

Browse files
committed
Add unit tests for Mark
1 parent 33dc62f commit b69896a

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed

src/__tests__/Mark.jsx

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
import React from 'react';
2+
import { shallow } from 'enzyme';
3+
4+
import Mark from '../Mark';
5+
6+
/* eslint-disable comma-dangle */
7+
8+
describe('Mark', () => {
9+
it('renders a hand with given name', () => {
10+
const component = shallow(
11+
<Mark name="minute" />
12+
);
13+
14+
const mark = component.find('.react-clock__mark');
15+
const markBody = component.find('.react-clock__mark__body');
16+
17+
expect(mark.hasClass('react-clock__minute-mark')).toBe(true);
18+
expect(markBody.hasClass('react-clock__minute-mark__body')).toBe(true);
19+
});
20+
21+
it('renders mark angled at 0° by default', () => {
22+
const component = shallow(
23+
<Mark name="minute" />
24+
);
25+
26+
const mark = component.find('.react-clock__mark');
27+
28+
expect(mark.prop('style').transform).toBe('rotate(0deg)');
29+
});
30+
31+
it('renders properly angled mark given angle prop', () => {
32+
const component = shallow(
33+
<Mark name="minute" angle={15} />
34+
);
35+
36+
const mark = component.find('.react-clock__mark');
37+
38+
expect(mark.prop('style').transform).toBe('rotate(15deg)');
39+
});
40+
41+
it('renders mark with 10% length by default', () => {
42+
const component = shallow(
43+
<Mark name="minute" />
44+
);
45+
46+
const markBody = component.find('.react-clock__mark__body');
47+
48+
expect(markBody.prop('style').bottom).toBe('95%');
49+
});
50+
51+
it('renders mark with proper length given length prop', () => {
52+
const component = shallow(
53+
<Mark name="minute" length={50} />
54+
);
55+
56+
const markBody = component.find('.react-clock__mark__body');
57+
58+
expect(markBody.prop('style').bottom).toBe('75%');
59+
});
60+
61+
it('renders mark with 1px width by default', () => {
62+
const component = shallow(
63+
<Mark name="minute" />
64+
);
65+
66+
const markBody = component.find('.react-clock__mark__body');
67+
68+
expect(markBody.prop('style').width).toBe('1px');
69+
});
70+
71+
it('renders mark with proper length given length prop', () => {
72+
const component = shallow(
73+
<Mark name="minute" width={5} />
74+
);
75+
76+
const markBody = component.find('.react-clock__mark__body');
77+
78+
expect(markBody.prop('style').width).toBe('5px');
79+
});
80+
81+
it('renders number given number prop', () => {
82+
const component = shallow(
83+
<Mark name="minute" number={1} />
84+
);
85+
86+
const markNumber = component.find('.react-clock__mark__number');
87+
88+
expect(markNumber).toHaveLength(1);
89+
});
90+
91+
it('renders number angled at 0° by default', () => {
92+
const component = shallow(
93+
<Mark name="minute" number={1} />
94+
);
95+
96+
const markNumber = component.find('.react-clock__mark__number');
97+
98+
expect(markNumber.prop('style').transform).toBe('rotate(-0deg)');
99+
});
100+
101+
it('renders properly angled mark given angle prop', () => {
102+
const component = shallow(
103+
<Mark name="minute" number={1} angle={15} />
104+
);
105+
106+
const markNumber = component.find('.react-clock__mark__number');
107+
108+
expect(markNumber.prop('style').transform).toBe('rotate(-15deg)');
109+
});
110+
});

0 commit comments

Comments
 (0)