Search code examples
angularunit-testingjasmineangular-forms

angular form unit test


    public isValidStartDate() {
      return this.form.controls.dueDate.touched && this.form.controls.dueDate.errors &&
          !this.form.controls.dueDate.hasError('required')
    }
    public invalidDueDate() {
      return this.form.controls.dueDate.touched && this.form.controls.dueDate.hasError('required');
    }


  it('should check a valid data', () => {
    const dueDate = component.form.controls['dueDate'];
    expect(component.isValidStartDate()).toBeFalsy();
    expect(component.invalidDueDate()).toBeFalsy();

// Not working toBeTruthy
expect(component.isValidStartDate()).toBeTruthy();
    expect(component.invalidDueDate()).toBeTruthy();

  });

I need help for write unit test for toBeTruthy, any one can help please thanks

I don't know how to write test case for toBeTruthy


Solution

  • First condition in isValidStartDate says this.form.controls.dueDate.touched, so to imitate touched state you could call dueDate.markAsTouched() (https://angular.io/api/forms/AbstractControl#markAsTouched)