import {ComponentFixture, TestBed} from '@angular/core/testing'; import {PentestFindingsComponent} from './pentest-findings.component'; import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; import {HttpClientTestingModule} from '@angular/common/http/testing'; import {TranslateLoader, TranslateModule} from '@ngx-translate/core'; import {HttpLoaderFactory} from '../../../common-app.module'; import {HttpClient} from '@angular/common/http'; import {NgxsModule, Store} from '@ngxs/store'; import {PROJECT_STATE_NAME, ProjectState, ProjectStateModel} from '@shared/stores/project-state/project-state'; import {NbButtonModule, NbTreeGridModule} from '@nebular/theme'; import {NotificationService} from '@shared/services/notification.service'; import {NotificationServiceMock} from '@shared/services/notification.service.mock'; import {CommonModule} from '@angular/common'; import {MockComponent} from 'ng-mocks'; import {LoadingSpinnerComponent} from '@shared/widgets/loading-spinner/loading-spinner.component'; import {FontAwesomeModule} from '@fortawesome/angular-fontawesome'; import {ThemeModule} from '@assets/@theme/theme.module'; import {Category} from '@shared/models/category.model'; import {PentestStatus} from '@shared/models/pentest-status.model'; import {FindingDialogService} from '@shared/modules/finding-dialog/service/finding-dialog.service'; import {FindingDialogServiceMock} from '@shared/modules/finding-dialog/service/finding-dialog.service.mock'; const DESIRED_PROJECT_STATE_SESSION: ProjectStateModel = { selectedProject: { id: '56c47c56-3bcd-45f1-a05b-c197dbd33111', client: 'E Corp', title: 'Some Mock API (v1.0) Scanning', createdAt: new Date('2019-01-10T09:00:00'), tester: 'Novatester', testingProgress: 0, createdBy: '11c47c56-3bcd-45f1-a05b-c197dbd33110' }, // Manages Categories disabledCategories: [], selectedCategory: Category.INFORMATION_GATHERING, // Manages Pentests of Category disabledPentests: [], selectedPentest: { id: '56c47c56-3bcd-45f1-a05b-c197dbd33112', category: Category.INFORMATION_GATHERING, refNumber: 'OTF-001', childEntries: [], status: PentestStatus.NOT_STARTED, findingsIds: ['56c47c56-3bcd-45f1-a05b-c197dbd33112'], commentsIds: [] }, }; describe('PentestFindingsComponent', () => { let component: PentestFindingsComponent; let fixture: ComponentFixture; let store: Store; beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [ PentestFindingsComponent, MockComponent(LoadingSpinnerComponent) ], imports: [ CommonModule, BrowserAnimationsModule, HttpClientTestingModule, FontAwesomeModule, NbButtonModule, NbTreeGridModule, ThemeModule.forRoot(), TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, deps: [HttpClient] } }), NgxsModule.forRoot([ProjectState]) ], providers: [ {provide: NotificationService, useValue: new NotificationServiceMock()}, {provide: FindingDialogService, useClass: FindingDialogServiceMock}, ] }) .compileComponents(); }); beforeEach(() => { fixture = TestBed.createComponent(PentestFindingsComponent); store = TestBed.inject(Store); store.reset({ ...store.snapshot(), [PROJECT_STATE_NAME]: DESIRED_PROJECT_STATE_SESSION }); component = fixture.componentInstance; fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); });