當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript utils.TestStore類代碼示例

本文整理匯總了TypeScript中@testing/utils.TestStore的典型用法代碼示例。如果您正苦於以下問題:TypeScript TestStore類的具體用法?TypeScript TestStore怎麽用?TypeScript TestStore使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了TestStore類的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: inject

 inject([Store], (testStore: TestStore<TodosState>) => {
   store = testStore;
   store.setState({ items: [], filter: 'ALL' });
   fixture = TestBed.createComponent(TodosComponent);
   component = fixture.componentInstance;
   fixture.detectChanges();
 })
開發者ID:gojay,項目名稱:angular-ngrx-material-starter,代碼行數:7,代碼來源:todos.component.spec.ts

示例2: describe

describe('TodosComponent', () => {
  let component: TodosComponent;
  let fixture: ComponentFixture<TodosComponent>;
  let store: TestStore<TodosState>;
  let dispatchSpy;

  const getTodos = () => fixture.debugElement.queryAll(By.css('.todo'));

  const getBigInput = () =>
    fixture.debugElement.query(By.css('anms-big-input'));

  const getBigInputValue = () =>
    getBigInput().query(By.css('input')).nativeElement.value;

  const getTodosFilter = () =>
    fixture.debugElement.query(By.css('.todos-filter'));
  const getTodosFilterOptions = () =>
    fixture.debugElement.queryAll(
      By.css('.todos-filter-menu-overlay .mat-menu-item')
    );

  const deleteDoneTodosBtn = () =>
    fixture.debugElement.query(
      By.css('anms-big-input-action[fontIcon="fa-trash"] > button')
    );
  const addTodoBtn = () =>
    fixture.debugElement.query(
      By.css('anms-big-input-action[fontIcon="fa-plus"] > button')
    );

  beforeEach(
    async(() => {
      TestBed.configureTestingModule({
        declarations: [TodosComponent],
        imports: [NoopAnimationsModule, SharedModule],
        providers: [{ provide: Store, useClass: TestStore }]
      }).compileComponents();
    })
  );

  beforeEach(
    inject([Store], (testStore: TestStore<TodosState>) => {
      store = testStore;
      store.setState({ items: [], filter: 'ALL' });
      fixture = TestBed.createComponent(TodosComponent);
      component = fixture.componentInstance;
      fixture.detectChanges();
    })
  );

  it('should be created with 0 todos', () => {
    expect(component).toBeTruthy();
    expect(component.todos.items.length).toBe(0);
    expect(getTodos().length).toBe(0);
  });

  it('should display todos', () => {
    store.setState({
      items: [{ id: '1', name: 'test', done: false }],
      filter: 'ALL'
    });

    fixture.detectChanges();
    expect(getTodos().length).toBe(1);
    expect(getTodos()[0].nativeElement.textContent.trim()).toBe('test');
  });

  it('should filter and show "DONE" todos', () => {
    store.setState({
      items: [
        { id: '1', name: 'test 1', done: true },
        { id: '2', name: 'test 2', done: false }
      ],
      filter: 'DONE'
    });

    fixture.detectChanges();
    expect(getTodos().length).toBe(1);
    expect(getTodos()[0].nativeElement.textContent.trim()).toBe('test 1');
  });

  it('should dispatch remove "DONE" todos action', () => {
    store.setState({
      items: [
        { id: '1', name: 'test 1', done: true },
        { id: '2', name: 'test 2', done: false }
      ],
      filter: 'DONE'
    });

    fixture.detectChanges();
    dispatchSpy = spyOn(store, 'dispatch');
    deleteDoneTodosBtn().triggerEventHandler('click', {});

    fixture.detectChanges();
    expect(dispatchSpy).toHaveBeenCalledTimes(1);
    expect(dispatchSpy).toHaveBeenCalledWith(new ActionTodosRemoveDone());
  });

  it('should dispatch add todo action', () => {
//.........這裏部分代碼省略.........
開發者ID:gojay,項目名稱:angular-ngrx-material-starter,代碼行數:101,代碼來源:todos.component.spec.ts

示例3: it

  it('should display todos', () => {
    store.setState({
      items: [{ id: '1', name: 'test', done: false }],
      filter: 'ALL'
    });

    fixture.detectChanges();
    expect(getTodos().length).toBe(1);
    expect(getTodos()[0].nativeElement.textContent.trim()).toBe('test');
  });
開發者ID:gojay,項目名稱:angular-ngrx-material-starter,代碼行數:10,代碼來源:todos.component.spec.ts

示例4: ActionTodosToggle

  it('should dispatch toggle todo action', () => {
    store.setState({
      items: [{ id: '1', name: 'test 1', done: true }],
      filter: 'ALL'
    });

    fixture.detectChanges();
    dispatchSpy = spyOn(store, 'dispatch');
    getTodos()[0]
      .query(By.css('.todo-label'))
      .triggerEventHandler('click', {});

    fixture.detectChanges();
    expect(dispatchSpy).toHaveBeenCalledTimes(1);
    expect(dispatchSpy).toHaveBeenCalledWith(
      new ActionTodosToggle({ id: '1' })
    );
  });
開發者ID:gojay,項目名稱:angular-ngrx-material-starter,代碼行數:18,代碼來源:todos.component.spec.ts


注:本文中的@testing/utils.TestStore類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。