Home > Software design >  How can i test this function in Angular 2
How can i test this function in Angular 2

Time:01-19

moveColumns(shifter: number, index: number) {
    const columnFields = this.form.get('sizes') as FormArray;
 
    let newIndex = index   shifter;
    if (newIndex === -1) {
      newIndex = columnFields.length - 1;
    } else if (newIndex === columnFields.length) {
      newIndex = 0;
    }
 
    const currentGroup = columnFields.at(index);
    columnFields.removeAt(index);
    columnFields.insert(newIndex, currentGroup);
  }

My dificculty is that they are all inside function variables and not component global variables.

CodePudding user response:

You need to stub the form object and then validate the changes that happen in the function

// in your test beforeEach
mockComponent.form = new FormArray({sizes: new FormControl());

// And in your function, you can update this form object and validate it

it('should test my function', () => {
const modifiedForm = {} // Add the final result after the function executes

expect(mockComponent.form).toEquals(modifiedForm);
})
  •  Tags:  
  • Related