Поскольку я никогда не писал Угловой модульный тест, мне нужна помощь в тестировании простого метода обслуживания.
Метод принимает activeBusinessCase и возвращает язык в виде строки на основе взятого activeBusinessCase. Например, если нет перевода для конкретного бизнес-случая, то возвращается строка «de», а если есть определенный язык, то возвращается «de_case1».
Это мой метод внутри файла configuration.service.ts:
getAutoConfiguredBCLanguage$(): Observable<string> {
return this.authService.activeBusinessCase$.pipe(
distinctUntilChanged(),
map(bc => this.getAutoConfiguredBCLanguage(bc))
);
}
getAutoConfiguredBCLanguage(activeBusinessCase?: string) {
const browserLang = this.translate.getBrowserLang();
console.log('BROWSER LANGUAGE: ', browserLang);
if (this.languages.hasOwnProperty(browserLang)) {
switch (activeBusinessCase) {
case 'CASE_1':
return browserLang.concat(this.businessCases.case_1);
case 'CASE_2':
return browserLang.concat(this.businessCases.case_2);
case 'CASE_2':
return browserLang.concat(this.businessCases.case_3);
default:
return browserLang;
}
} else {
return this.defaultLanguage;
}
}
И это текущее состояние моего теста, о котором я понятия не имею:
import { inject, TestBed } from '@angular/core/testing';
import { ConfigurationService } from './configuration.service';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { multiTranslateHttpLoaderFactory } from '../app.component';
import { HttpClient } from '@angular/common/http';
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { UserAuthService } from 'app/auth/user-auth.service';
describe('ConfigurationService', () => {
let config: ConfigurationService;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [ConfigurationService],
imports: [
HttpClientTestingModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: multiTranslateHttpLoaderFactory,
deps: [HttpClient, UserAuthService]
}
}),
]
});
});
it('should ...', inject([ConfigurationService], (service: ConfigurationService) => {
expect(service).toBeTruthy();
}));
describe('#parseUiInfo', () => {
it('should return a default or business case specific language', () => {
config.getAutoConfiguredBCLanguage();
// TODO
});
});
});
Может кто-нибудь помочь мне, пожалуйста?