| import { HttpClientTestingModule } from '@angular/common/http/testing'; |
| import { SimpleChange } from '@angular/core'; |
| import { ComponentFixture, TestBed } from '@angular/core/testing'; |
| import { MatButtonModule } from '@angular/material/button'; |
| import { MatDialogModule } from '@angular/material/dialog'; |
| import { MatMenuModule } from '@angular/material/menu'; |
| import { MatTableDataSource, MatTableModule } from '@angular/material/table'; |
| import { Router, ActivatedRoute, convertToParamMap } from '@angular/router'; |
| import { RouterTestingModule } from '@angular/router/testing'; |
| import { of } from 'rxjs'; |
| import { OseeStringUtilsDirectivesModule } from 'src/app/osee-utils/osee-string-utils/osee-string-utils-directives/osee-string-utils-directives.module'; |
| import { OseeStringUtilsPipesModule } from 'src/app/osee-utils/osee-string-utils/osee-string-utils-pipes/osee-string-utils-pipes.module'; |
| import { MessageInterfaceComponent } from '../../message-interface.component'; |
| import { ConvertMessageTableTitlesToStringPipe } from '../../pipes/convert-message-table-titles-to-string.pipe'; |
| import { ConvertSubMessageTitlesToStringPipe } from '../../pipes/convert-sub-message-titles-to-string.pipe'; |
| import { MessageTableComponent } from '../message-table/message-table.component'; |
| import { AddSubMessageDialogComponent } from './add-sub-message-dialog/add-sub-message-dialog.component'; |
| import { EditSubMessageFieldComponent } from './edit-sub-message-field/edit-sub-message-field.component'; |
| |
| import { SubMessageTableComponent } from './sub-message-table.component'; |
| |
| describe('SubMessageTableComponent', () => { |
| let component: SubMessageTableComponent; |
| let fixture: ComponentFixture<SubMessageTableComponent>; |
| let router: any; |
| let expectedData = [ |
| { |
| name: "Name", |
| description: "description adslkfj;asjfadkljf;lajdfla;jsdfdlkasjf;lkajslfjad;ljfkladjsf;", |
| interfaceSubMessageNumber: "0", |
| interfaceMessageRate:"1Hz" |
| }, |
| { |
| name: "Name2", |
| description: "description2", |
| interfaceSubMessageNumber: "1", |
| interfaceMessageRate:"1Hz" |
| } |
| ] |
| |
| beforeEach(async () => { |
| router = jasmine.createSpyObj('Router', ['navigate', 'createUrlTree', 'serializeUrl']); |
| await TestBed.configureTestingModule({ |
| imports:[MatTableModule, MatButtonModule,OseeStringUtilsDirectivesModule,OseeStringUtilsPipesModule, RouterTestingModule, MatMenuModule, MatDialogModule, HttpClientTestingModule], |
| declarations: [SubMessageTableComponent, ConvertMessageTableTitlesToStringPipe, ConvertSubMessageTitlesToStringPipe, EditSubMessageFieldComponent, AddSubMessageDialogComponent], |
| providers: [{ provide: Router, useValue: router }, |
| { |
| provide: ActivatedRoute, useValue: { |
| // paramMap: of( |
| // convertToParamMap( |
| // { |
| // name:"Name > Name" |
| // } |
| // ) |
| // ) |
| // |
| } |
| }, |
| ] |
| }) |
| .compileComponents(); |
| }); |
| |
| beforeEach(() => { |
| fixture = TestBed.createComponent(SubMessageTableComponent); |
| component = fixture.componentInstance; |
| component.dataSource = new MatTableDataSource(); |
| component.data = expectedData; |
| fixture.detectChanges(); |
| }); |
| |
| it('should create', () => { |
| expect(component).toBeTruthy(); |
| }); |
| |
| it('should navigate to Hello/10/10/elements', () => { |
| component.navigateToElementsTable("10","10",'Hello'); |
| expect(router.navigate).toHaveBeenCalledWith(['10','10','Hello','elements'],{relativeTo: Object({ }), queryParamsHandling:'merge'}); |
| }); |
| |
| it('should update the datasource filter', () => { |
| component.filter = "sub message: Name2"; |
| component.ngOnChanges({ |
| data: new SimpleChange(component.data, component.data, false), |
| filter: new SimpleChange('', component.filter, false) |
| }) |
| expect(component.dataSource.filter === component.filter.replace('sub message: ', '')); |
| }); |
| }); |