diff --git a/.changeset/cold-years-read.md b/.changeset/cold-years-read.md new file mode 100644 index 00000000..cc9dad1a --- /dev/null +++ b/.changeset/cold-years-read.md @@ -0,0 +1,5 @@ +--- +"@openstapps/app": patch +--- + +fixed config version comparison diff --git a/frontend/app/src/app/modules/config/config.provider.spec.ts b/frontend/app/src/app/modules/config/config.provider.spec.ts index aaf7bdea..79c6103a 100644 --- a/frontend/app/src/app/modules/config/config.provider.spec.ts +++ b/frontend/app/src/app/modules/config/config.provider.spec.ts @@ -132,6 +132,8 @@ describe('ConfigProvider', () => { wrongConfig.backend.SCVersion = '0.1.0'; storageProviderSpy.get.and.returnValue(Promise.resolve(wrongConfig)); spyOn(configProvider.client, 'handshake').and.returnValue(Promise.resolve(sampleIndexResponse)); + // sets StApps core version which has a different major version + configProvider.scVersion = '1.0.0'; await configProvider.init(); expect(ngxLogger.warn).toHaveBeenCalledWith( @@ -139,6 +141,19 @@ describe('ConfigProvider', () => { ); }); + it('should load from storage if offline and same major version stored', async () => { + internetConnectionServiceMock = {offline$: new BehaviorSubject(true)}; + storageProviderSpy.has.and.returnValue(Promise.resolve(true)); + const configInStorage = structuredClone(sampleIndexResponse); + configInStorage.backend.SCVersion = '1.0.0'; + storageProviderSpy.get.and.returnValue(Promise.resolve(configInStorage)); + // sets StApps core version which has the same major version + configProvider.scVersion = '1.1.1'; + await configProvider.init(); + + expect(configProvider.getAnyValue('app')).toEqual(configInStorage.app); + }); + it('should throw error on saved app configuration not available', async () => { storageProviderSpy.has.and.returnValue(Promise.resolve(false)); // eslint-disable-next-line unicorn/error-message diff --git a/frontend/app/src/app/modules/config/config.provider.ts b/frontend/app/src/app/modules/config/config.provider.ts index aaa9ff18..c26e779f 100644 --- a/frontend/app/src/app/modules/config/config.provider.ts +++ b/frontend/app/src/app/modules/config/config.provider.ts @@ -132,7 +132,7 @@ export class ConfigProvider { this.config = await this.loadLocal(); this.firstSession = false; this.logger.log(`initialised configuration from storage`); - if (this.config.backend.SCVersion !== this.scVersion) { + if (this.config.backend.SCVersion.split('.')[0] !== this.scVersion.split('.')[0]) { loadError = new WrongConfigVersionInStorage(this.scVersion, this.config.backend.SCVersion); } } catch (error) {