Я довольно новичок в Angular.Я пытаюсь увеличить покрытие кода и, похоже, не могу получить значения 'username' через this.route.snapshot.paramMap .вот мой классКогда я запускаю тесты, я получаю сообщение Значение имени пользователя требуется даже после того, как я установил component.username = 'test@example.com';Пожалуйста, помогите
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Constants } from '../../app.constants';
import { AuthService } from '../../services/auth/auth.service';
import { AlertService } from '../../services/alert/alert.service';
import * as _ from 'underscore';
@Component({
selector: 'app-activate',
templateUrl: './activate.component.html',
styleUrls: ['./activate.component.scss']
})
export class ActivateComponent implements OnInit {
status: string;
error: string;
username: string;
token: string;
constructor(private route: ActivatedRoute, private authService: AuthService, private alertService: AlertService) { }
activate() {
this.username = this.route.snapshot.paramMap.get('username');
this.token = this.route.snapshot.paramMap.get('token');
if (_.isEmpty(this.username)) {
this.error = 'A username value is required '
} else if (_.isEmpty(this.token)) {
this.error = 'A token value is required '
}
}
ngOnInit() {
this.activate();
}
и вот мой тест
fdescribe('ActivateComponent', () => {
let component: ActivateComponent;
let fixture: ComponentFixture<ActivateComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ActivateComponent ],
imports: [ RouterModule, RouterTestingModule, HttpClientTestingModule, MatDialogModule ],
providers: [ AuthService, AlertService, ActivatedRouteMock,]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ActivateComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should check if username and token have been filled out', () => {
component.username = 'test@example.com';
component.token = '12345';
console.log(component.username);
// expect(component).toBeTruthy();
});
});