Testy jednostkowe FormGroup / FormArray

głosy
0

Muszę funkcję przyjmuje zmienną AbstractControl i spełniają warunki poniższego działania:

new(item: AbstractControl) {
  item['controls'].myArray.push(
    this.formBuilder.group({
      // my attributes here
    )}
  )
}

Struktura obiektu kiedy wykonać console.log(item)jest następujący ( I wykazały tylko ważne informacje ):

FormGroup {
  controls: {
    …,
    items: FormArray { 
      …,
      controls: Array(5) [FormGroup, FormGroup, …] 
  }
}

Jednak nie wydaje się przetestować go prawidłowo ...

it('Should add', () => {
    const fb = new FormBuilder();
    const myObject = fb.group([example]);

    component.new(myObject);

    const packagesLength = component.myFormGroup.get('data')['controls'][0]['controls']['items']['controls'].length;

    expect(packagesLength).toEqual(2);
  });

Wszystko, czego się od konsoli

Nie można odczytać właściwość „Push” undefined

Jeśli usunąć wsporniki tablicę z mojego FormBuilder.group (tj fb.group(example);, pojawia się komunikat:

customer.controls.packages.push nie jest funkcją

Utwórz 19/12/2018 o 14:15
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Would't trzeba dodać formArray z nazwą „myArray” w przetestować zamiast tablicy w formGroup bez nazwy sterowania? Więc coś takiego:

it('Should add', () => {
    const fb = new FormBuilder();
    const myObject = fb.group('myArray': fb.array());

    component.new(myObject);

    const packagesLength = component.myFormGroup.get('data')['controls'][0] ['controls']['items']['controls'].length;

    expect(packagesLength).toEqual(2);
});
Odpowiedział 19/12/2018 o 14:25
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more