TSK-1008: fixed update of environment-information.json on startup

This commit is contained in:
Mustapha Zorgati 2020-01-07 11:13:59 +01:00 committed by Holger Hagen
parent 9bf352d4bb
commit b64e12d78b
2 changed files with 48 additions and 36 deletions

View File

@ -40,7 +40,7 @@ describe('StartupService', () => {
httpMock = injector.get(HttpTestingController);
// UserService provided to the TestBed
service = TestBed.get(StartupService);
})
});
it('should be created', inject([StartupService], () => {
expect(service).toBeTruthy();
@ -53,7 +53,21 @@ describe('StartupService', () => {
expect(environment.taskanaRestUrl).toBe(someRestUrl);
expect(environment.taskanaLogoutUrl).toBe(someLogoutUrl);
done();
})
});
const req = httpMock.expectOne(environmentFile);
expect(req.request.method).toBe('GET');
req.flush(dummyEnvironmentInformation);
httpMock.verify();
});
it('should initialize rest and logout url from external file and override previous config', (done) => {
environment.taskanaRestUrl = 'oldRestUrl';
environment.taskanaLogoutUrl = 'oldLogoutUrl';
service.getEnvironmentFilePromise().then((res) => {
expect(environment.taskanaRestUrl).toBe(someRestUrl);
expect(environment.taskanaLogoutUrl).toBe(someLogoutUrl);
done();
});
const req = httpMock.expectOne(environmentFile);
expect(req.request.method).toBe('GET');
req.flush(dummyEnvironmentInformation);

View File

@ -18,31 +18,22 @@ export class StartupService {
private window: WindowRefService) {
}
public get router(): Router {
return this.injector.get(Router);
}
load(): Promise<any> {
return this.loadEnvironment();
}
private loadEnvironment() {
return this.getEnvironmentFilePromise().then(
() => this.geCustomizedFieldsFilePromise()
).then(
() => this.taskanaEngineService.getUserInformation()
).catch(error => {
this.window.nativeWindow.location.href = environment.taskanaRestUrl + '/login';
});
}
getEnvironmentFilePromise() {
return this.httpClient.get<any>('environments/data-sources/environment-information.json').pipe(map(jsonFile => {
if (jsonFile && environment.taskanaRestUrl === '') {
environment.taskanaRestUrl = jsonFile.taskanaRestUrl === '' ?
window.location.protocol + '//' + window.location.host : jsonFile.taskanaRestUrl;
if (jsonFile && jsonFile.taskanaRestUrl) {
environment.taskanaRestUrl = jsonFile.taskanaRestUrl;
}
if (jsonFile && environment.taskanaLogoutUrl === '') {
environment.taskanaLogoutUrl = jsonFile.taskanaLogoutUrl === '' ?
environment.taskanaRestUrl + '/logout' : jsonFile.taskanaLogoutUrl;
if (jsonFile && jsonFile.taskanaLogoutUrl) {
environment.taskanaLogoutUrl = jsonFile.taskanaLogoutUrl;
}
this.customFieldsService.initCustomFields('EN', jsonFile);
})).toPromise()
@ -62,7 +53,14 @@ export class StartupService {
});
}
public get router(): Router {
return this.injector.get(Router);
private loadEnvironment() {
return this.getEnvironmentFilePromise().then(
() => this.geCustomizedFieldsFilePromise()
).then(
() => this.taskanaEngineService.getUserInformation()
).catch(error => {
console.log(error);
//this.window.nativeWindow.location.href = environment.taskanaRestUrl + '/login';
});
}
}