From 23dc05911cda31355d5072097ab3c5ae9653f364 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Mon, 24 Jul 2023 16:49:10 +0300 Subject: [PATCH] updating test file --- .../services/internet-connection-service.ts | 9 +-- .../tests/internet-connection.service.spec.ts | 56 ++++++++++++++----- .../internet-connection-status.component.ts | 2 +- 3 files changed, 49 insertions(+), 18 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/internet-connection-service.ts b/npm/ng-packs/packages/core/src/lib/services/internet-connection-service.ts index 9fc298386b..ebf15a9a25 100644 --- a/npm/ng-packs/packages/core/src/lib/services/internet-connection-service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/internet-connection-service.ts @@ -6,12 +6,13 @@ import { BehaviorSubject } from 'rxjs'; providedIn: 'root', }) export class InternetConnectionService{ - protected readonly window = inject(DOCUMENT).defaultView; - protected readonly navigator = this.window.navigator; + readonly document = inject(DOCUMENT) + readonly window = this.document.defaultView; + readonly navigator = this.window.navigator; - private status$ = new BehaviorSubject(navigator.onLine) + private status$ = new BehaviorSubject(this.navigator.onLine) - private status = signal(navigator.onLine); + private status = signal(this.navigator.onLine); networkStatus = computed(() => this.status()) diff --git a/npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts index 9181f430d4..c5dc4bb7c5 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts @@ -1,27 +1,57 @@ -import { TestBed } from '@angular/core/testing'; +import { TestBed} from '@angular/core/testing'; +import { DOCUMENT } from '@angular/common'; import { InternetConnectionService } from '../services/internet-connection-service'; -describe('InternetConnectionService', () => { - let service: InternetConnectionService; - const internetConnectionStatus = window.navigator.onLine +let service: InternetConnectionService; + +describe('Internet connection when disconnected', () => { + let mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener: jest.fn()} } beforeEach(() => { - TestBed.configureTestingModule({}); + TestBed.configureTestingModule({ + providers:[{provide:DOCUMENT, useValue: mockDocument}] + }) service = TestBed.inject(InternetConnectionService); }); - it('should be created', () => { - expect(service).toBeTruthy(); + it('document should be created', () => { + expect(service.document).toEqual(mockDocument); }); - it('networkStatus value should be same with current internetConnectionStatus', () => { - expect(service.networkStatus()).toEqual(internetConnectionStatus) + it('signal value should be false', () => { + expect(service.networkStatus()).toEqual(false); }); - it('networkStatus$ return value should be with the current internetConnectionStatus', () => { - service.networkStatus$.subscribe(val=>{ - expect(val).toEqual(internetConnectionStatus) - }) + it('observable value should be false', + (done: any) => { + service.networkStatus$.subscribe(value => { + expect(value).toBe(false) + done(); + }); }); }); + +describe('Internet connection when connected', () => { + let mockDocument = { defaultView: {navigator: {onLine: true}, addEventListener: jest.fn()} } + + beforeEach(() => { + TestBed.configureTestingModule({ + providers:[{provide:DOCUMENT, useValue: mockDocument}] + }) + service = TestBed.inject(InternetConnectionService); + }); + + + it('signal value should be true', () => { + expect(service.networkStatus()).toEqual(true); + }); + + it('observable value should be true', + (done: any) => { + service.networkStatus$.subscribe(value => { + expect(value).toBe(true) + done(); + }); + }); +}); \ No newline at end of file diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts index 5592e748a3..e649555f40 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts @@ -43,5 +43,5 @@ import { InternetConnectionService , LocalizationModule } from '@abp/ng.core'; }) export class InternetConnectionStatusComponent{ internetConnectionService = inject(InternetConnectionService); - isOnline = computed(() => this.internetConnectionService.networkStatus()) + isOnline = this.internetConnectionService.networkStatus }