[Stack Monitoring] fix error handling during executeCheck (#115091)

* fix error property and add functional test, update jest unit test

* update test
This commit is contained in:
Sandra G 2021-10-15 09:46:41 -04:00 committed by GitHub
parent a41cee1b34
commit 45c3d2b017
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 47 additions and 11 deletions

View file

@ -220,12 +220,10 @@ async function executeCheck(checker: SettingsChecker, http: { fetch: any }): Pro
return { found, reason };
} catch (err: any) {
const { data } = err;
return {
error: true,
found: false,
errorReason: data,
errorReason: err.body,
};
}
}

View file

@ -1,15 +1,17 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`WeTried should render "we tried" message 1`] = `
Array [
<div
data-test-subj="weTriedContainer"
>
<h2
class="euiTitle euiTitle--large"
>
We couldn't activate monitoring
</h2>,
</h2>
<hr
class="euiHorizontalRule euiHorizontalRule--half euiHorizontalRule--marginLarge"
/>,
/>
<div
class="euiText euiText--medium eui-textLeft"
>
@ -19,6 +21,6 @@ Array [
<p>
If data is in your cluster, your monitoring dashboards will show up here.
</p>
</div>,
]
</div>
</div>
`;

View file

@ -5,13 +5,13 @@
* 2.0.
*/
import React, { Fragment } from 'react';
import React from 'react';
import { EuiText, EuiHorizontalRule, EuiTitle } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n/react';
export function WeTried() {
return (
<Fragment>
<div data-test-subj="weTriedContainer">
<EuiTitle size="l">
<h2>
<FormattedMessage
@ -36,6 +36,6 @@ export function WeTried() {
/>
</p>
</EuiText>
</Fragment>
</div>
);
}

View file

@ -13,6 +13,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
const security = getService('security');
const appsMenu = getService('appsMenu');
const PageObjects = getPageObjects(['common', 'security']);
const noData = getService('monitoringNoData');
describe('security', () => {
before(async () => {
@ -103,5 +104,32 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
expect(navLinks).to.contain('Stack Monitoring');
});
});
describe('monitoring_user and kibana_admin roles', function () {
this.tags(['skipCloud']);
before(async () => {
await security.user.create('monitoring_kibana_admin_user', {
password: 'monitoring_user-password',
roles: ['monitoring_user', 'kibana_admin'],
full_name: 'monitoring user',
});
await PageObjects.security.login(
'monitoring_kibana_admin_user',
'monitoring_user-password'
);
});
after(async () => {
await security.user.delete('monitoring_kibana_admin_user');
});
it('denies enabling monitoring without enough permissions', async () => {
await PageObjects.common.navigateToApp('monitoring');
await noData.isOnNoDataPage();
await noData.clickSetupWithSelfMonitoring();
expect(await noData.isOnNoDataPageMonitoringEnablementDenied()).to.be(true);
});
});
});
}

View file

@ -30,5 +30,13 @@ export function MonitoringNoDataProvider({ getService }) {
const pageId = await retry.try(() => testSubjects.find('noDataContainer'));
return pageId !== null;
}
async isOnNoDataPageMonitoringEnablementDenied() {
return testSubjects.exists('weTriedContainer');
}
async clickSetupWithSelfMonitoring() {
await testSubjects.click('useInternalCollection');
}
})();
}