forked from deriv-com/p2p
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAdvertiserNameBadges.spec.tsx
82 lines (76 loc) · 2.96 KB
/
AdvertiserNameBadges.spec.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import { render, screen } from '@testing-library/react';
import AdvertiserNameBadges from '../AdvertiserNameBadges';
const mockUseAdvertiserStats = {
data: {
isAddressVerified: false,
isIdentityVerified: false,
totalOrders: 10,
},
isLoading: false,
};
const mockUseGetPhoneNumberVerification = {
isPhoneNumberVerificationEnabled: false,
isPhoneNumberVerified: false,
};
jest.mock('@/hooks/custom-hooks', () => ({
...jest.requireActual('@/hooks/custom-hooks'),
useAdvertiserStats: jest.fn(() => mockUseAdvertiserStats),
useGetPhoneNumberVerification: jest.fn(() => mockUseGetPhoneNumberVerification),
}));
jest.mock('@/utils', () => ({
...jest.requireActual('@/utils'),
getCurrentRoute: jest.fn(() => 'my-profile'),
}));
const mockProps = {
advertiserStats: {
isAddressVerified: false,
isIdentityVerified: false,
totalOrders: 20,
},
};
describe('AdvertiserNameBadges', () => {
it('should render not verified badges', () => {
render(<AdvertiserNameBadges {...mockProps} />);
expect(screen.queryAllByText('not verified')).toHaveLength(2);
});
it('should render verified badges', () => {
mockProps.advertiserStats = {
isAddressVerified: true,
isIdentityVerified: true,
totalOrders: 20,
};
render(<AdvertiserNameBadges {...mockProps} />);
expect(screen.queryAllByText('verified')).toHaveLength(2);
});
it('should render verified/not verified badges', () => {
mockProps.advertiserStats = {
isAddressVerified: true,
isIdentityVerified: false,
totalOrders: 20,
};
render(<AdvertiserNameBadges {...mockProps} />);
expect(screen.getByText('verified')).toBeInTheDocument();
expect(screen.getByText('not verified')).toBeInTheDocument();
});
it('should render trade badge with 100+ orders', () => {
mockProps.advertiserStats = {
isAddressVerified: true,
isIdentityVerified: true,
totalOrders: 100,
};
render(<AdvertiserNameBadges {...mockProps} />);
expect(screen.getByText('100+')).toBeInTheDocument();
});
it('should render mobile badge when phone number verification is enabled and not verified', () => {
mockUseGetPhoneNumberVerification.isPhoneNumberVerificationEnabled = true;
render(<AdvertiserNameBadges {...mockProps} />);
expect(screen.getByText('Mobile')).toBeInTheDocument();
expect(screen.getByText('not verified')).toBeInTheDocument();
});
it('should render mobile badge with verified status when phone number verification is enabled and verified', () => {
mockUseGetPhoneNumberVerification.isPhoneNumberVerified = true;
render(<AdvertiserNameBadges {...mockProps} />);
expect(screen.getByText('Mobile')).toBeInTheDocument();
expect(screen.getAllByText('verified')).toHaveLength(3);
});
});