Угловой шут, Тестирование ошибки проверки компонента - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь проверить мой файл сообщения подтверждения. но получаю ошибку как

Cannot find name 'control'.

Но я не могу это исправить. Кто-нибудь мне помочь?

вот мой файл компонента TS:

import { Component, Input } from '@angular/core';
import { ValidationService } from './../../services/validation.service';

@Component({
    selector: 'control-messages',
    templateUrl: './control-messages.component.html',
    styleUrls: ['./control-messages.component.css']
})
export class ControlMessagesComponent {

    @Input() control: any;
    constructor() { }

    get errorMessage() {
        for ( const propertyName in this.control.errors ) {
            if (this.control.errors.hasOwnProperty(propertyName) && (this.control.dirty || this.control.touched)) {
                return ValidationService.getValidatorErrorMessage(propertyName, this.control.errors[propertyName]);
            }
        }
        return null;
    }

}

вот мой файл спецификации теста:

import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ControlMessagesComponent } from './control-messages.component';
import { ValidationService } from './../../services/validation.service';

describe('ControlMessagesComponent', () => {
  let component: ControlMessagesComponent;
  let fixture: ComponentFixture<ControlMessagesComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ ControlMessagesComponent ],
      imports: [FormsModule, ReactiveFormsModule],
      providers: [
        { provide: ValidationService }
      ]
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(ControlMessagesComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

здесь ошибка:

 TypeError: Cannot read property 'errors' of undefined

      13 |
      14 |     get errorMessage() {
    > 15 |         for ( const propertyName in this.control.errors ) {
         |                                                  ^
      16 |             if (this.control.errors.hasOwnProperty(propertyName) && (this.control.dirty || this.control.touched)) {
      17 |                 return ValidationService.getValidatorErrorMessage(propertyName, this.control.errors[propertyName]);
      18 |             }
...