Management API - redirect on disabled app path (#55136)

* redirect on disabled management app path
This commit is contained in:
Matthew Kime 2020-01-17 17:57:24 -06:00 committed by GitHub
parent 6cfd1d48b3
commit c1ccb304b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 2 deletions

View file

@ -1,3 +1,3 @@
<kbn-management-app>
<div id="management-landing"></div>
<div id="management-landing" data-test-subj="management-landing"></div>
</kbn-management-app>

View file

@ -34,7 +34,7 @@ export class ManagementApp {
readonly basePath: string;
readonly order: number;
readonly mount: ManagementSectionMount;
protected enabledStatus: boolean = true;
private enabledStatus = true;
constructor(
{ id, title, basePath, order = 100, mount }: CreateManagementApp,
@ -54,6 +54,11 @@ export class ManagementApp {
title,
mount: async ({}, params) => {
let appUnmount: Unmount;
if (!this.enabledStatus) {
const [coreStart] = await getStartServices();
coreStart.application.navigateToApp('kibana#/management');
return () => {};
}
async function setBreadcrumbs(crumbs: ChromeBreadcrumb[]) {
const [coreStart] = await getStartServices();
coreStart.chrome.setBreadcrumbs([

View file

@ -62,6 +62,22 @@ export class ManagementTestPlugin
};
},
});
testSection!
.registerApp({
id: 'test-management-disabled',
title: 'Management Test Disabled',
mount(params) {
params.setBreadcrumbs([{ text: 'Management Test Disabled' }]);
ReactDOM.render(<div>This is a secret that should never be seen!</div>, params.element);
return () => {
ReactDOM.unmountComponentAtNode(params.element);
};
},
})
.disable();
return {};
}

View file

@ -36,5 +36,13 @@ export default function({ getService, getPageObjects }) {
await testSubjects.click('test-management-link-basepath');
await testSubjects.existOrFail('test-management-link-one');
});
it('should redirect when app is disabled', async () => {
await PageObjects.common.navigateToActualUrl(
'kibana',
'management/test-section/test-management-disabled'
);
await testSubjects.existOrFail('management-landing');
});
});
}