mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
[8.6] Properly re-expose close
method from the createPointInTimeFinderDecryptedAsInternalUser
API. (#147241) (#147258)
# Backport This will backport the following commits from `main` to `8.6`: - [Properly re-expose `close` method from the `createPointInTimeFinderDecryptedAsInternalUser` API. (#147241)](https://github.com/elastic/kibana/pull/147241) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Aleh Zasypkin","email":"aleh.zasypkin@elastic.co"},"sourceCommit":{"committedDate":"2022-12-08T15:00:20Z","message":"Properly re-expose `close` method from the `createPointInTimeFinderDecryptedAsInternalUser` API. (#147241)","sha":"12e9e35eb642b3c1ba4f9c45a08929fba763da9d","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug","Team:Security","release_note:skip","Feature:Security/Encrypted Saved Objects","backport:prev-minor","v8.7.0"],"number":147241,"url":"https://github.com/elastic/kibana/pull/147241","mergeCommit":{"message":"Properly re-expose `close` method from the `createPointInTimeFinderDecryptedAsInternalUser` API. (#147241)","sha":"12e9e35eb642b3c1ba4f9c45a08929fba763da9d"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v8.7.0","labelRegex":"^v8.7.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/147241","number":147241,"mergeCommit":{"message":"Properly re-expose `close` method from the `createPointInTimeFinderDecryptedAsInternalUser` API. (#147241)","sha":"12e9e35eb642b3c1ba4f9c45a08929fba763da9d"}}]}] BACKPORT--> Co-authored-by: Aleh Zasypkin <aleh.zasypkin@elastic.co>
This commit is contained in:
parent
0c9e0801e7
commit
5e71a52c04
3 changed files with 30 additions and 1 deletions
|
@ -332,5 +332,32 @@ describe('#setupSavedObjects', () => {
|
|||
expect(res.saved_objects[0].error).toHaveProperty('message', 'Test failure');
|
||||
}
|
||||
});
|
||||
|
||||
it('properly re-exposes `close` method of the underlying point in time finder ', async () => {
|
||||
// The finder that underlying repository returns is an instance of a `PointInTimeFinder` class that cannot, and
|
||||
// unlike object literal it cannot be "copied" with the spread operator. We should make sure we properly re-expose
|
||||
// `close` function.
|
||||
const mockClose = jest.fn();
|
||||
mockSavedObjectsRepository.createPointInTimeFinder = jest.fn().mockImplementation(() => {
|
||||
class MockPointInTimeFinder {
|
||||
async close() {
|
||||
mockClose();
|
||||
}
|
||||
async *find() {}
|
||||
}
|
||||
|
||||
return new MockPointInTimeFinder();
|
||||
});
|
||||
|
||||
const finder = await setupContract().createPointInTimeFinderDecryptedAsInternalUser({
|
||||
type: 'known-type',
|
||||
});
|
||||
|
||||
expect(finder.find).toBeInstanceOf(Function);
|
||||
expect(finder.close).toBeInstanceOf(Function);
|
||||
|
||||
await finder.close();
|
||||
expect(mockClose).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -184,7 +184,7 @@ export function setupSavedObjects({
|
|||
}
|
||||
}
|
||||
|
||||
return { ...finder, find: () => encryptedFinder() };
|
||||
return { find: () => encryptedFinder(), close: finder.close.bind(finder) };
|
||||
},
|
||||
};
|
||||
};
|
||||
|
|
|
@ -68,6 +68,8 @@ export function registerHiddenSORoutes(
|
|||
savedObjects = [...savedObjects, ...result.saved_objects];
|
||||
}
|
||||
|
||||
await finder.close();
|
||||
|
||||
try {
|
||||
return response.ok({
|
||||
body: { saved_objects: savedObjects },
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue