Skip to content

Commit

Permalink
[Search sessions] Don't show incomplete warning if search requests ar…
Browse files Browse the repository at this point in the history
…en't in session (elastic#112364)

* [Search sessions] Don't show incomplete warning if search requests aren't in session"

* Update src/plugins/data/public/search/search_interceptor/search_interceptor.ts

Co-authored-by: Anton Dosov <dosantappdev@gmail.com>

* Fix lint

Co-authored-by: Anton Dosov <dosantappdev@gmail.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
  • Loading branch information
3 people committed Sep 22, 2021
1 parent ab538fa commit 71417cd
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -501,12 +501,12 @@ describe('SearchInterceptor', () => {
opts: {
isRestore?: boolean;
isStored?: boolean;
sessionId: string;
sessionId?: string;
} | null
) => {
const sessionServiceMock = sessionService as jest.Mocked<ISessionService>;
sessionServiceMock.getSearchOptions.mockImplementation(() =>
opts
opts && opts.sessionId
? {
sessionId: opts.sessionId,
isRestore: opts.isRestore ?? false,
Expand All @@ -515,6 +515,7 @@ describe('SearchInterceptor', () => {
: null
);
sessionServiceMock.isRestore.mockReturnValue(!!opts?.isRestore);
sessionServiceMock.getSessionId.mockImplementation(() => opts?.sessionId);
fetchMock.mockResolvedValue({ result: 200 });
};

Expand Down Expand Up @@ -606,6 +607,41 @@ describe('SearchInterceptor', () => {
expect(SearchSessionIncompleteWarning).toBeCalledTimes(0);
});

test('should not show warning if a search outside of session is running', async () => {
setup({
isRestore: false,
isStored: false,
});

const responses = [
{
time: 10,
value: {
isPartial: false,
isRunning: false,
isRestored: false,
id: 1,
rawResponse: {
took: 1,
},
},
},
];
mockFetchImplementation(responses);

const response = searchInterceptor.search(
{},
{
sessionId: undefined,
}
);
response.subscribe({ next, error, complete });

await timeTravel(10);

expect(SearchSessionIncompleteWarning).toBeCalledTimes(0);
});

test('should show warning once if a search is not available during restore', async () => {
setup({
isRestore: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,8 +352,14 @@ export class SearchInterceptor {
);
}),
tap((response) => {
if (this.deps.session.isRestore() && response.isRestored === false) {
this.showRestoreWarning(this.deps.session.getSessionId());
const isSearchInScopeOfSession =
sessionId && sessionId === this.deps.session.getSessionId();
if (
isSearchInScopeOfSession &&
this.deps.session.isRestore() &&
response.isRestored === false
) {
this.showRestoreWarning(sessionId);
}
}),
finalize(() => {
Expand Down

0 comments on commit 71417cd

Please sign in to comment.