From 0f9d77351a4617e41d8d554494112279b93a2d5e Mon Sep 17 00:00:00 2001 From: Mahmut Gundogdu Date: Tue, 25 Jul 2023 15:01:24 +0300 Subject: [PATCH] Add example test --- .../tests/internet-connection.service.spec.ts | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) 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 31a63f9006..97f009d931 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 @@ -2,15 +2,18 @@ import { TestBed} from '@angular/core/testing'; import { DOCUMENT } from '@angular/common'; import { InternetConnectionService } from '../services/internet-connection-service'; -import { BehaviorSubject, first, of, takeLast } from 'rxjs'; -import { computed, signal } from '@angular/core'; +import { first } from 'rxjs'; let service: InternetConnectionService; describe('Internet connection when disconnected', () => { - let mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener: jest.fn()} } - - beforeEach(() => { + const events = {}; + const addEventListener = jest.fn((event, callback) => { + events[event] = callback; + }); + const mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener } } + + beforeAll(() => { TestBed.configureTestingModule({ providers:[{provide:DOCUMENT, useValue: mockDocument}] }) @@ -32,11 +35,21 @@ describe('Internet connection when disconnected', () => { done(); }); }); + + test.each(['offline',"online"])('should addEventListener for "%i",event',(v)=>{ + expect(events[v]).toBeTruthy() + }) + + test.each([['offline',false],["online",true]])('should called %i, then value must be %i',(eventName,value)=>{ + events[eventName]() + expect(service.networkStatus()).toEqual(value); + }) + }); describe('Internet connection when connected', () => { - let mockDocument = { defaultView: {navigator: {onLine: true}, addEventListener: jest.fn()} } - + const mockDocument = { defaultView: {navigator: {onLine: true}, addEventListener: jest.fn()} } + beforeEach(() => { TestBed.configureTestingModule({ providers:[{provide:DOCUMENT, useValue: mockDocument}] @@ -58,9 +71,9 @@ describe('Internet connection when connected', () => { }); describe('when connection value changes', () => { - let mockDocument = { defaultView: {navigator: {onLine: true}, addEventListener: (eventName,cb)=>{ + const mockDocument = { defaultView: {navigator: {onLine: true}, addEventListener: (eventName,cb)=>{ window.addEventListener(eventName,cb) - }, dispatchEvent: function(event){ + }, dispatchEvent: function(){ this.navigator.onLine = !this.navigator.onLine }}} @@ -70,7 +83,7 @@ describe('when connection value changes', () => { }) service = TestBed.inject(InternetConnectionService); }); - + it('check is signal value changes', () => { expect(service.networkStatus()).toEqual(true); const event = new Event("offline"); @@ -93,4 +106,4 @@ describe('when connection value changes', () => { done() }); }); -}); \ No newline at end of file +});