test: adjust tests to config init changes

This commit is contained in:
Jovan Krunić
2022-02-09 21:28:18 +01:00
parent c9720dc104
commit 19b36c07b7
7 changed files with 61 additions and 45 deletions

View File

@@ -35,6 +35,7 @@ import packageJson from '../../../../package.json';
describe('ConfigProvider', () => {
let configProvider: ConfigProvider;
let storageProviderSpy: jasmine.SpyObj<StorageProvider>;
let ngxLogger: jasmine.SpyObj<NGXLogger>;
beforeEach(() => {
const storageProviderMethodSpy = jasmine.createSpyObj('StorageProvider', [
@@ -46,10 +47,7 @@ describe('ConfigProvider', () => {
const webHttpClientMethodSpy = jasmine.createSpyObj('StAppsWebHttpClient', [
'request',
]);
const ngxLogger: jasmine.SpyObj<NGXLogger> = jasmine.createSpyObj(
'NGXLogger',
['log', 'error', 'warn'],
);
ngxLogger = jasmine.createSpyObj('NGXLogger', ['log', 'error', 'warn']);
TestBed.configureTestingModule({
imports: [],
@@ -112,27 +110,6 @@ describe('ConfigProvider', () => {
);
});
it('should init from storage when remote fails', async () => {
storageProviderSpy.has.and.returnValue(Promise.resolve(true));
storageProviderSpy.get.and.returnValue(
Promise.resolve(sampleIndexResponse),
);
spyOn(configProvider.client, 'handshake').and.throwError('');
// eslint-disable-next-line unicorn/error-message
let error = new Error('');
try {
await configProvider.init();
} catch (error_) {
error = error_;
}
expect(error).toEqual(new ConfigFetchError());
expect(storageProviderSpy.has).toHaveBeenCalled();
expect(storageProviderSpy.get).toHaveBeenCalled();
expect(await configProvider.getValue('name')).toEqual(
sampleIndexResponse.app.name,
);
});
it('should throw error on failed initialisation', async () => {
storageProviderSpy.has.and.returnValue(Promise.resolve(false));
spyOn(configProvider.client, 'handshake').and.throwError('');
@@ -154,14 +131,14 @@ describe('ConfigProvider', () => {
spyOn(configProvider.client, 'handshake').and.returnValue(
Promise.resolve(sampleIndexResponse),
);
// eslint-disable-next-line unicorn/no-null
let error = null;
try {
await configProvider.init();
} catch (error_) {
error = error_;
}
expect(error).toEqual(new WrongConfigVersionInStorage(scVersion, '0.1.0'));
await configProvider.init();
expect(ngxLogger.warn).toHaveBeenCalledWith(
new WrongConfigVersionInStorage(
configProvider.scVersion,
wrongConfig.backend.SCVersion,
),
);
});
it('should throw error on saved app configuration not available', async () => {
@@ -203,13 +180,15 @@ describe('ConfigProvider', () => {
);
});
it('should return app configuration value if only saved config is available and fetch fails', async () => {
it('should init from storage when remote fails', async () => {
storageProviderSpy.has.and.returnValue(Promise.resolve(true));
storageProviderSpy.get.and.returnValue(
Promise.resolve(sampleIndexResponse),
);
spyOn(configProvider.client, 'handshake').and.throwError('');
expect(await configProvider.getValue('name')).toEqual(
await configProvider.init();
expect(configProvider.getValue('name')).toEqual(
sampleIndexResponse.app.name,
);
});

View File

@@ -133,7 +133,6 @@ export class ConfigProvider {
this.scVersion,
this.config.backend.SCVersion,
);
this.logger.warn(loadError);
}
} catch (error) {
loadError = error;
@@ -154,7 +153,7 @@ export class ConfigProvider {
this.logger.warn(loadError);
}
if (typeof fetchError !== 'undefined') {
throw fetchError;
this.logger.warn(fetchError);
}
}