Browse Source

Add example test

pull/17054/head
Mahmut Gundogdu 3 years ago
parent
commit
0f9d77351a
  1. 35
      npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts

35
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 { DOCUMENT } from '@angular/common';
import { InternetConnectionService } from '../services/internet-connection-service'; import { InternetConnectionService } from '../services/internet-connection-service';
import { BehaviorSubject, first, of, takeLast } from 'rxjs'; import { first } from 'rxjs';
import { computed, signal } from '@angular/core';
let service: InternetConnectionService; let service: InternetConnectionService;
describe('Internet connection when disconnected', () => { describe('Internet connection when disconnected', () => {
let mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener: jest.fn()} } const events = {};
const addEventListener = jest.fn((event, callback) => {
beforeEach(() => { events[event] = callback;
});
const mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener } }
beforeAll(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
providers:[{provide:DOCUMENT, useValue: mockDocument}] providers:[{provide:DOCUMENT, useValue: mockDocument}]
}) })
@ -32,11 +35,21 @@ describe('Internet connection when disconnected', () => {
done(); 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', () => { describe('Internet connection when connected', () => {
let mockDocument = { defaultView: {navigator: {onLine: true}, addEventListener: jest.fn()} } const mockDocument = { defaultView: {navigator: {onLine: true}, addEventListener: jest.fn()} }
beforeEach(() => { beforeEach(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
providers:[{provide:DOCUMENT, useValue: mockDocument}] providers:[{provide:DOCUMENT, useValue: mockDocument}]
@ -58,9 +71,9 @@ describe('Internet connection when connected', () => {
}); });
describe('when connection value changes', () => { 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) window.addEventListener(eventName,cb)
}, dispatchEvent: function(event){ }, dispatchEvent: function(){
this.navigator.onLine = !this.navigator.onLine this.navigator.onLine = !this.navigator.onLine
}}} }}}
@ -70,7 +83,7 @@ describe('when connection value changes', () => {
}) })
service = TestBed.inject(InternetConnectionService); service = TestBed.inject(InternetConnectionService);
}); });
it('check is signal value changes', () => { it('check is signal value changes', () => {
expect(service.networkStatus()).toEqual(true); expect(service.networkStatus()).toEqual(true);
const event = new Event("offline"); const event = new Event("offline");
@ -93,4 +106,4 @@ describe('when connection value changes', () => {
done() done()
}); });
}); });
}); });

Loading…
Cancel
Save