diff --git a/src/plugins/data_source/server/saved_objects/data_source.test.ts b/src/plugins/data_source/server/saved_objects/data_source.test.ts new file mode 100644 index 000000000000..d465ee2a575b --- /dev/null +++ b/src/plugins/data_source/server/saved_objects/data_source.test.ts @@ -0,0 +1,29 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + */ + +import { migrateDataSource } from './data_source'; +import { savedObjectsServiceMock } from '../../../../core/server/mocks'; + +const contextMock = savedObjectsServiceMock.createMigrationContext(); + +describe('migrateDataSource Function', () => { + it('should return the input document unchanged', () => { + const mockDoc = { + id: 'test-id', + type: 'test-type', + attributes: { + name: 'Test Name', + description: 'Test Description', + }, + references: [], + }; + + // Call the migrateDataSource function with the mock document + const result = migrateDataSource(mockDoc, contextMock); + + // Expect the result to be deeply equal to the mock document + expect(result).toEqual(mockDoc); + }); +}); diff --git a/src/plugins/data_source/server/saved_objects/data_source.ts b/src/plugins/data_source/server/saved_objects/data_source.ts index 9404a4bcf371..3f31e7bd14b7 100644 --- a/src/plugins/data_source/server/saved_objects/data_source.ts +++ b/src/plugins/data_source/server/saved_objects/data_source.ts @@ -3,7 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { SavedObjectsType } from 'opensearch-dashboards/server'; +import { flow } from 'lodash'; +import { SavedObjectMigrationFn, SavedObjectsType } from 'opensearch-dashboards/server'; + +// create a migration function which return the doc without any changes +export const migrateDataSource: SavedObjectMigrationFn = (doc) => ({ + ...doc, +}); export const dataSource: SavedObjectsType = { name: 'data-source', @@ -34,4 +40,7 @@ export const dataSource: SavedObjectsType = { }, }, }, + migrations: { + '2.4.0': flow(migrateDataSource), // 2.4.0 is the version that introduces the datasource + }, };