Add Lens to Recently Accessed (#77249)

added lens to recently accessed on load and save in app.tsx
This commit is contained in:
Devon Thomson 2020-09-14 13:52:14 -04:00 committed by GitHub
parent 5c457d1e82
commit 003fcb1332
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 43 additions and 0 deletions

View file

@ -16,3 +16,7 @@ export function getBasePath() {
export function getEditPath(id: string) {
return `#/edit/${encodeURIComponent(id)}`;
}
export function getFullPath(id: string) {
return `/app/${PLUGIN_ID}${getEditPath(id)}`;
}

View file

@ -300,6 +300,29 @@ describe('Lens App', () => {
]);
});
it('adds to the recently viewed list on load', async () => {
const defaultArgs = makeDefaultArgs();
instance = mount(<App {...defaultArgs} />);
(defaultArgs.docStorage.load as jest.Mock).mockResolvedValue({
id: '1234',
title: 'Daaaaaaadaumching!',
state: {
query: 'fake query',
filters: [],
},
references: [],
});
await act(async () => {
instance.setProps({ docId: '1234' });
});
expect(defaultArgs.core.chrome.recentlyAccessed.add).toHaveBeenCalledWith(
'/app/lens#/edit/1234',
'Daaaaaaadaumching!',
'1234'
);
});
it('sets originatingApp breadcrumb when the document title changes', async () => {
const defaultArgs = makeDefaultArgs();
defaultArgs.originatingApp = 'ultraCoolDashboard';
@ -591,6 +614,19 @@ describe('Lens App', () => {
expect(args.docStorage.load).not.toHaveBeenCalled();
});
it('adds to the recently viewed list on save', async () => {
const { args } = await save({
initialDocId: undefined,
newCopyOnSave: false,
newTitle: 'hello there',
});
expect(args.core.chrome.recentlyAccessed.add).toHaveBeenCalledWith(
'/app/lens#/edit/aaa',
'hello there',
'aaa'
);
});
it('saves the latest doc as a copy', async () => {
const { args, instance: inst } = await save({
initialDocId: '1234',

View file

@ -39,6 +39,7 @@ import {
IndexPatternsContract,
SavedQuery,
} from '../../../../../src/plugins/data/public';
import { getFullPath } from '../../common';
interface State {
indicateNoData: boolean;
@ -271,6 +272,7 @@ export function App({
docStorage
.load(docId)
.then((doc) => {
core.chrome.recentlyAccessed.add(getFullPath(docId), doc.title, docId);
getAllIndexPatterns(
_.uniq(
doc.references.filter(({ type }) => type === 'index-pattern').map(({ id }) => id)
@ -365,6 +367,7 @@ export function App({
docStorage
.save(doc)
.then(({ id }) => {
core.chrome.recentlyAccessed.add(getFullPath(id), doc.title, id);
// Prevents unnecessary network request and disables save button
const newDoc = { ...doc, id };
const currentOriginatingApp = state.originatingApp;