ошибка при прохождении тестов, которых не должно быть при тестировании селектора nrgx - PullRequest
0 голосов
/ 08 мая 2020

Я хочу проверить состояние, заданное селектором с помощью MockStore и переопределить, но я делаю что-то не так, потому что независимо от того, чего я ожидаю, я всегда прохожу тест. 1004 *

import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { UserProfileComponent } from './user-profile.component';
import {MemoizedSelector} from '@ngrx/store';

import * as profileSelectors from '../../../app/store/selectors/profile.selectors';
import {AppState} from '../../../app/store';
import {MockStore, provideMockStore} from '@ngrx/store/testing';
import {By} from 'protractor';
import {ProfileState} from '../../../app/store/reducers/profile.reducer';


describe('UserProfileComponent', () => {
  let component: UserProfileComponent;
  let fixture: ComponentFixture<UserProfileComponent>;
  let store: MockStore<AppState>;
  let mockShowsSelector;
  // I wrote the same as in the example
  const queryDivText = () =>
    fixture.debugElement.queryAll(By.css('div'))[0].nativeElement.textContent;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      providers: [provideMockStore()],
      declarations: [UserProfileComponent]
    })
      .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(UserProfileComponent);
    component = fixture.componentInstance;
    store = TestBed.inject(MockStore);
    mockShowsSelector = store.overrideSelector(profileSelectors.getUserInfo, {
      id: 2,
      user: 'user',
      role: 'role',
      email:email 'description 2'
    });
    fixture.detectChanges();
  });
  
  // I wrote the same as in the example
  it('should greet John when the username is John', () => {
    expect(queryDivText()).toBe('Greetings, John!');
  });
});

В приведенном выше коде вы можете увидеть мою проблему .. Даже если он проверяет что-то случайное (чего нет даже в моем представлении компонентов), он проходит тест. Я думаю, это связано с отладкой.

...