Guest User

Untitled

a guest
Feb 22nd, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. ngAfterViewInit() {
  2. this.username.update
  3. .debounceTime(500) // wait 1/2 second before emitting last event
  4. .distinctUntilChanged() // only emit value if different from last value
  5. .subscribe((username: string) => {
  6. let data = { type: 'username', val: username };
  7. this._loginSrvc.chkUser(data).subscribe((response: IChkUserResponse)=>{
  8. if(response.isAvailable === false)
  9. this.username.control.setErrors({'taken': {value: this.username.value}});
  10. });
  11. });
  12. }
  13.  
  14. <mat-form-field fxFlex>
  15. <input matInput placeholder="Username" aria-label="Username" forbiddenCharacters=';"\/[]{}()' required [(ngModel)]="model.username" #username="ngModel" id="username" name="username">
  16. <mat-error *ngIf="newUserFrm.hasError('required','username')">Username is required</mat-error>
  17. <mat-error *ngIf="newUserFrm.hasError('forbiddenCharacters','username')">{{forbiddenChars.error}}</mat-error>
  18. <mat-error *ngIf="newUserFrm.hasError('taken','username')">The username <em>{{model.username}}</em> is taken</mat-error>
  19. </mat-form-field>
  20.  
  21. it('should check for username availability',fakeAsync(()=>{
  22. spyOn(service,'chkUser');
  23.  
  24. let input = fixture.debugElement.query(By.css('#username')).nativeElement;
  25. expect(input.value).toBe('');
  26. expect(component.username.value).toBe(null);
  27.  
  28. input.value = user.username;
  29. input.dispatchEvent(new Event('input'));
  30.  
  31. tick(500);
  32.  
  33. expect(service.chkUser).toHaveBeenCalled();
  34. }));
Add Comment
Please, Sign In to add comment