-
Notifications
You must be signed in to change notification settings - Fork 2k
/
availability-messages.js
74 lines (65 loc) · 2.42 KB
/
availability-messages.js
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
/**
* @jest-environment jsdom
*/
/**
* Internal dependencies
*/
import { getAvailabilityNotice } from '../availability-messages';
import { domainAvailability } from 'lib/domains/constants';
jest.mock( 'i18n-calypso', () => ( {
translate: jest.fn( () => 'default' ),
} ) );
describe( 'getAvailabilityNotice()', () => {
test( 'Should return default message and severity', () => {
expect( getAvailabilityNotice() ).toEqual( { message: 'default', severity: 'error' } );
} );
test( 'Should return default message and severity when error type not defined', () => {
expect(
getAvailabilityNotice( 'hello.com', null, { site: 1, maintenanceEndTime: 2 } )
).toEqual( { message: 'default', severity: 'error' } );
} );
test( 'Should return default message when domain is not a string', () => {
expect(
getAvailabilityNotice( null, domainAvailability.DISALLOWED, {
site: 1,
maintenanceEndTime: 2,
} )
).toEqual( { message: 'default', severity: 'error' } );
} );
test( 'Should return default message when domain or site not present', () => {
expect(
getAvailabilityNotice( null, domainAvailability.MAPPED_SAME_SITE_TRANSFERRABLE, null )
).toEqual( { message: 'default', severity: 'error' } );
} );
test( 'Should return no message when tld is not present', () => {
expect( getAvailabilityNotice( null, domainAvailability.MAINTENANCE, null ) ).toEqual( {
message: undefined,
severity: 'error',
} );
expect( getAvailabilityNotice( null, domainAvailability.NOT_REGISTRABLE, null ) ).toEqual( {
message: undefined,
severity: 'error',
} );
} );
test( 'Should return default message when search results are empty', () => {
expect( getAvailabilityNotice( null, domainAvailability.EMPTY_RESULTS, null ) ).toEqual( {
message: 'default',
severity: 'error',
} );
} );
test( 'Should return no message when domain unavailable, unmappable, unknown, tld not supported, or search results are empty', () => {
// These are special cases where the error notice should not be handled by client/components/domains/register-domain-step/index.jsx
// but in client/components/domains/domain-search-results/index.jsx
[
domainAvailability.MAPPABLE,
domainAvailability.AVAILABLE,
domainAvailability.TLD_NOT_SUPPORTED,
domainAvailability.UNKNOWN,
].forEach( ( error ) => {
expect( getAvailabilityNotice( null, error, null ) ).toEqual( {
message: undefined,
severity: 'error',
} );
} );
} );
} );