@updating-secrets/1password-adapter
Version:
1password adapter for the updating-secrets package.
32 lines (31 loc) • 1.08 kB
JavaScript
import { assert } from '@augment-vir/assert';
/**
* A mock implementation of `InfisicalSDK` from the
* [@infisical/sdk](https://www.npmjs.com/package/@infisical/sdk) package. This only mocks what is
* necessary for the infisical adapter to work.
*
* @category Mocks
*/
export class MockOnePasswordSdk {
mockSecrets;
constructor(mockSecrets) {
this.mockSecrets = mockSecrets;
}
/** Mocks 1Password's `Client.items` API. */
items = {
/** Mocks 1Password's `Client.items.get` method. */
get: async (vaultId, itemId) => {
const mockValue = this.mockSecrets[vaultId]?.[itemId];
assert.isDefined(mockValue, `No mock 1Password secret found with vault ID '${vaultId}' and item id '${itemId}'`);
const item = {
fields: Object.entries(mockValue).map(([title, value,]) => {
return {
title,
value,
};
}),
};
return Promise.resolve(item);
},
};
}