Remove payments API routing initialization
[ProtonMail-WebClient.git] / packages / components / containers / layout / helper.test.ts
blob62ce86d7a8d8df92003d3fd6809fd1b1bae13922
1 import { getIsSectionAvailable, getIsSubsectionAvailable } from './helper';
2 import type { SectionConfig, SubSectionConfig } from './interface';
4 describe('getIsSubsectionAvailable', () => {
5     it('returns true when `available` is undefined', () => {
6         const config: SubSectionConfig = {
7             id: '',
8         };
10         const result = getIsSubsectionAvailable(config);
12         expect(result).toBe(true);
13     });
15     it('returns true when `available` is true', () => {
16         const config: SubSectionConfig = {
17             id: '',
18             available: true,
19         };
21         const result = getIsSubsectionAvailable(config);
23         expect(result).toBe(true);
24     });
26     it('returns false when `available` is false', () => {
27         const config: SubSectionConfig = {
28             id: '',
29             available: false,
30         };
32         const result = getIsSubsectionAvailable(config);
34         expect(result).toBe(false);
35     });
36 });
38 describe('getIsSectionAvailable', () => {
39     describe('available property', () => {
40         it('returns true when `available` is undefined', () => {
41             const config: SectionConfig = {
42                 to: '',
43                 icon: 'alias',
44                 text: '',
45                 subsections: [{ id: '' }],
46             };
48             const result = getIsSectionAvailable(config);
50             expect(result).toBe(true);
51         });
53         it('returns true when `available` is true', () => {
54             const config: SectionConfig = {
55                 to: '',
56                 icon: 'alias',
57                 text: '',
58                 available: true,
59                 subsections: [{ id: '' }],
60             };
62             const result = getIsSectionAvailable(config);
64             expect(result).toBe(true);
65         });
67         it('returns false when `available` is false', () => {
68             const config: SectionConfig = {
69                 to: '',
70                 icon: 'alias',
71                 text: '',
72                 available: false,
73                 subsections: [{ id: '' }],
74             };
76             const result = getIsSectionAvailable(config);
78             expect(result).toBe(false);
79         });
80     });
82     describe('subsections prop', () => {
83         it('returns true when `subsections` is undefined', () => {
84             const config: SectionConfig = {
85                 to: '',
86                 icon: 'alias',
87                 text: '',
88                 available: true,
89             };
91             const result = getIsSectionAvailable(config);
93             expect(result).toBe(true);
94         });
96         it('returns true when all `subsections` are available', () => {
97             const config: SectionConfig = {
98                 to: '',
99                 icon: 'alias',
100                 text: '',
101                 available: true,
102                 subsections: [
103                     { id: '1', available: true },
104                     { id: '2', available: true },
105                 ],
106             };
108             const result = getIsSectionAvailable(config);
110             expect(result).toBe(true);
111         });
113         it('returns true when some `subsections` are available', () => {
114             const config: SectionConfig = {
115                 to: '',
116                 icon: 'alias',
117                 text: '',
118                 available: true,
119                 subsections: [
120                     { id: '1', available: false },
121                     { id: '2', available: true },
122                 ],
123             };
125             const result = getIsSectionAvailable(config);
127             expect(result).toBe(true);
128         });
130         it('returns false when no `subsections` are available', () => {
131             const config: SectionConfig = {
132                 to: '',
133                 icon: 'alias',
134                 text: '',
135                 available: true,
136                 subsections: [
137                     { id: '1', available: false },
138                     { id: '2', available: false },
139                 ],
140             };
142             const result = getIsSectionAvailable(config);
144             expect(result).toBe(false);
145         });
146     });