mirror of https://github.com/abpframework/abp.git
34 changed files with 356 additions and 339 deletions
@ -1,100 +1,100 @@ |
|||
import { TestBed} from '@angular/core/testing'; |
|||
import { DOCUMENT } from '@angular/common'; |
|||
|
|||
import { InternetConnectionService } from '../services/internet-connection-service'; |
|||
import { first } from 'rxjs'; |
|||
|
|||
let service: InternetConnectionService; |
|||
|
|||
describe('Internet connection when disconnected', () => { |
|||
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('document should be created', () => { |
|||
expect(service.document).toEqual(mockDocument); |
|||
}); |
|||
|
|||
it('signal value should be false', () => { |
|||
expect(service.networkStatus()).toEqual(false); |
|||
}); |
|||
|
|||
it('observable value should be false', |
|||
(done: any) => { |
|||
service.networkStatus$.pipe(first()).subscribe(value => { |
|||
expect(value).toBe(false) |
|||
done(); |
|||
}); |
|||
}); |
|||
|
|||
test.each(['offline','online'])('should addEventListener for %p, event',(v)=>{ |
|||
expect(events[v]).toBeTruthy() |
|||
}) |
|||
|
|||
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('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 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('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); |
|||
}); |
|||
|
|||
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() |
|||
}) |
|||
}); |
|||
|
|||
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() |
|||
}) |
|||
}); |
|||
import { TestBed} from '@angular/core/testing'; |
|||
import { DOCUMENT } from '@angular/common'; |
|||
|
|||
import { InternetConnectionService } from '../services/internet-connection-service'; |
|||
import { first , firstValueFrom } from 'rxjs'; |
|||
|
|||
let service: InternetConnectionService; |
|||
|
|||
describe('Internet connection when disconnected', () => { |
|||
const events = {}; |
|||
const addEventListener = vi.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('document should be created', () => { |
|||
expect(service.document).toEqual(mockDocument); |
|||
}); |
|||
|
|||
it('signal value should be false', () => { |
|||
expect(service.networkStatus()).toEqual(false); |
|||
}); |
|||
|
|||
it('observable value should be false', |
|||
(done: any) => { |
|||
service.networkStatus$.pipe(first()).subscribe(value => { |
|||
expect(value).toBe(false) |
|||
done(); |
|||
}); |
|||
}); |
|||
|
|||
test.each(['offline','online'])('should addEventListener for %p, event',(v)=>{ |
|||
expect(events[v]).toBeTruthy() |
|||
}) |
|||
|
|||
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('when connection value changes for signals', () => { |
|||
const events = {}; |
|||
const addEventListener = vi.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 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('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); |
|||
}); |
|||
|
|||
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() |
|||
}) |
|||
}); |
|||
|
|||
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() |
|||
}) |
|||
}); |
|||
}); |
|||
@ -1,55 +1,55 @@ |
|||
import { Component, DebugElement } from '@angular/core' |
|||
import { ComponentFixture, TestBed } from '@angular/core/testing' |
|||
import { ShowPasswordDirective } from '../directives'; |
|||
import { By } from '@angular/platform-browser'; |
|||
|
|||
@Component({ |
|||
standalone:true, |
|||
template: ` |
|||
<input [abpShowPassword]="true"> |
|||
<input [abpShowPassword]="false"> |
|||
<input /> |
|||
<input [abpShowPassword]="showPassword" />`,
|
|||
imports:[ShowPasswordDirective] |
|||
}) |
|||
class TestComponent { |
|||
showPassword = false |
|||
} |
|||
|
|||
describe('ShowPasswordDirective',()=>{ |
|||
let fixture: ComponentFixture<TestComponent>;; |
|||
let des : DebugElement[]; |
|||
let desAll : DebugElement[]; |
|||
let bareInput; |
|||
|
|||
beforeEach(()=>{ |
|||
fixture = TestBed.configureTestingModule({ |
|||
imports: [ TestComponent ] |
|||
}).createComponent(TestComponent) |
|||
|
|||
fixture.detectChanges(); |
|||
|
|||
des = fixture.debugElement.queryAll(By.directive(ShowPasswordDirective)); |
|||
|
|||
desAll = fixture.debugElement.queryAll(By.all()); |
|||
|
|||
bareInput = fixture.debugElement.query(By.css('input:not([abpShowPassword])')); |
|||
}) |
|||
|
|||
it('should have three input has ShowPasswordDirective elements', () => { |
|||
expect(des.length).toBe(3); |
|||
}); |
|||
|
|||
test.each([[0,'text'],[1,'password'],[2,'text'],[3,'password']])('%p. input type must be %p)', (index,inpType) => { |
|||
const inputType = desAll[index].nativeElement.type; |
|||
expect(inputType).toBe(inpType); |
|||
}); |
|||
|
|||
it('should have three input has ShowPasswordDirective elements', () => { |
|||
const input = des[2].nativeElement |
|||
expect(input.type).toBe('password') |
|||
fixture.componentInstance.showPassword = true |
|||
fixture.detectChanges() |
|||
expect(input.type).toBe('text') |
|||
}); |
|||
import { Component, DebugElement } from '@angular/core' |
|||
import { ComponentFixture, TestBed } from '@angular/core/testing' |
|||
import { ShowPasswordDirective } from '../directives'; |
|||
import { By } from '@angular/platform-browser'; |
|||
|
|||
@Component({ |
|||
standalone:true, |
|||
template: ` |
|||
<input [abpShowPassword]="true"> |
|||
<input [abpShowPassword]="false"> |
|||
<input /> |
|||
<input [abpShowPassword]="showPassword" />`,
|
|||
imports:[ShowPasswordDirective] |
|||
}) |
|||
class TestComponent { |
|||
showPassword = false |
|||
} |
|||
|
|||
describe('ShowPasswordDirective',()=>{ |
|||
let fixture: ComponentFixture<TestComponent>;; |
|||
let des : DebugElement[]; |
|||
let desAll : DebugElement[]; |
|||
let bareInput; |
|||
|
|||
beforeEach(()=>{ |
|||
fixture = TestBed.configureTestingModule({ |
|||
imports: [ TestComponent ] |
|||
}).createComponent(TestComponent) |
|||
|
|||
fixture.detectChanges(); |
|||
|
|||
des = fixture.debugElement.queryAll(By.directive(ShowPasswordDirective)); |
|||
|
|||
desAll = fixture.debugElement.queryAll(By.all()); |
|||
|
|||
bareInput = fixture.debugElement.query(By.css('input:not([abpShowPassword])')); |
|||
}) |
|||
|
|||
it('should have three input has ShowPasswordDirective elements', () => { |
|||
expect(des.length).toBe(3); |
|||
}); |
|||
|
|||
test.each([[0,'text'],[1,'password'],[2,'text'],[3,'password']])('%p. input type must be %p)', (index,inpType) => { |
|||
const inputType = desAll[index].nativeElement.type; |
|||
expect(inputType).toBe(inpType); |
|||
}); |
|||
|
|||
it('should have three input has ShowPasswordDirective elements', () => { |
|||
const input = des[2].nativeElement |
|||
expect(input.type).toBe('password') |
|||
fixture.componentInstance.showPassword = true |
|||
fixture.detectChanges() |
|||
expect(input.type).toBe('text') |
|||
}); |
|||
}); |
|||
Loading…
Reference in new issue