Skip to content

Commit a90d9b0

Browse files
committed
Add the first tests we've had in 70 years
1 parent 77c03d6 commit a90d9b0

File tree

3 files changed

+137
-1
lines changed

3 files changed

+137
-1
lines changed

src/components/academy/NavigationBar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ const NavigationBar: React.SFC<NavigationBarProps> = props => (
5555
{props.role === Role.Admin || props.role === Role.Staff ? (
5656
<NavbarGroup align={Alignment.RIGHT}>
5757
<NavLink
58-
to={`/academy/grading`}
58+
to={'/academy/grading'}
5959
activeClassName="pt-active"
6060
className="NavigationBar__link pt-button pt-minimal"
6161
>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { shallow } from 'enzyme'
2+
import * as React from 'react'
3+
4+
import { Role } from '../../../reducers/states'
5+
import NavigationBar from '../NavigationBar'
6+
7+
test('Grading NavLink does NOT renders for Role.Student', () => {
8+
const props = { role: Role.Student }
9+
const tree = shallow(<NavigationBar {...props} />)
10+
expect(tree.debug()).toMatchSnapshot()
11+
expect(tree.filterWhere(_tree => _tree.find({ to: 'academy/grading' }).exists())).toHaveLength(0)
12+
})
13+
14+
test('Grading NavLink renders for Role.Staff', () => {
15+
const props = { role: Role.Staff }
16+
const tree = shallow(<NavigationBar {...props} />)
17+
expect(tree.debug()).toMatchSnapshot()
18+
expect(tree.filterWhere(_tree => _tree.find({ to: '/academy/grading' }).exists())).toHaveLength(1)
19+
})
20+
21+
test('Grading NavLink renders for Role.Admin', () => {
22+
const props = { role: Role.Admin }
23+
const tree = shallow(<NavigationBar {...props} />)
24+
expect(tree.debug()).toMatchSnapshot()
25+
expect(tree.filterWhere(_tree => _tree.find({ to: '/academy/grading' }).exists())).toHaveLength(1)
26+
})
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`Grading NavLink does NOT renders for Role.Student 1`] = `
4+
"<Blueprint2.Navbar className=\\"NavigationBar secondary-navbar\\">
5+
<Blueprint2.NavbarGroup align=\\"left\\">
6+
<NavLink to=\\"/academy/missions\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
7+
<Blueprint2.Icon icon=\\"flame\\" />
8+
<div className=\\"navbar-button-text hidden-xs\\">
9+
Missions
10+
</div>
11+
</NavLink>
12+
<NavLink to=\\"/academy/sidequests\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
13+
<Blueprint2.Icon icon=\\"lightbulb\\" />
14+
<div className=\\"navbar-button-text hidden-xs\\">
15+
Sidequests
16+
</div>
17+
</NavLink>
18+
<NavLink to=\\"/academy/paths\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
19+
<Blueprint2.Icon icon=\\"predictive-analysis\\" />
20+
<div className=\\"navbar-button-text hidden-xs\\">
21+
Paths
22+
</div>
23+
</NavLink>
24+
<NavLink to=\\"/academy/contests\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
25+
<Blueprint2.Icon icon=\\"comparison\\" />
26+
<div className=\\"navbar-button-text hidden-xs\\">
27+
Contests
28+
</div>
29+
</NavLink>
30+
</Blueprint2.NavbarGroup>
31+
</Blueprint2.Navbar>"
32+
`;
33+
34+
exports[`Grading NavLink renders for Role.Admin 1`] = `
35+
"<Blueprint2.Navbar className=\\"NavigationBar secondary-navbar\\">
36+
<Blueprint2.NavbarGroup align=\\"left\\">
37+
<NavLink to=\\"/academy/missions\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
38+
<Blueprint2.Icon icon=\\"flame\\" />
39+
<div className=\\"navbar-button-text hidden-xs\\">
40+
Missions
41+
</div>
42+
</NavLink>
43+
<NavLink to=\\"/academy/sidequests\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
44+
<Blueprint2.Icon icon=\\"lightbulb\\" />
45+
<div className=\\"navbar-button-text hidden-xs\\">
46+
Sidequests
47+
</div>
48+
</NavLink>
49+
<NavLink to=\\"/academy/paths\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
50+
<Blueprint2.Icon icon=\\"predictive-analysis\\" />
51+
<div className=\\"navbar-button-text hidden-xs\\">
52+
Paths
53+
</div>
54+
</NavLink>
55+
<NavLink to=\\"/academy/contests\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
56+
<Blueprint2.Icon icon=\\"comparison\\" />
57+
<div className=\\"navbar-button-text hidden-xs\\">
58+
Contests
59+
</div>
60+
</NavLink>
61+
</Blueprint2.NavbarGroup>
62+
<Blueprint2.NavbarGroup align=\\"right\\">
63+
<NavLink to=\\"/academy/grading\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
64+
<Blueprint2.Icon icon=\\"endorsed\\" />
65+
<div className=\\"navbar-button-text hidden-xs\\">
66+
Grading
67+
</div>
68+
</NavLink>
69+
</Blueprint2.NavbarGroup>
70+
</Blueprint2.Navbar>"
71+
`;
72+
73+
exports[`Grading NavLink renders for Role.Staff 1`] = `
74+
"<Blueprint2.Navbar className=\\"NavigationBar secondary-navbar\\">
75+
<Blueprint2.NavbarGroup align=\\"left\\">
76+
<NavLink to=\\"/academy/missions\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
77+
<Blueprint2.Icon icon=\\"flame\\" />
78+
<div className=\\"navbar-button-text hidden-xs\\">
79+
Missions
80+
</div>
81+
</NavLink>
82+
<NavLink to=\\"/academy/sidequests\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
83+
<Blueprint2.Icon icon=\\"lightbulb\\" />
84+
<div className=\\"navbar-button-text hidden-xs\\">
85+
Sidequests
86+
</div>
87+
</NavLink>
88+
<NavLink to=\\"/academy/paths\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
89+
<Blueprint2.Icon icon=\\"predictive-analysis\\" />
90+
<div className=\\"navbar-button-text hidden-xs\\">
91+
Paths
92+
</div>
93+
</NavLink>
94+
<NavLink to=\\"/academy/contests\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
95+
<Blueprint2.Icon icon=\\"comparison\\" />
96+
<div className=\\"navbar-button-text hidden-xs\\">
97+
Contests
98+
</div>
99+
</NavLink>
100+
</Blueprint2.NavbarGroup>
101+
<Blueprint2.NavbarGroup align=\\"right\\">
102+
<NavLink to=\\"/academy/grading\\" activeClassName=\\"pt-active\\" className=\\"NavigationBar__link pt-button pt-minimal\\" ariaCurrent=\\"true\\">
103+
<Blueprint2.Icon icon=\\"endorsed\\" />
104+
<div className=\\"navbar-button-text hidden-xs\\">
105+
Grading
106+
</div>
107+
</NavLink>
108+
</Blueprint2.NavbarGroup>
109+
</Blueprint2.Navbar>"
110+
`;

0 commit comments

Comments
 (0)