Browse Source

updating test file

pull/17054/head
Sinan997 3 years ago
parent
commit
dc04ad9757
  1. 85
      npm/ng-packs/packages/core/src/lib/tests/internet-connection.service.spec.ts

85
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; events[event] = callback;
}); });
const mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener } } const mockDocument = { defaultView: {navigator: {onLine: false}, addEventListener } }
beforeAll(() => { beforeAll(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
providers:[{provide:DOCUMENT, useValue: mockDocument}] 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() 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]() events[eventName]()
expect(service.networkStatus()).toEqual(value); 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', () => { describe('when connection value changes for signals', () => {
const mockDocument = { defaultView: {navigator: {onLine: true}, 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}]
}) })
service = TestBed.inject(InternetConnectionService); 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); expect(service.networkStatus()).toEqual(true);
events['offline']()
expect(service.networkStatus()).toEqual(false);
}); });
it('observable value should be true', it('signal value must be true when online event is called while internet is disconnected', () => {
(done: any) => { events['offline']()
service.networkStatus$.pipe(first()).subscribe(value => { expect(service.networkStatus()).toEqual(false);
expect(value).toBe(true) events['online']()
done(); 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(() => { it('observable value must be false when offline event is called while internet is connected', (done:any) => {
TestBed.configureTestingModule({ events['online']()
providers:[{provide:DOCUMENT, useValue: mockDocument}] events['offline']()
service.networkStatus$.subscribe(val=>{
expect(val).toEqual(false)
done()
}) })
service = TestBed.inject(InternetConnectionService);
}); });
it('check is signal value changes', () => { it('observable value must be true when online event is called while internet is disconnected', (done:any) => {
expect(service.networkStatus()).toEqual(true); events['offline']()
const event = new Event("offline"); events['online']()
service.window.dispatchEvent(event) service.networkStatus$.subscribe(val=>{
service.setStatus(service.window.navigator.onLine) console.log(val);
expect(service.networkStatus()).toEqual(false); expect(val).toEqual(true)
});
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)
done() done()
}); })
}); });
}); });
Loading…
Cancel
Save