1 import { HttpClientTestingModule } from '@angular/common/http/testing';
2 import { ReactiveFormsModule } from '@angular/forms';
3 import { RouterTestingModule } from '@angular/router/testing';
4 import { ComponentFixture, TestBed } from '@angular/core/testing';
6 import { ToastrModule } from 'ngx-toastr';
8 import { NgbActiveModal, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
10 import { CdFormGroup } from '~/app/shared/forms/cd-form-group';
11 import { SharedModule } from '~/app/shared/shared.module';
12 import { NvmeofSubsystemsFormComponent } from './nvmeof-subsystems-form.component';
13 import { FormHelper } from '~/testing/unit-test-helper';
14 import { MAX_NAMESPACE, NvmeofService } from '~/app/shared/api/nvmeof.service';
16 describe('NvmeofSubsystemsFormComponent', () => {
17 let component: NvmeofSubsystemsFormComponent;
18 let fixture: ComponentFixture<NvmeofSubsystemsFormComponent>;
19 let nvmeofService: NvmeofService;
20 let form: CdFormGroup;
21 let formHelper: FormHelper;
22 const mockTimestamp = 1720693470789;
24 beforeEach(async () => {
25 spyOn(Date, 'now').and.returnValue(mockTimestamp);
26 await TestBed.configureTestingModule({
27 declarations: [NvmeofSubsystemsFormComponent],
28 providers: [NgbActiveModal],
30 HttpClientTestingModule,
35 ToastrModule.forRoot()
37 }).compileComponents();
39 fixture = TestBed.createComponent(NvmeofSubsystemsFormComponent);
40 component = fixture.componentInstance;
42 form = component.subsystemForm;
43 formHelper = new FormHelper(form);
44 fixture.detectChanges();
47 it('should create', () => {
48 expect(component).toBeTruthy();
51 describe('should test form', () => {
53 nvmeofService = TestBed.inject(NvmeofService);
54 spyOn(nvmeofService, 'createSubsystem').and.stub();
57 it('should be creating request correctly', () => {
58 const expectedNqn = 'nqn.2001-07.com.ceph:' + mockTimestamp;
60 expect(nvmeofService.createSubsystem).toHaveBeenCalledWith({
62 max_namespaces: MAX_NAMESPACE,
67 it('should give error on invalid nqn', () => {
68 formHelper.setValue('nqn', 'nqn:2001-07.com.ceph:');
70 formHelper.expectError('nqn', 'pattern');
73 it('should give error on invalid max_namespaces', () => {
74 formHelper.setValue('max_namespaces', -56);
76 formHelper.expectError('max_namespaces', 'pattern');
79 it(`should give error on max_namespaces greater than ${MAX_NAMESPACE}`, () => {
80 formHelper.setValue('max_namespaces', 2000);
82 formHelper.expectError('max_namespaces', 'max');
85 it('should give error on max_namespaces lesser than 1', () => {
86 formHelper.setValue('max_namespaces', 0);
88 formHelper.expectError('max_namespaces', 'min');