I have a component file as shown below
import { Component, OnInit, Input } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { InstanceService } from '../../theme/services/instance-service';
@Component({
selector: 'instance',
styleUrls: ['./instance.scss'],
templateUrl: './instance.html'
})
export class InstanceComponent implements OnInit {
db_name: String;
data: Object;
constructor(private route: ActivatedRoute, private router: Router, private
instanceService: InstanceService ) {
}
ngOnInit() {
this.route.params.subscribe((params: Params) => {
this.db_name = params['id'];
});
this.instanceService.getInstances().subscribe((res) => {
this.data = res.find(x => x.db_name === this.db_name);
});
}
}
Also there is a spec file for unit tests but I can not create component
successfully. It gives an error which says 'Cannot read property
'subscribe' of undefined'. How can I solve this ?
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { Ng2SmartTableModule } from 'ng2-smart-table';
import { InstanceComponent } from './instance.component';
import { Router, ActivatedRoute } from '@angular/router';
import { InstanceService } from '../../theme/services/instance-service';
import { HttpModule } from '@angular/http';
import { Observable, Subject } from 'rxjs/Rx';
import { RouterTestingModule } from '@angular/router/testing';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import 'rxjs/Rx';
import { Subscription } from 'rxjs/Subscription';
class InstanceServiceStub {
getInstances() {
return Observable.empty();
}
}
describe('InstanceComponent', () => {
let component: InstanceComponent;
let fixture: ComponentFixture<InstanceComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [HttpModule],
declarations: [InstanceComponent],
providers: [{ provide: ActivatedRoute, useValue: { data: Observable.of({
name: 'pinocho' })}},
{ provide: Router },
{ provide: InstanceService, useClass: InstanceServiceStub }],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(InstanceComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should be created', () => {
expect(component).toBeTruthy();
});
});
--
You received this message because you are subscribed to the Google Groups
"Angular and AngularJS discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.