I am trying to test my component with angular 2 final, but I get an error because the component uses the routerLink
directive. I get the following error:
Can't bind to 'routerLink' since it isn't a known property of 'a'.
This is the relevant code of the ListComponent
template
<a
*ngFor="let item of data.list"
class="box"
routerLink="/settings/{{collectionName}}/edit/{{item._id}}">
And here is my test.
import { TestBed } from '@angular/core/testing';
import { ListComponent } from './list.component';
import { defaultData, collectionName } from '../../config';
import { initialState } from '../../reducers/reducer';
const data = {
sort: initialState.sort,
list: [defaultData, defaultData],
};
describe(`${collectionName} ListComponent`, () => {
let fixture;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
ListComponent,
],
}).compileComponents(); // compile template and css;
fixture = TestBed.createComponent(ListComponent);
fixture.componentInstance.data = data;
fixture.detectChanges();
});
it('should render 2 items in list', () => {
const el = fixture.debugElement.nativeElement;
expect(el.querySelectorAll('.box').length).toBe(3);
});
});
I looked at several answers to similar questions but could not find a solution that worked for me.
async
everything in this block is ginored. I tried to add a done function to theit('...', (done) => {async(... done())}
but then I getError: Timeout
from the test. – Leucoderma