Skip to content

Commit e86219c

Browse files
committed
refactor: use class for fake scroll strategy
1 parent a87a542 commit e86219c

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

src/lib/core/overlay/overlay.spec.ts

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {TemplatePortal, ComponentPortal} from '../portal/portal';
55
import {Overlay} from './overlay';
66
import {OverlayContainer} from './overlay-container';
77
import {OverlayState} from './overlay-state';
8+
import {OverlayRef} from './overlay-ref';
89
import {PositionStrategy} from './position/position-strategy';
910
import {OverlayModule} from './overlay-directives';
1011
import {ScrollStrategy} from './scroll/scroll-strategy';
@@ -298,46 +299,44 @@ describe('Overlay', () => {
298299
});
299300

300301
describe('scroll strategy', () => {
301-
let fakeScrollStrategy: ScrollStrategy;
302+
let fakeScrollStrategy: FakeScrollStrategy;
302303
let config: OverlayState;
303304

304305
beforeEach(() => {
305306
config = new OverlayState();
306-
fakeScrollStrategy = {
307-
attach: jasmine.createSpy('attach spy'),
308-
enable: jasmine.createSpy('enable spy'),
309-
disable: jasmine.createSpy('disable spy')
310-
};
307+
fakeScrollStrategy = new FakeScrollStrategy();
311308
config.scrollStrategy = fakeScrollStrategy;
312309
});
313310

314311
it('should attach the overlay ref to the scroll strategy', () => {
315312
let overlayRef = overlay.create(config);
316313

317-
expect(fakeScrollStrategy.attach).toHaveBeenCalledWith(overlayRef);
314+
expect(fakeScrollStrategy.overlayRef).toBe(overlayRef,
315+
'Expected scroll strategy to have been attached to the current overlay ref.');
318316
});
319317

320318
it('should enable the scroll strategy when the overlay is attached', () => {
321319
let overlayRef = overlay.create(config);
322320

323321
overlayRef.attach(componentPortal);
324-
expect(fakeScrollStrategy.enable).toHaveBeenCalled();
322+
expect(fakeScrollStrategy.isEnabled).toBe(true, 'Expected scroll strategy to be enabled.');
325323
});
326324

327325
it('should disable the scroll strategy once the overlay is detached', () => {
328326
let overlayRef = overlay.create(config);
329327

330328
overlayRef.attach(componentPortal);
331-
overlayRef.detach();
329+
expect(fakeScrollStrategy.isEnabled).toBe(true, 'Expected scroll strategy to be enabled.');
332330

333-
expect(fakeScrollStrategy.disable).toHaveBeenCalled();
331+
overlayRef.detach();
332+
expect(fakeScrollStrategy.isEnabled).toBe(false, 'Expected scroll strategy to be disabled.');
334333
});
335334

336335
it('should disable the scroll strategy when the overlay is destroyed', () => {
337336
let overlayRef = overlay.create(config);
338337

339338
overlayRef.dispose();
340-
expect(fakeScrollStrategy.disable).toHaveBeenCalled();
339+
expect(fakeScrollStrategy.isEnabled).toBe(false, 'Expected scroll strategy to be disabled.');
341340
});
342341
});
343342
});
@@ -410,3 +409,19 @@ class FakePositionStrategy implements PositionStrategy {
410409
dispose() {}
411410
}
412411

412+
class FakeScrollStrategy implements ScrollStrategy {
413+
isEnabled = false;
414+
overlayRef: OverlayRef;
415+
416+
attach(overlayRef: OverlayRef) {
417+
this.overlayRef = overlayRef;
418+
}
419+
420+
enable() {
421+
this.isEnabled = true;
422+
}
423+
424+
disable() {
425+
this.isEnabled = false;
426+
}
427+
}

0 commit comments

Comments
 (0)