-
Notifications
You must be signed in to change notification settings - Fork 6.8k
/
Copy pathform-field-harness-example.spec.ts
46 lines (38 loc) · 1.91 KB
/
form-field-harness-example.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import {ComponentFixture, TestBed} from '@angular/core/testing';
import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed';
import {MatFormFieldHarness} from '@angular/material/form-field/testing';
import {HarnessLoader} from '@angular/cdk/testing';
import {FormFieldHarnessExample} from './form-field-harness-example';
import {MatInputHarness} from '@angular/material/input/testing';
describe('FormFieldHarnessExample', () => {
let fixture: ComponentFixture<FormFieldHarnessExample>;
let loader: HarnessLoader;
beforeEach(() => {
fixture = TestBed.createComponent(FormFieldHarnessExample);
fixture.detectChanges();
loader = TestbedHarnessEnvironment.loader(fixture);
});
it('should be able to load harnesses', async () => {
const formFields = await loader.getAllHarnesses(MatFormFieldHarness);
expect(formFields.length).toBe(1);
});
it('should be able to get control of form-field', async () => {
const formField = await loader.getHarness(MatFormFieldHarness);
expect((await formField.getControl()) instanceof MatInputHarness).toBe(true);
});
it('should be able to get error messages and hints of form-field', async () => {
const formField = await loader.getHarness(MatFormFieldHarness);
expect(await formField.getTextErrors()).toEqual([]);
expect(await formField.getTextHints()).toEqual(['Hint']);
fixture.componentInstance.requiredControl.setValue('');
await ((await formField.getControl()) as MatInputHarness)?.blur();
expect(await formField.getTextErrors()).toEqual(['Error']);
expect(await formField.getTextHints()).toEqual([]);
});
it('should be able to check if form field is invalid', async () => {
const formField = await loader.getHarness(MatFormFieldHarness);
expect(await formField.isControlValid()).toBe(true);
fixture.componentInstance.requiredControl.setValue('');
expect(await formField.isControlValid()).toBe(false);
});
});