/*! * @license * Copyright 2016 Alfresco Software, Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { inject, TestBed } from '@angular/core/testing'; import { HttpModule, Response, ResponseOptions, XHRBackend } from '@angular/http'; import { MockBackend, MockConnection } from '@angular/http/testing'; import { AppConfigModule, AppConfigService } from './app-config.service'; describe('AppConfigService', () => { let appConfigService: AppConfigService; const mockResponse = { ecmHost: 'http://localhost:4000/ecm', bpmHost: 'http://localhost:4000/ecm', application: { name: 'Custom Name' }, files: { 'excluded': ['exluded'] } }; beforeEach(() => { TestBed.configureTestingModule({ imports: [ HttpModule, AppConfigModule ], providers: [ { provide: XHRBackend, useClass: MockBackend } ] }); }); beforeEach( inject([AppConfigService, XHRBackend], (appConfig: AppConfigService, mockBackend) => { appConfigService = appConfig; mockBackend.connections.subscribe((connection: MockConnection) => { connection.mockRespond(new Response(new ResponseOptions({ body: JSON.stringify(mockResponse) }))); }); }) ); it('should export service in the module', () => { const service = TestBed.get(AppConfigService); expect(service).toBeDefined(); }); it('should load external settings', () => { appConfigService.load().then(config => { expect(config).toEqual(mockResponse); }); }); it('should retrieve settings', () => { appConfigService.load().then(() => { expect(appConfigService.get('ecmHost')).toBe(mockResponse.ecmHost); expect(appConfigService.get('bpmHost')).toBe(mockResponse.bpmHost); expect(appConfigService.get('application.name')).toBe(mockResponse.application.name); }); }); it('should take excluded file list', () => { appConfigService.load().then(() => { expect(appConfigService.get('files.excluded')[0]).toBe('exluded'); }); }); });