|
1 |
| -import { TestBed } from '@angular/core/testing'; |
| 1 | +import { fakeAsync, TestBed, tick } from '@angular/core/testing'; |
2 | 2 |
|
3 | 3 | import { BackdropService } from './backdrop.service';
|
| 4 | +import { DOCUMENT } from '@angular/common'; |
4 | 5 |
|
5 | 6 | describe('BackdropService', () => {
|
6 | 7 | let service: BackdropService;
|
| 8 | + let document: Document; |
| 9 | + let backdrop: any; |
7 | 10 |
|
8 | 11 | beforeEach(() => {
|
9 | 12 | TestBed.configureTestingModule({});
|
10 | 13 | service = TestBed.inject(BackdropService);
|
| 14 | + document = TestBed.inject(DOCUMENT); |
11 | 15 | });
|
12 | 16 |
|
| 17 | + afterAll(() => { |
| 18 | + expect(document.querySelector('.modal-backdrop')).toBeNull(); |
| 19 | + }, 500); |
| 20 | + |
13 | 21 | it('should be created', () => {
|
14 | 22 | expect(service).toBeTruthy();
|
15 | 23 | });
|
| 24 | + |
| 25 | + it('should set backdrop', fakeAsync(() => { |
| 26 | + // expect(service.scrollbarWidth).toBe('0px'); |
| 27 | + expect(document.querySelector('.modal-backdrop')).toBeNull(); |
| 28 | + backdrop = service.setBackdrop(); |
| 29 | + tick(); |
| 30 | + expect(document.querySelector('.modal-backdrop')).not.toBeNull(); |
| 31 | + expect(backdrop).toHaveClass('modal-backdrop'); |
| 32 | + expect(backdrop).toHaveClass('fade'); |
| 33 | + expect(backdrop).toHaveClass('show'); |
| 34 | + service.clearBackdrop(backdrop); |
| 35 | + expect(backdrop).not.toHaveClass('show'); |
| 36 | + expect(document.querySelector('.modal-backdrop')).not.toBeNull(); |
| 37 | + })); |
| 38 | + |
| 39 | + it('should hide scrollbar', () => { |
| 40 | + service.hideScrollbar(); |
| 41 | + expect(document.body.style.overflow).toBe('hidden'); |
| 42 | + // expect(document.body.style.paddingRight).toBe('0px'); |
| 43 | + }); |
| 44 | + |
| 45 | + it('should reset scrollbar', () => { |
| 46 | + service.resetScrollbar(); |
| 47 | + expect(document.body.style.overflow).not.toBe('hidden'); |
| 48 | + }); |
| 49 | + |
| 50 | + it('should emit backdrop click', fakeAsync(() => { |
| 51 | + backdrop = service.setBackdrop(); |
| 52 | + tick(); |
| 53 | + service.backdropClick$.subscribe((value) => { |
| 54 | + expect(value).toBeTrue(); |
| 55 | + }); |
| 56 | + backdrop.dispatchEvent(new MouseEvent('click')); |
| 57 | + service.clearBackdrop(backdrop); |
| 58 | + })); |
16 | 59 | });
|
0 commit comments