Replaces implementation in simple saved object mock with an actual mock (#138942)

This commit is contained in:
Christiane (Tina) Heiligers 2022-08-16 15:08:10 -07:00 committed by GitHub
parent 39675863b0
commit f300bae1ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -6,15 +6,62 @@
* Side Public License, v 1.
*/
import type { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-browser';
import { SimpleSavedObjectImpl } from '@kbn/core-saved-objects-browser-internal';
import type {
SavedObjectsClientContract,
SimpleSavedObject,
} from '@kbn/core-saved-objects-api-browser';
import type { SavedObject } from '@kbn/core-saved-objects-common';
type T = unknown;
const simpleSavedObjectMockDefaults: Partial<SimpleSavedObject<T>> = {
attributes: {},
_version: '',
id: 'id',
type: 'type',
migrationVersion: {},
coreMigrationVersion: '8.0.0',
error: undefined,
references: [],
updatedAt: '',
namespaces: undefined,
};
const createSimpleSavedObjectMock = (
client: SavedObjectsClientContract,
savedObject: SavedObject<unknown>
) => new SimpleSavedObjectImpl(client, savedObject);
savedObject: SavedObject
): jest.Mocked<SimpleSavedObject<T>> => {
const mock = {
...simpleSavedObjectMockDefaults,
attributes: savedObject.attributes,
_version: savedObject.version,
id: savedObject.id,
type: savedObject.type,
migrationVersion: savedObject.migrationVersion,
coreMigrationVersion: savedObject.coreMigrationVersion,
error: savedObject.error,
references: savedObject.references,
updatedAt: savedObject.updated_at,
namespaces: savedObject.namespaces,
get: jest.fn(),
set: jest.fn(),
has: jest.fn(),
save: jest.fn(),
delete: jest.fn(),
};
mock.get.mockImplementation(
(key: string): any => (savedObject.attributes as any)[key] || undefined
);
mock.set.mockReturnValue((key: string, value: any) => {
(savedObject as any)[key] = value;
return savedObject;
});
mock.has.mockReturnValue(true);
mock.save.mockImplementation(() => Promise.resolve(mock));
mock.delete.mockImplementation(() => Promise.resolve({}));
return mock;
};
export const simpleSavedObjectMock = {
create: createSimpleSavedObjectMock,
create: (client: SavedObjectsClientContract, savedObject: SavedObject) =>
createSimpleSavedObjectMock(savedObject),
};