forked from penx/storybook-code-coverage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuseToggle.spec.js
108 lines (87 loc) · 2.3 KB
/
useToggle.spec.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
// Cypress test
import React from 'react'
import {mount} from 'cypress-react-unit-test'
import { useToggle } from "./useToggle";
import {addOne} from './addOne'
it('adds', () => {
expect(addOne(1)).to.equal(2)
})
it("is off by default", () => {
const onMessage = "Is On";
const offMessage = "Is Off";
const TestComponent = () => {
const { on } = useToggle();
return (
<div>
<h2>{on ? onMessage : offMessage}</h2>
</div>
);
};
mount(<TestComponent />)
cy.contains(offMessage).should('be.visible')
});
it("toggle changes on state", () => {
const onMessage = "Is On";
const offMessage = "Is Off";
const toggleMessage = "Toggle";
const TestComponent = () => {
const { on, toggle } = useToggle();
return (
<div>
<h2>{on ? onMessage : offMessage}</h2>
<button onClick={toggle}>{toggleMessage}</button>
</div>
);
};
mount(<TestComponent />)
cy.contains(toggleMessage).click()
cy.contains(onMessage).should('be.visible')
});
it("setOn changes on state from off to on", () => {
const onMessage = "Is On";
const offMessage = "Is Off";
const setOnMessage = "Set On";
const TestComponent = () => {
const { on, setOn } = useToggle();
return (
<div>
<h2>{on ? onMessage : offMessage}</h2>
<button onClick={setOn}>{setOnMessage}</button>
</div>
);
};
mount(<TestComponent />)
cy.contains(setOnMessage).click()
cy.contains(onMessage).should('be.visible')
});
it("supports initial on state", () => {
const onMessage = "Is On";
const offMessage = "Is Off";
const TestComponent = () => {
const { on } = useToggle(true);
return (
<div>
<h2>{on ? onMessage : offMessage}</h2>
</div>
);
};
mount(<TestComponent />)
cy.contains(onMessage).should('be.visible')
});
it("setOff changes on state from on to off", () => {
const onMessage = "Is On";
const offMessage = "Is Off";
const setOffMessage = "Set Off";
const TestComponent = () => {
const { on, setOff } = useToggle(true);
return (
<div>
<h2>{on ? onMessage : offMessage}</h2>
<button onClick={setOff}>{setOffMessage}</button>
</div>
);
};
mount(<TestComponent />)
cy.contains(setOffMessage).click()
cy.contains(offMessage).should('be.visible')
});