Files
dspace-angular/src/app/shared/utils/ipV4.validator.spec.ts
2024-01-12 11:15:42 +01:00

37 lines
1.3 KiB
TypeScript

import { IpV4Validator } from './ipV4.validator';
import { TestBed } from '@angular/core/testing';
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
describe('IpV4 validator', () => {
let ipV4Validator: IpV4Validator;
const validIp = '192.168.0.1';
const formGroup = new UntypedFormGroup({
ip: new UntypedFormControl(''),
});
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
IpV4Validator,
],
}).compileComponents();
ipV4Validator = TestBed.inject(IpV4Validator);
});
it('should return null for valid ipV4', () => {
formGroup.controls.ip.setValue(validIp);
expect(ipV4Validator.validate(formGroup.controls.ip as UntypedFormControl)).toBeNull();
});
it('should return {isValidIp: false} for invalid Ip', () => {
formGroup.controls.ip.setValue('100.260.45.1');
expect(ipV4Validator.validate(formGroup.controls.ip as UntypedFormControl)).toEqual({isValidIp: false});
formGroup.controls.ip.setValue('100');
expect(ipV4Validator.validate(formGroup.controls.ip as UntypedFormControl)).toEqual({isValidIp: false});
formGroup.controls.ip.setValue('testString');
expect(ipV4Validator.validate(formGroup.controls.ip as UntypedFormControl)).toEqual({isValidIp: false});
});
});