Ожидаемый шпион в журнале равен «Аутентифицированный сбой» - PullRequest
0 голосов
/ 25 мая 2018

Мне нужно проверить сравнение со значением.Я попробовал этот пример:

У меня есть этот component.ts

export class AppComponent implements OnInit {
  title= 'Angular'
  constructor() { }
  ngOnInit() {
  }
}

И в component.spec.ts

it(`should have as title 'Angular'`, async(() => {
    const fixture = TestBed.createComponent(AppComponent);
    const app = fixture.debugElement.componentInstance;
    expect(app.title).toEqual('Angular');
}));

it(`should have as title 'Angular'`, async(() => {
  const fixture = TestBed.createComponent(AppComponent);
  const app = fixture.debugElement.componentInstance;
  expect(app.title).toEqual('Angular1');
}));

Я следовал этому примеру, которыйпросто.Но теперь мне нужно сравнить значение моего ответа с некоторым значением

Step1.Компонент HTML

<div id="container">
  <div id="login_card_container">
    <div id="login_card" class="card col s12">
      <form [formGroup]="loginForm" (ngSubmit)="onLogin()" class="col s12">
        <h1 id="form_title">Login</h1>
        <div class="row">
          <div class="input-field col s12">
            <input formControlName="username" id="username" type="text" class="validate" [ngClass]="{invalid: invalidCredentials}">
            <label for="username">Username</label>
          </div>
        </div>
        <div class="row">
          <div class="input-field col s12">
            <input formControlName="password" id="password" type="password" class="validate" [ngClass]="{invalid: invalidCredentials}">
            <label for="password" data-error="Your username/password combination is invalid">Password</label>
          </div>
        </div>
        <div id="login_button_container" class="row">
          <button id="login_button" type="submit" class="btn waves-effect waves-light" [disabled]="!loginForm.valid">
            <i class="fa fa-sign-in left"></i>
            Login
          </button>
        </div>
      </form>
    </div>
  </div>
</div>

Шаг 2: Компонент TS

  onLogin() {
    this.loading = true;
    this.ws.login(
      this.loginForm.controls['username'].value,
      this.loginForm.controls['password'].value)
      .subscribe(
      result => {
        if (result === true) {
        } else {
          this.loading = false;
          this.invalidCredentials = true;
        }
      });
  }

Это моя первая попытка, и покажите эту ошибку

Ожидаемый шпион в журнале равен«Аутентифицированный сбой».

Фактически это успешно, потому что ответ от сервиса - это сообщение Authentificated failed

  it('should notify in console on form submit', () => {
    spyOn(console, 'log');
    component.loginForm.controls['username'].setValue('admin');
    component.loginForm.controls['password'].setValue('11');
    fixture.debugElement.query(By.css('form')).triggerEventHandler('ngSubmit', null);
   fixture.detectChanges()
    expect(console.log).toEqual('Authentificated failed');
  });

В этом коде я хочу toEqual ответ сервиса с('Authentificated failed') как в первом примере

Можете ли вы посоветовать, как сравнить result сервис формы с некоторым текстом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...