import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core'; import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { MatAutocompleteModule } from '@angular/material/autocomplete'; import { ConfigService } from '@arrow/bom/config'; import { AnalyticsService, DialogService, SocketsService, UserService, Utils } from '@arrow/bom/core'; import { WptDialogRef, WPT_DIALOG_DATA } from '@arrow/warpaint/dialog'; import { TranslateService } from '@ngx-translate/core'; import { Observable, of } from 'rxjs'; import { ShareBomComponent } from './share-bom.component'; function provideDialogData() { return { bom: { id: 'some id' }, }; } const mockSockets: Partial = { observeAction: subject => { switch (subject) { case 'rowDeleted': return of(0); default: return new Observable(); } }, emitAction: (actionName: string, params?: any) => { return of({}); }, observeApiErrors: () => { return of({}); } }; const mockAnalyticsService: Partial = { googleTrackEvent: () => {}, track: () => { return of(); } }; describe('ShareBomComponent', () => { let component: ShareBomComponent; let fixture: ComponentFixture; beforeEach(async(() => { const dialogServiceSpyObj = jasmine.createSpyObj('DialogService', ['alert', 'confirm']); const configServiceSpyObj = jasmine.createSpyObj('ConfigService', ['getTarget']); const translateServiceSpyObj = jasmine.createSpyObj('TranslateService', ['instant']); TestBed.configureTestingModule({ schemas: [NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA], imports: [MatAutocompleteModule], declarations: [ShareBomComponent], providers: [ { provide: WptDialogRef, useValue: {} }, { provide: WPT_DIALOG_DATA, useFactory: provideDialogData }, { provide: SocketsService, useValue: mockSockets }, { provide: DialogService, useValue: dialogServiceSpyObj }, { provide: AnalyticsService, useValue: mockAnalyticsService }, { provide: Utils, useValue: {} }, { provide: UserService, useValue: {} }, { provide: ConfigService, useValue: configServiceSpyObj }, { provide: TranslateService, useValue: translateServiceSpyObj }, ] }).compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(ShareBomComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); it('should have a cleanInput method', () => { expect(component.cleanInput).toBeDefined(); }); it('should have an onSelectionChanged method', () => { expect(component.onSelectionChanged).toBeDefined(); }); it('should have a deleteUser method', () => { expect(component.deleteUser).toBeDefined(); }); it('should have an undoDeleteUser method', () => { expect(component.undoDeleteUser).toBeDefined(); }); it('should have a handleChangePermission method', () => { expect(component.handleChangePermission).toBeDefined(); }); it('should have an addNewUser method', () => { expect(component.addNewUser).toBeDefined(); }); it('should have a submitTeamUpdates method', () => { expect(component.submitTeamUpdates).toBeDefined(); }); it('should have a saveUserDownloadSettings method', () => { expect(component.broadcastTeamEditsAndClose).toBeDefined(); }); it('should have a cloneTeamList method', () => { expect(component.cloneTeamList).toBeDefined(); }); });