当前位置: 首页>>代码示例>>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;未经允许,请勿转载。