@@ -33,6 +33,7 @@ describe('HeaderComponent', () => {
33
33
}
34
34
35
35
let cmpDebugElement : DebugElement ;
36
+ let el : Element ;
36
37
37
38
let router : Router ;
38
39
let location : Location ;
@@ -73,6 +74,7 @@ describe('HeaderComponent', () => {
73
74
fixture = TestBed . createComponent ( TestComponent ) ;
74
75
fixture . detectChanges ( ) ;
75
76
cmpDebugElement = fixture . debugElement . query ( By . directive ( HeaderComponent ) ) ;
77
+ el = cmpDebugElement . nativeElement ;
76
78
} ) ;
77
79
} ) ;
78
80
} ;
@@ -89,117 +91,104 @@ describe('HeaderComponent', () => {
89
91
} ) ;
90
92
91
93
it ( 'shows a nav link to home' , fakeAsync ( ( ) => {
92
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.home>a ' ) ;
94
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/home"] ' ) ;
93
95
expect ( link ) . toBeTruthy ( ) ;
94
96
link . click ( ) ;
95
97
advance ( fixture ) ;
96
- expect ( location . path ( ) ) . toEqual ( '/home' ) ;
97
98
expect ( link . parentElement . classList ) . toContain ( 'active' ) ;
98
99
} ) ) ;
99
100
100
101
it ( 'does not show a nav link to top' , ( ) => {
101
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.top>a ' ) ;
102
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/"] .nav-link ' ) ;
102
103
expect ( link ) . toBeNull ( ) ;
103
104
} ) ;
104
105
105
106
it ( 'shows a nav link to users' , fakeAsync ( ( ) => {
106
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.users>a ' ) ;
107
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/users"] ' ) ;
107
108
expect ( link ) . toBeTruthy ( ) ;
108
109
link . click ( ) ;
109
110
advance ( fixture ) ;
110
- expect ( location . path ( ) ) . toEqual ( '/users' ) ;
111
111
expect ( link . parentElement . classList ) . toContain ( 'active' ) ;
112
112
} ) ) ;
113
113
114
114
it ( 'shows a nav link to help' , fakeAsync ( ( ) => {
115
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.help>a ' ) ;
115
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/help"] ' ) ;
116
116
expect ( link ) . toBeTruthy ( ) ;
117
117
link . click ( ) ;
118
118
advance ( fixture ) ;
119
- expect ( location . path ( ) ) . toEqual ( '/help' ) ;
120
119
expect ( link . parentElement . classList ) . toContain ( 'active' ) ;
121
120
} ) ) ;
122
121
123
122
it ( 'shows a nav link to profile' , fakeAsync ( ( ) => {
124
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.profile>a ' ) ;
123
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/users/me"] ' ) ;
125
124
expect ( link ) . toBeTruthy ( ) ;
126
- link . click ( ) ;
127
- advance ( fixture ) ;
128
- expect ( location . path ( ) ) . toEqual ( '/users/me' ) ;
129
125
} ) ) ;
130
126
131
127
describe ( 'navigate to settings' , ( ) => {
132
128
beforeEach ( inject ( [ UserService ] , userService => {
133
129
spyOn ( userService , 'get' ) . and . returnValue ( Observable . of ( { } ) ) ;
134
130
} ) ) ;
135
131
it ( 'shows a nav link to settings' , fakeAsync ( ( ) => {
136
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.settings>a ' ) ;
132
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/users/me/edit"] ' ) ;
137
133
expect ( link ) . toBeTruthy ( ) ;
138
- link . click ( ) ;
139
- advance ( fixture ) ;
140
- expect ( location . path ( ) ) . toEqual ( '/users/me/edit' ) ;
141
134
} ) ) ;
142
135
} ) ;
143
136
144
137
it ( 'shows a nav link to logout' , fakeAsync ( ( ) => {
145
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item. logout>a ' ) ;
138
+ const link = getDOM ( ) . querySelector ( el , 'a. logout' ) ;
146
139
expect ( link ) . toBeTruthy ( ) ;
147
140
spyOn ( authService , 'logout' ) ;
148
141
link . click ( ) ;
149
142
expect ( authService . logout ) . toHaveBeenCalled ( ) ;
150
143
} ) ) ;
151
144
} ) ; // when signed in
152
145
153
- describe ( 'when not signed in' , ( ) => {
146
+ fdescribe ( 'when not signed in' , ( ) => {
154
147
beforeEach ( initComponent ( ) ) ;
155
148
156
149
it ( 'can be shown' , ( ) => {
157
150
expect ( cmpDebugElement ) . toBeTruthy ( ) ;
158
151
} ) ;
159
152
160
153
it ( 'does not show a nav link to home' , ( ) => {
161
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.home>a ' ) ;
154
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/home"] ' ) ;
162
155
expect ( link ) . toBeNull ( ) ;
163
156
} ) ;
164
157
165
158
it ( 'shows a nav link to top' , fakeAsync ( ( ) => {
166
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.top>a ' ) ;
159
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/"] .nav-link ' ) ;
167
160
expect ( link ) . toBeTruthy ( ) ;
168
161
link . click ( ) ;
169
162
advance ( fixture ) ;
170
- expect ( location . path ( ) ) . toEqual ( '/ ') ;
163
+ expect ( link . parentElement . classList ) . toContain ( 'active ') ;
171
164
} ) ) ;
172
165
173
166
it ( 'does not show a nav link to users' , ( ) => {
174
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.users>a ' ) ;
167
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/users"] ' ) ;
175
168
expect ( link ) . toBeNull ( ) ;
176
169
} ) ;
177
170
178
171
it ( 'shows a nav link to help' , fakeAsync ( ( ) => {
179
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.help>a ' ) ;
172
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/help"] ' ) ;
180
173
expect ( link ) . toBeTruthy ( ) ;
181
174
link . click ( ) ;
182
175
advance ( fixture ) ;
183
- expect ( location . path ( ) ) . toEqual ( '/help' ) ;
184
176
expect ( link . parentElement . classList ) . toContain ( 'active' ) ;
185
177
} ) ) ;
186
178
187
179
it ( 'does not show a nav link to profile' , ( ) => {
188
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.profile>a ' ) ;
180
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/users/me"] ' ) ;
189
181
expect ( link ) . toBeNull ( ) ;
190
182
} ) ;
191
183
192
184
it ( 'does not show a nav link to settings' , ( ) => {
193
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.settings>a ' ) ;
185
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/users/me/edit"] ' ) ;
194
186
expect ( link ) . toBeNull ( ) ;
195
187
} ) ;
196
188
197
189
it ( 'shows a nav link to sign in' , fakeAsync ( ( ) => {
198
- const link = getDOM ( ) . querySelector ( cmpDebugElement . nativeElement , '.nav-item.login>a ' ) ;
190
+ const link = getDOM ( ) . querySelector ( el , 'a[href="/login"] ' ) ;
199
191
expect ( link ) . toBeTruthy ( ) ;
200
- link . click ( ) ;
201
- advance ( fixture ) ;
202
- expect ( location . path ( ) ) . toEqual ( '/login' ) ;
203
192
} ) ) ;
204
193
} ) ; // when not signed in
205
194
0 commit comments