diff --git a/packages/kvstore/src/index.test.ts b/packages/kvstore/src/index.test.ts index 5a9fe3b5..eb6c0cd5 100644 --- a/packages/kvstore/src/index.test.ts +++ b/packages/kvstore/src/index.test.ts @@ -10,6 +10,15 @@ class TestClient extends KeyValueStoreClient { } describe('KeyValueStoreClient', () => { + const envs = process.env; + beforeEach(() => { + process.env = { ...envs }; + }); + + afterEach(() => { + process.env = envs; + }); + describe('create', () => { test('creates a local client', async () => { const client = new TestClient({ path: '/tmp/foo' }); @@ -17,6 +26,7 @@ describe('KeyValueStoreClient', () => { }); test('creates an autotask client', async () => { + process.env.DEFENDER_ENV = 'DEFENDER_ACTION_ENVIRONMENT'; const credentials = JSON.stringify({ AccessKeyId: 'keyId', SecretAccessKey: 'accessKey', diff --git a/packages/kvstore/src/index.ts b/packages/kvstore/src/index.ts index ba406c01..0684a276 100644 --- a/packages/kvstore/src/index.ts +++ b/packages/kvstore/src/index.ts @@ -12,7 +12,11 @@ export class KeyValueStoreClient implements IKeyValueStoreClient { protected implementation: IKeyValueStoreClient; public constructor(params: KeyValueStoreCreateParams | LocalKeyValueStoreCreateParams) { - if (isActionCreateParams(params)) { + const defenderEnv = process.env.DEFENDER_ENV; + if (defenderEnv === 'DEFENDER_ACTION_ENVIRONMENT') { + if (!isActionCreateParams(params)) { + throw new Error('Invalid create params for KeyValueStoreClient'); + } // eslint-disable-next-line @typescript-eslint/no-var-requires const { KeyValueStoreActionClient } = require('./action'); this.implementation = new KeyValueStoreActionClient(params);