7
7
*/
8
8
import { TestBed , inject , fakeAsync , tick } from '@angular/core/testing' ;
9
9
import { Observable } from 'rxjs' ;
10
- import { filter } from 'rxjs/operators' ;
10
+ import { switchMap } from 'rxjs/operators' ;
11
11
12
12
import { BreakPoint } from '../breakpoints/break-point' ;
13
13
import { BREAKPOINTS } from '../breakpoints/break-points-token' ;
@@ -20,7 +20,7 @@ import {DEFAULT_CONFIG, LAYOUT_CONFIG} from '../tokens/library-config';
20
20
21
21
describe ( 'media-observer' , ( ) => {
22
22
let knownBreakPoints : BreakPoint [ ] = [ ] ;
23
- let media$ : Observable < MediaChange > ;
23
+ let media$ : Observable < MediaChange [ ] > ;
24
24
let mediaObserver : MediaObserver ;
25
25
let mediaController : MockMatchMedia ;
26
26
const activateQuery = ( alias : string , useOverlaps ?: boolean ) => {
@@ -42,7 +42,7 @@ describe('media-observer', () => {
42
42
mediaObserver = _mediaObserver ;
43
43
mediaController = _mediaController ;
44
44
45
- media$ = _mediaObserver . media$ ;
45
+ media$ = _mediaObserver . asObservable ( ) ;
46
46
} ) ) ;
47
47
48
48
afterEach ( ( ) => {
@@ -53,8 +53,8 @@ describe('media-observer', () => {
53
53
let findMediaQuery : ( alias : string ) => string = ( alias ) => {
54
54
const NOT_FOUND = `${ alias } not found` ;
55
55
return knownBreakPoints . reduce ( ( mediaQuery : string | null , bp ) => {
56
- return mediaQuery || ( ( bp . alias === alias ) ? bp . mediaQuery : null ) ;
57
- } , null ) as string || NOT_FOUND ;
56
+ return mediaQuery ?? ( ( bp . alias === alias ) ? bp . mediaQuery : null ) ;
57
+ } , null ) as string ?? NOT_FOUND ;
58
58
} ;
59
59
it ( 'can supports the `.isActive()` API' , ( ) => {
60
60
expect ( media$ ) . toBeDefined ( ) ;
@@ -75,7 +75,7 @@ describe('media-observer', () => {
75
75
let count = 0 ,
76
76
onlyMd = ( change : MediaChange ) => ( change . mqAlias == 'md' ) ,
77
77
subscription = media$
78
- . pipe ( filter ( onlyMd ) )
78
+ . pipe ( switchMap ( changes => changes . filter ( onlyMd ) ) )
79
79
. subscribe ( _ => {
80
80
count += 1 ;
81
81
} ) ;
@@ -123,9 +123,9 @@ describe('media-observer', () => {
123
123
} ) ) ;
124
124
125
125
it ( 'can subscribe to built-in mediaQueries' , fakeAsync ( ( ) => {
126
- let current : MediaChange = new MediaChange ( true ) ;
127
- let subscription = media$ . subscribe ( ( change : MediaChange ) => {
128
- current = change ;
126
+ let current : MediaChange [ ] = [ new MediaChange ( true ) ] ;
127
+ let subscription = media$ . subscribe ( ( changes : MediaChange [ ] ) => {
128
+ current = changes ;
129
129
} ) ;
130
130
131
131
expect ( media$ ) . toBeDefined ( ) ;
@@ -134,8 +134,8 @@ describe('media-observer', () => {
134
134
135
135
// Confirm initial match is for 'all'
136
136
expect ( current ) . toBeDefined ( ) ;
137
- expect ( current . matches ) . toBeTruthy ( ) ;
138
- expect ( current . mediaQuery ) . toEqual ( 'all' ) ;
137
+ expect ( current [ 0 ] . matches ) . toBeTruthy ( ) ;
138
+ expect ( current [ 0 ] . mediaQuery ) . toEqual ( 'all' ) ;
139
139
140
140
try {
141
141
// Allow overlapping activations to be announced to observers
@@ -144,53 +144,53 @@ describe('media-observer', () => {
144
144
145
145
// Activate mediaQuery associated with 'md' alias
146
146
activateQuery ( 'md' ) ;
147
- expect ( current . mediaQuery ) . toEqual ( findMediaQuery ( 'md' ) ) ;
147
+ expect ( current [ 0 ] . mediaQuery ) . toEqual ( findMediaQuery ( 'md' ) ) ;
148
148
149
149
activateQuery ( 'gt-lg' ) ;
150
- expect ( current . mediaQuery ) . toEqual ( findMediaQuery ( 'gt-lg' ) ) ;
150
+ expect ( current [ 0 ] . mediaQuery ) . toEqual ( findMediaQuery ( 'gt-lg' ) ) ;
151
151
} finally {
152
152
mediaController . autoRegisterQueries = true ;
153
153
subscription . unsubscribe ( ) ;
154
154
}
155
155
} ) ) ;
156
156
157
157
it ( 'can `.unsubscribe()` properly' , fakeAsync ( ( ) => {
158
- let current : MediaChange = new MediaChange ( true ) ;
159
- let subscription = media$ . subscribe ( ( change : MediaChange ) => {
160
- current = change ;
158
+ let current : MediaChange [ ] = [ new MediaChange ( true ) ] ;
159
+ let subscription = media$ . subscribe ( ( changes : MediaChange [ ] ) => {
160
+ current = changes ;
161
161
} ) ;
162
162
163
163
// Activate mediaQuery associated with 'md' alias
164
164
activateQuery ( 'md' ) ;
165
- expect ( current . mediaQuery ) . toEqual ( findMediaQuery ( 'md' ) ) ;
165
+ expect ( current [ 0 ] . mediaQuery ) . toEqual ( findMediaQuery ( 'md' ) ) ;
166
166
167
167
// Un-subscribe
168
168
subscription . unsubscribe ( ) ;
169
169
170
170
activateQuery ( 'lg' ) ;
171
- expect ( current . mqAlias ) . toBe ( 'md' ) ;
171
+ expect ( current [ 0 ] . mqAlias ) . toBe ( 'md' ) ;
172
172
173
173
activateQuery ( 'xs' ) ;
174
- expect ( current . mqAlias ) . toBe ( 'md' ) ;
174
+ expect ( current [ 0 ] . mqAlias ) . toBe ( 'md' ) ;
175
175
176
176
mediaController . clearAll ( ) ;
177
177
} ) ) ;
178
178
179
179
it ( 'can observe a startup activation of XS' , fakeAsync ( ( ) => {
180
- let current : MediaChange = new MediaChange ( true ) ;
181
- let subscription = media$ . subscribe ( ( change : MediaChange ) => {
182
- current = change ;
180
+ let current : MediaChange [ ] = [ new MediaChange ( true ) ] ;
181
+ let subscription = media$ . subscribe ( ( changes : MediaChange [ ] ) => {
182
+ current = changes ;
183
183
} ) ;
184
184
185
185
// Activate mediaQuery associated with 'md' alias
186
186
activateQuery ( 'xs' ) ;
187
- expect ( current . mediaQuery ) . toEqual ( findMediaQuery ( 'xs' ) ) ;
187
+ expect ( current [ 0 ] . mediaQuery ) . toEqual ( findMediaQuery ( 'xs' ) ) ;
188
188
189
189
// Un-subscribe
190
190
subscription . unsubscribe ( ) ;
191
191
192
192
activateQuery ( 'lg' ) ;
193
- expect ( current . mqAlias ) . toBe ( 'xs' ) ;
193
+ expect ( current [ 0 ] . mqAlias ) . toBe ( 'xs' ) ;
194
194
195
195
mediaController . clearAll ( ) ;
196
196
} ) ) ;
@@ -222,7 +222,7 @@ describe('media-observer', () => {
222
222
mediaObserver = _mediaObserver ;
223
223
mediaController = _mediaController ;
224
224
225
- media$ = _mediaObserver . media$ ;
225
+ media$ = _mediaObserver . asObservable ( ) ;
226
226
} ) ) ;
227
227
228
228
afterEach ( ( ) => {
@@ -278,25 +278,25 @@ describe('media-observer', () => {
278
278
mediaObserver = _mediaObserver ;
279
279
mediaController = _mediaController ;
280
280
281
- media$ = _mediaObserver . media$ ;
281
+ media$ = _mediaObserver . asObservable ( ) ;
282
282
} ) ) ;
283
283
284
284
it ( 'can activate when configured with "md" alias' , fakeAsync ( ( ) => {
285
- let current : MediaChange = new MediaChange ( true ) ;
286
- let subscription = media$ . subscribe ( ( change : MediaChange ) => {
287
- current = change ;
285
+ let current : MediaChange [ ] = [ new MediaChange ( true ) ] ;
286
+ let subscription = media$ . subscribe ( ( changes : MediaChange [ ] ) => {
287
+ current = changes ;
288
288
} ) ;
289
289
290
290
try {
291
291
activateQuery ( 'lg' ) ;
292
292
293
293
// Activate mediaQuery associated with 'md' alias
294
294
activateQuery ( 'print' ) ;
295
- expect ( current . mqAlias ) . toBe ( 'md' ) ;
296
- expect ( current . mediaQuery ) . toEqual ( mdMediaQuery ) ;
295
+ expect ( current [ 0 ] . mqAlias ) . toBe ( 'md' ) ;
296
+ expect ( current [ 0 ] . mediaQuery ) . toEqual ( mdMediaQuery ) ;
297
297
298
298
activateQuery ( 'sm' ) ;
299
- expect ( current . mqAlias ) . toBe ( 'sm' ) ;
299
+ expect ( current [ 0 ] . mqAlias ) . toBe ( 'sm' ) ;
300
300
301
301
} finally {
302
302
subscription . unsubscribe ( ) ;
@@ -323,30 +323,30 @@ describe('media-observer', () => {
323
323
mediaObserver = _mediaObserver ;
324
324
mediaController = _mediaController ;
325
325
326
- media$ = _mediaObserver . media$ ;
326
+ media$ = _mediaObserver . asObservable ( ) ;
327
327
} ) ) ;
328
328
329
329
afterEach ( ( ) => {
330
330
mediaController . clearAll ( ) ;
331
331
} ) ;
332
332
333
333
it ( 'will skip print activation without alias' , fakeAsync ( ( ) => {
334
- let current : MediaChange = new MediaChange ( true ) ;
335
- let subscription = media$ . subscribe ( ( change : MediaChange ) => {
336
- current = change ;
334
+ let current : MediaChange [ ] = [ new MediaChange ( true ) ] ;
335
+ let subscription = media$ . subscribe ( ( changes : MediaChange [ ] ) => {
336
+ current = changes ;
337
337
} ) ;
338
338
339
339
try {
340
340
activateQuery ( 'sm' ) ;
341
- expect ( current . mqAlias ) . toBe ( 'sm' ) ;
341
+ expect ( current [ 0 ] . mqAlias ) . toBe ( 'sm' ) ;
342
342
343
343
// Activate mediaQuery associated with 'md' alias
344
344
activateQuery ( 'print' ) ;
345
- expect ( current . mqAlias ) . toBe ( 'sm' ) ;
346
- expect ( current . mediaQuery ) . toEqual ( smMediaQuery ) ;
345
+ expect ( current [ 0 ] . mqAlias ) . toBe ( 'sm' ) ;
346
+ expect ( current [ 0 ] . mediaQuery ) . toEqual ( smMediaQuery ) ;
347
347
348
348
activateQuery ( 'xl' ) ;
349
- expect ( current . mqAlias ) . toBe ( 'xl' ) ;
349
+ expect ( current [ 0 ] . mqAlias ) . toBe ( 'xl' ) ;
350
350
351
351
} finally {
352
352
subscription . unsubscribe ( ) ;
0 commit comments