import {ComponentFixture, TestBed} from '@angular/core/testing'; import {PentestInfoComponent} from './pentest-info.component'; import {CommonModule} from '@angular/common'; import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; import {HttpClientTestingModule} from '@angular/common/http/testing'; import {FontAwesomeModule} from '@fortawesome/angular-fontawesome'; import {ThemeModule} from '@assets/@theme/theme.module'; 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 {Category} from '@shared/models/category.model'; import {PentestStatus} from '@shared/models/pentest-status.model'; 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', summary: '', 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, findingIds: ['56c47c56-3bcd-45f1-a05b-c197dbd33112'], commentIds: [] }, }; describe('PentestInfoComponent', () => { let component: PentestInfoComponent; let fixture: ComponentFixture; let store: Store; beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [ PentestInfoComponent ], imports: [ CommonModule, BrowserAnimationsModule, HttpClientTestingModule, FontAwesomeModule, ThemeModule.forRoot(), TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, deps: [HttpClient] } }), NgxsModule.forRoot([ProjectState]) ], }) .compileComponents(); }); beforeEach(() => { fixture = TestBed.createComponent(PentestInfoComponent); store = TestBed.inject(Store); store.reset({ ...store.snapshot(), [PROJECT_STATE_NAME]: DESIRED_PROJECT_STATE_SESSION }); component = fixture.componentInstance; component.pentestInfo$.next({ id: '56c47c56-3bcd-45f1-a05b-c197dbd33112', category: Category.INFORMATION_GATHERING, refNumber: 'OTF-001', childEntries: [], status: PentestStatus.NOT_STARTED, findingIds: [], commentIds: [] }); fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); });