[ACA-3870] Fix Version Compatibility Initialization (#6288)

This commit is contained in:
davidcanonieto
2020-10-29 10:42:57 +00:00
committed by GitHub
parent 2250dbc47a
commit de580b64f2
3 changed files with 23 additions and 6 deletions

View File

@@ -37,10 +37,12 @@ export class VersionCompatibilityDirective {
}
private validateAcsVersion(requiredVersion: string) {
this.versionCompatibilityService.acsVersionInitialized$.subscribe(() => {
if (requiredVersion && this.versionCompatibilityService.isVersionSupported(requiredVersion)) {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
});
}
}

View File

@@ -73,4 +73,11 @@ describe('VersionCompatibilityService', () => {
expect(versionCompatibilityService.isVersionSupported('7.0.0')).toBe(true);
expect(versionCompatibilityService.isVersionSupported('6.0.0')).toBe(true);
});
it('should emit versionCompatibilityInitialized after retrieving acs version', (done) => {
versionCompatibilityService.acsVersionInitialized$.subscribe(() => {
expect(versionCompatibilityService.getAcsVersion()).toEqual({ display: '7.0.1', major: '7', minor: '0', patch: '1' } as any);
done();
});
});
});

View File

@@ -19,6 +19,7 @@ import { Injectable } from '@angular/core';
import { DiscoveryApiService } from './discovery-api.service';
import { VersionModel, EcmProductVersionModel } from '../models/product-version.model';
import { filter } from 'rxjs/operators';
import { ReplaySubject } from 'rxjs';
@Injectable({
providedIn: 'root'
@@ -26,10 +27,17 @@ import { filter } from 'rxjs/operators';
export class VersionCompatibilityService {
private acsVersion: VersionModel;
acsVersionInitialized$ = new ReplaySubject();
constructor(private discoveryApiService: DiscoveryApiService) {
this.discoveryApiService.ecmProductInfo$
.pipe(filter(acsInfo => !!acsInfo))
.subscribe((acsInfo: EcmProductVersionModel) => this.acsVersion = acsInfo.version);
.subscribe((acsInfo: EcmProductVersionModel) => this.initializeAcsVersion(acsInfo.version));
}
private initializeAcsVersion(acsVersion: VersionModel) {
this.acsVersion = acsVersion;
this.acsVersionInitialized$.next();
}
getAcsVersion(): VersionModel {