diff --git a/src/Squidex/app/features/settings/pages/languages/languages-page.component.ts b/src/Squidex/app/features/settings/pages/languages/languages-page.component.ts index a94ecd554..33fc6cf3d 100644 --- a/src/Squidex/app/features/settings/pages/languages/languages-page.component.ts +++ b/src/Squidex/app/features/settings/pages/languages/languages-page.component.ts @@ -18,7 +18,7 @@ import { ImmutableArray, MessageBus, LanguageDto, - LanguageService, + LanguagesService, NotificationService, Version } from 'shared'; @@ -44,7 +44,7 @@ export class LanguagesPageComponent extends AppComponentBase implements OnInit { constructor(apps: AppsStoreService, notifications: NotificationService, private readonly appLanguagesService: AppLanguagesService, - private readonly languagesService: LanguageService, + private readonly languagesService: LanguagesService, private readonly messageBus: MessageBus, private readonly formBuilder: FormBuilder ) { diff --git a/src/Squidex/app/shared/module.ts b/src/Squidex/app/shared/module.ts index bc1d806e6..71a2224d3 100644 --- a/src/Squidex/app/shared/module.ts +++ b/src/Squidex/app/shared/module.ts @@ -30,7 +30,7 @@ import { HistoryComponent, HistoryService, LanguageSelectorComponent, - LanguageService, + LanguagesService, MustBeAuthenticatedGuard, MustBeNotAuthenticatedGuard, PlansService, @@ -108,7 +108,7 @@ export class SqxSharedModule { EventConsumersService, HelpService, HistoryService, - LanguageService, + LanguagesService, MustBeAuthenticatedGuard, MustBeNotAuthenticatedGuard, PlansService, diff --git a/src/Squidex/app/shared/services/languages.service.spec.ts b/src/Squidex/app/shared/services/languages.service.spec.ts new file mode 100644 index 000000000..a2b7f4b5c --- /dev/null +++ b/src/Squidex/app/shared/services/languages.service.spec.ts @@ -0,0 +1,65 @@ +/* + * Squidex Headless CMS + * + * @license + * Copyright (c) Sebastian Stehle. All rights reserved + */ + +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; +import { inject, TestBed } from '@angular/core/testing'; + +import { + ApiUrlConfig, + LanguageDto, + LanguagesService +} from './../'; + +describe('LanguageService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ + HttpClientTestingModule + ], + providers: [ + LanguagesService, + { provide: ApiUrlConfig, useValue: new ApiUrlConfig('http://service/p/') } + ] + }); + }); + + afterEach(inject([HttpTestingController], (httpMock: HttpTestingController) => { + httpMock.verify(); + })); + + it('should make get request to get languages', + inject([LanguagesService, HttpTestingController], (languagesService: LanguagesService, httpMock: HttpTestingController) => { + + let languages: LanguageDto[] | null = null; + + languagesService.getLanguages().subscribe(result => { + languages = result; + }); + + const req = httpMock.expectOne('http://service/p/api/languages'); + + expect(req.request.method).toEqual('GET'); + expect(req.request.headers.get('If-Match')).toBeNull(); + + req.flush([ + { + iso2Code: 'de', + englishName: 'German' + }, + { + iso2Code: 'en', + englishName: 'English' + } + ]); + + expect(languages).toEqual( + [ + new LanguageDto('de', 'German'), + new LanguageDto('en', 'English') + ]); + })); +}); \ No newline at end of file diff --git a/src/Squidex/app/shared/services/languages.service.ts b/src/Squidex/app/shared/services/languages.service.ts index f4cdfb3e5..18dbd93e6 100644 --- a/src/Squidex/app/shared/services/languages.service.ts +++ b/src/Squidex/app/shared/services/languages.service.ts @@ -22,7 +22,7 @@ export class LanguageDto { } @Injectable() -export class LanguageService { +export class LanguagesService { constructor( private readonly http: HttpClient, private readonly apiUrl: ApiUrlConfig