Как я могу симулировать ошибку во внедренном сервисе, используя storybook для angular? - PullRequest
0 голосов
/ 30 апреля 2020

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

Story

import { moduleMetadata } from '@storybook/angular';
import { IsmModule } from '../../projects/ism-incident-manager/src/app/ism.module';
import { ISMIncidentManagementService } from 'projects/ism-incident-manager/src/app/service/ism-incident-management.service';
import { MockISMIncidentManagementService } from 'src/app/mocks/mock-ism-incident-management.service';

const template: string = `<app-ism-incident-manager></app-ism-incident-manager>`;

const ismService = new MockISMIncidentManagementService();


export default {
  title: 'ISM/Create',
  decorators: [
    moduleMetadata({
      imports: [IsmModule],
      providers: [{ provide: ISMIncidentManagementService, useValue: ismService}]
    }),
    story => ({
      ...story(),
      template: `<div style="width: 400px;padding: 20px;">${story().template}</div>`
    })
  ]
}

export const CreateIncident = () => ({
  template: template
});

//I want this story to error, how?
export const Error = () => ({
  template: template
});

поэтому в приведенном выше примере мне нужно как-то сказать введенному ismService, что в Error он должен делать что-то другое, чем в CreateIncident (Счастливый путь) , Так как мне это сделать?

...