aboutsummaryrefslogtreecommitdiffstats
path: root/test/react/Modal.spec.js
blob: 7c4738fe39052c7850b8b5c9e76086e41ae56185 (plain)
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
import React from 'react';
import { mount, ReactWrapper } from 'enzyme';

import Modal from '../../src/react/Modal';

describe('Modal', () => {

	const MODAL_MESSAGE = 'Message';
	test('standard modal', ()=>{
		const modal = new ReactWrapper(mount(<Modal show={true} size='small'>
								<Modal.Header><Modal.Title>Standard Modal</Modal.Title></Modal.Header>
								<Modal.Body>
									{MODAL_MESSAGE}
								</Modal.Body>
								<Modal.Footer actionButtonText='Yes' actionButtonClick={()=>{}}/>
							</Modal>).instance().modalRef, true);

		expect(modal.find(Modal.Body).length).toBe(1);                                                                               
		expect(modal.find(Modal.Header).length).toBe(1);                                                                               
		expect(modal.find(Modal.Title).length).toBe(1);   
		expect(modal.find(Modal.Body).length).toBe(1);              
		expect(modal.find(Modal.Footer).length).toBe(1); 
		expect(modal.find(Modal.Header).props().type).toBe('info');
		expect(modal.find(Modal.Body).text()).toBe(MODAL_MESSAGE);
		expect(modal.html()).toMatchSnapshot();
	});
	
	test('standard modal - not displayed', ()=>{
		const modal = new ReactWrapper(mount(<Modal show={false} size='small'>
								<Modal.Header><Modal.Title>Standard Modal</Modal.Title></Modal.Header>
								<Modal.Body>
									 {MODAL_MESSAGE}	
								</Modal.Body>
								<Modal.Footer actionButtonText='Yes' actionButtonClick={()=>{}}/>
							</Modal>).instance().modalRef, true);		
		expect(modal.find(Modal.Body).length).toBe(0);
		expect(modal.html()).toMatchSnapshot();        
	});
	
	test('alert modal', ()=>{
		const modal = new ReactWrapper(mount(
			<Modal show type='alert' size='small'>
				<Modal.Header type='alert'><Modal.Title>Title</Modal.Title></Modal.Header>
				<Modal.Body>
					{MODAL_MESSAGE}
				</Modal.Body>
				<Modal.Footer closeButtonText='Ok'/>
		</Modal>).instance().modalRef, true);
		expect(modal.find(Modal.Body).text()).toBe(MODAL_MESSAGE);
		expect(modal.find('.sdc-modal-type-alert').length).toBe(1);
		expect(modal.html()).toMatchSnapshot();
	});
	
	test('custom modal', ()=>{
		const modal = new ReactWrapper(mount(
			<Modal show type='custom'>
				<Modal.Header type='custom'><Modal.Title>Title</Modal.Title></Modal.Header>
				<Modal.Body>
					{MODAL_MESSAGE}
				</Modal.Body>
				<Modal.Footer  actionButtonText='Ok' actionButtonClick={()=>{}}/>
			</Modal>).instance().modalRef, true);
		expect(modal.find(Modal.Body).text()).toBe(MODAL_MESSAGE);
		expect(modal.find('.sdc-modal-type-custom').length).toBe(1);
		expect(modal.html()).toMatchSnapshot();
	});

});