Skip to content

Commit 7874171

Browse files
committed
test(Vdisk): props affecting disk color
1 parent 756dc4d commit 7874171

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
import {render} from '@testing-library/react'
2+
3+
import VDisk from '../Vdisk'
4+
5+
describe('VDisk state', () => {
6+
it('Should determine severity based on the highest value among VDiskState, DiskSpace and FrontQueues', () => {
7+
const {getAllByRole} = render(
8+
<>
9+
<VDisk
10+
VDiskId={{Domain: 1}}
11+
VDiskState="OK" // severity 1, green
12+
DiskSpace="Yellow" // severity 3, yellow
13+
FrontQueues="Green" // severity 1, green
14+
/>
15+
<VDisk
16+
VDiskId={{Domain: 2}}
17+
VDiskState="PDiskError" // severity 5, red
18+
DiskSpace="Yellow" // severity 3, yellow
19+
FrontQueues="Green" // severity 1, green
20+
/>
21+
<VDisk
22+
VDiskId={{Domain: 3}}
23+
VDiskState="OK" // severity 1, green
24+
DiskSpace="Yellow" // severity 3, yellow
25+
FrontQueues="Orange" // severity 4, orange
26+
/>
27+
</>
28+
);
29+
30+
const [disk1, disk2, disk3] = getAllByRole('meter');
31+
32+
expect(disk1.className).toMatch(/_yellow\b/i);
33+
expect(disk2.className).toMatch(/_red\b/i);
34+
expect(disk3.className).toMatch(/_orange\b/i);
35+
});
36+
37+
it('Should not pick the highest severity based on FrontQueues value', () => {
38+
const {getAllByRole} = render(
39+
<>
40+
<VDisk
41+
VDiskId={{Domain: 1}}
42+
VDiskState="OK" // severity 1, green
43+
DiskSpace="Green" // severity 1, green
44+
FrontQueues="Red" // severity 5, red
45+
/>
46+
<VDisk
47+
VDiskId={{Domain: 2}}
48+
VDiskState="OK" // severity 1, green
49+
DiskSpace="Red" // severity 5, red
50+
FrontQueues="Red" // severity 5, red
51+
/>
52+
</>
53+
);
54+
55+
const [disk1, disk2] = getAllByRole('meter');
56+
57+
expect(disk1.className).not.toMatch(/_red\b/i);
58+
expect(disk2.className).toMatch(/_red\b/i);
59+
});
60+
61+
it('Should display as unavailable when no VDiskState is provided', () => {
62+
const {getAllByRole} = render(
63+
<>
64+
<VDisk VDiskId={{Domain: 1}} />
65+
<VDisk VDiskId={{Domain: 2}} VDiskState="OK" />
66+
<VDisk VDiskId={{Domain: 3}} DiskSpace="Green" />
67+
<VDisk VDiskId={{Domain: 4}} FrontQueues="Green" />
68+
<VDisk VDiskId={{Domain: 5}} VDiskState="OK" DiskSpace="Green" />
69+
<VDisk VDiskId={{Domain: 6}} VDiskState="OK" FrontQueues="Green" />
70+
<VDisk VDiskId={{Domain: 7}} DiskSpace="Green" FrontQueues="Green" />
71+
<VDisk VDiskId={{Domain: 8}} VDiskState="OK" DiskSpace="Green" FrontQueues="Green" />
72+
</>
73+
);
74+
75+
const [disk1, disk2, disk3, disk4, disk5, disk6, disk7, disk8] = getAllByRole('meter');
76+
77+
// unavailable disks display with the highest severity
78+
expect(disk1.className).toMatch(/_red\b/i);
79+
expect(disk2.className).not.toMatch(/_red\b/i);
80+
expect(disk3.className).toMatch(/_red\b/i);
81+
expect(disk4.className).toMatch(/_red\b/i);
82+
expect(disk5.className).not.toMatch(/_red\b/i);
83+
expect(disk6.className).not.toMatch(/_red\b/i);
84+
expect(disk7.className).toMatch(/_red\b/i);
85+
expect(disk8.className).not.toMatch(/_red\b/i);
86+
});
87+
88+
it('Should display replicating VDisks in OK state with a distinct color', () => {
89+
const {getAllByRole} = render(
90+
<>
91+
<VDisk
92+
VDiskId={{Domain: 1}}
93+
VDiskState="OK" // severity 1, green
94+
Replicated={false}
95+
/>
96+
<VDisk
97+
VDiskId={{Domain: 2}}
98+
VDiskState="OK" // severity 1, green
99+
Replicated={true}
100+
/>
101+
<VDisk
102+
VDiskId={{Domain: 3}}
103+
VDiskState="Initial" // severity 3, yellow
104+
Replicated={false}
105+
/>
106+
</>
107+
);
108+
109+
const [disk1, disk2, disk3] = getAllByRole('meter');
110+
111+
expect(disk1.className).toMatch(/_blue\b/i);
112+
expect(disk2.className).not.toMatch(/_blue\b/i);
113+
expect(disk3.className).not.toMatch(/_blue\b/i);
114+
});
115+
});

0 commit comments

Comments
 (0)