Be more specific when accessing firestore provider config
Signed-off-by: Marcus Eide <eide@spotify.com>
This commit is contained in:
@@ -63,6 +63,7 @@ describe('KeyStores', () => {
|
||||
|
||||
it('can handle additional provider config', async () => {
|
||||
jest.spyOn(FirestoreKeyStore, 'verifyConnection').mockResolvedValue();
|
||||
const createSpy = jest.spyOn(FirestoreKeyStore, 'create');
|
||||
|
||||
const configOptions = {
|
||||
auth: {
|
||||
@@ -70,6 +71,12 @@ describe('KeyStores', () => {
|
||||
provider: 'firestore',
|
||||
firestore: {
|
||||
projectId: 'my-project',
|
||||
keyFilename: 'cred.json',
|
||||
path: 'my-path',
|
||||
timeout: 100,
|
||||
host: 'localhost',
|
||||
port: 8088,
|
||||
ssl: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -78,6 +85,9 @@ describe('KeyStores', () => {
|
||||
const keyStore = await KeyStores.fromConfig(config);
|
||||
|
||||
expect(keyStore).toBeInstanceOf(FirestoreKeyStore);
|
||||
expect(createSpy).toHaveBeenCalledWith(
|
||||
configOptions.auth.keyStore.firestore,
|
||||
);
|
||||
expect(
|
||||
config
|
||||
.getOptionalConfig('auth.keyStore')
|
||||
|
||||
@@ -21,10 +21,7 @@ import { Config } from '@backstage/config';
|
||||
|
||||
import { DatabaseKeyStore } from './DatabaseKeyStore';
|
||||
import { MemoryKeyStore } from './MemoryKeyStore';
|
||||
import {
|
||||
FirestoreKeyStore,
|
||||
FirestoreKeyStoreSettings,
|
||||
} from './FirestoreKeyStore';
|
||||
import { FirestoreKeyStore } from './FirestoreKeyStore';
|
||||
import { KeyStore } from './types';
|
||||
|
||||
type Options = {
|
||||
@@ -65,8 +62,18 @@ export class KeyStores {
|
||||
}
|
||||
|
||||
if (provider === 'firestore') {
|
||||
const settings = ks?.getOptional(provider) as FirestoreKeyStoreSettings;
|
||||
const keyStore = await FirestoreKeyStore.create(settings);
|
||||
const settings = ks?.getConfig(provider);
|
||||
|
||||
const keyStore = await FirestoreKeyStore.create({
|
||||
projectId: settings?.getOptionalString('projectId'),
|
||||
keyFilename: settings?.getOptionalString('keyFilename'),
|
||||
host: settings?.getOptionalString('host'),
|
||||
port: settings?.getOptionalNumber('port'),
|
||||
ssl: settings?.getOptionalBoolean('ssl'),
|
||||
path: settings?.getOptionalString('path'),
|
||||
timeout: settings?.getOptionalNumber('timeout'),
|
||||
});
|
||||
|
||||
await FirestoreKeyStore.verifyConnection(keyStore, logger);
|
||||
|
||||
return keyStore;
|
||||
|
||||
Reference in New Issue
Block a user