user636525
user636525

Reputation: 3198

Spec Has No Expectations error on Angular 2 templateUrl

I have a angular 2 Component MyComp

@Component({
    selector: 'myform',
    templateUrl: './myform.html',
    providers: [HTTP_PROVIDERS],
    directives: [ROUTER_DIRECTIVES]
})

This is my spec.

it('should work', injectAsync([TestComponentBuilder], (tcb) => {
    return tcb.createAsync(MyComp).then((fixture) => {
        fixture.detectChanges();
        expect(1+ 1).toEqual(2);
    });
}));

When i execute the tests its giving me an error

Can't bind to 'ngForOf' since it isn't a known native property

The actual code works, but its only the tests that are failing,

Update : Spec works if i replace templateUrl with template. i.e if i just try with

template: <h1>Fake</h1> <ul> <li *ngFor="#item of items"> </li> </ul>

Interested to know if anyone has tested components with templateUrl with angular 2.0 beta version.

Thanks !

Upvotes: 0

Views: 743

Answers (1)

alexpods
alexpods

Reputation: 48505

You should add ngFor or CORE_DIRECTIVES to the component directives:

import { CORE_DIRECTIVES } from 'angular2/common';

@Component({
  selector: 'myform',
  templateUrl: './myform.html',
  providers: [HTTP_PROVIDERS],
  directives: [ROUTER_DIRECTIVES, CORE_DIRECTIVES] // <- HERE!!!
})
export class MyForm { /* ... */ }

or

import { NgFor } from 'angular2/common';

@Component({
  selector: 'myform',
  templateUrl: './myform.html',
  providers: [HTTP_PROVIDERS],
  directives: [ROUTER_DIRECTIVES, NgFor] // <- HERE!!!
})

Upvotes: 2

Related Questions