From dc04ad9757def8a3b664e66b69888210e19b380f Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Tue, 25 Jul 2023 22:44:28 +0300 Subject: [PATCH] updating test file --- .../tests/internet-connection.service.spec.ts | 85 +++++++++---------- 1 file changed, 38 insertions(+), 47 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 97f009d931..b4809471eb 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 @@ -12,7 +12,6 @@ describe('Internet connection when disconnected', () => { events[event] = callback; }); const mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener } } - beforeAll(() => { TestBed.configureTestingModule({ providers:[{provide:DOCUMENT, useValue: mockDocument}] @@ -36,74 +35,66 @@ describe('Internet connection when disconnected', () => { }); }); - test.each(['offline',"online"])('should addEventListener for "%i",event',(v)=>{ + test.each(['offline','online'])('should addEventListener for %p, event',(v)=>{ expect(events[v]).toBeTruthy() }) - test.each([['offline',false],["online",true]])('should called %i, then value must be %i',(eventName,value)=>{ + test.each([['offline',false],["online",true]])('when %p called ,then signal value must be %p',(eventName,value)=>{ events[eventName]() expect(service.networkStatus()).toEqual(value); }) + test.each([['offline',false],["online",true]])('when %p called,then observable must return %p',(eventName,value)=>{ + events[eventName]() + service.networkStatus$.subscribe(val=>{ + expect(val).toEqual(value) + }) + }) }); -describe('Internet connection when connected', () => { - const mockDocument = { defaultView: {navigator: {onLine: true}, addEventListener: jest.fn()} } - - beforeEach(() => { +describe('when connection value changes for signals', () => { + 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}] }) service = TestBed.inject(InternetConnectionService); }); - it('signal value should be true', () => { + it('signal value must be false when offline event is called while internet is connected', () => { + events['online']() expect(service.networkStatus()).toEqual(true); + events['offline']() + expect(service.networkStatus()).toEqual(false); }); - it('observable value should be true', - (done: any) => { - service.networkStatus$.pipe(first()).subscribe(value => { - expect(value).toBe(true) - done(); - }); + it('signal value must be true when online event is called while internet is disconnected', () => { + events['offline']() + expect(service.networkStatus()).toEqual(false); + events['online']() + expect(service.networkStatus()).toEqual(true); }); -}); - -describe('when connection value changes', () => { - const mockDocument = { defaultView: {navigator: {onLine: true}, addEventListener: (eventName,cb)=>{ - window.addEventListener(eventName,cb) - }, dispatchEvent: function(){ - this.navigator.onLine = !this.navigator.onLine - }}} - beforeEach(() => { - TestBed.configureTestingModule({ - providers:[{provide:DOCUMENT, useValue: mockDocument}] + it('observable value must be false when offline event is called while internet is connected', (done:any) => { + events['online']() + events['offline']() + service.networkStatus$.subscribe(val=>{ + expect(val).toEqual(false) + done() }) - service = TestBed.inject(InternetConnectionService); }); - it('check is signal value changes', () => { - expect(service.networkStatus()).toEqual(true); - const event = new Event("offline"); - service.window.dispatchEvent(event) - service.setStatus(service.window.navigator.onLine) - expect(service.networkStatus()).toEqual(false); - }); - - it('check is observable value changes',(done: any) => { - const event = new Event("online"); - service.window.dispatchEvent(event) - service.networkStatus$.pipe(first()).subscribe(value => { - expect(value).toEqual(true) - done() - }); - service.window.dispatchEvent(event) - service.setStatus(service.window.navigator.onLine) - service.networkStatus$.pipe().subscribe(value => { - expect(value).toEqual(false) + it('observable value must be true when online event is called while internet is disconnected', (done:any) => { + events['offline']() + events['online']() + service.networkStatus$.subscribe(val=>{ + console.log(val); + expect(val).toEqual(true) done() - }); + }) }); -}); +}); \ No newline at end of file