тестирование angular5 - iframe safe pipe - bypassSecurityTrustResourceUrl не является функцией - ОШИБКА - PullRequest
0 голосов
/ 13 июня 2018

У меня есть проект Angular5, и мы загружаем внешние сайты в нашем компоненте, используя iframe с Safe Pipe (пользовательский канал с DomSanitizer.bypassSecurityTrustResourceUrl, преобразующий URL сайта).Приложение работает очень хорошо (при загрузке контента сайта).

При написании тестового примера мы получаем ошибку ниже.

Chrome 66.0.3359 (Windows 10 0.0.0) DummyComponent toggle button check FAILED
    TypeError: this.sanitizer.bypassSecurityTrustResourceUrl is not a function
        at SafePipe.transform (webpack:///./src/app/safe.pipe.ts?:21:31)

Вот загрузочный пример всего тестового примера.

describe('DummyComponent', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [
        BrowserModule,
        HttpClientTestingModule,
        FormsModule,
        ReactiveFormsModule,
        HttpModule,
        NoopAnimationsModule,
        TranslateModule.forRoot()],
      declarations: [DummyComponent, SafePipe],
      providers: [NotificationService, TranslateService, DomSanitizer],
    }).compileComponents();
  });

   it('load content', () => {
     // expecting content is loading
     ....
   }

}

1 Ответ

0 голосов
/ 12 июля 2018

Возможно, что при вызове pipe вы не назначаете тип pipe для использования.В HTML-компоненте убедитесь, что он похож на

<div [innerHTML]="description | safe: 'html'"></div> 

Здесь важно, чтобы после | safe: применялся тип DomSanitizer.

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