mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
[Serverless][Observability] Use role-based testing - functional (#184823)
part of: [#184033](https://github.com/elastic/kibana/issues/184033) ## Summary This PR changes the observability serverless tests to not run with operator privileges. ### How to test - Follow the steps from https://github.com/elastic/kibana/blob/main/x-pack/test_serverless/README.md#run-tests-on-mki --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
f87eccf18f
commit
c7d682323a
26 changed files with 101 additions and 91 deletions
|
@ -18,7 +18,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
|
||||
describe('Observability advanced settings', function () {
|
||||
before(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithRole('admin');
|
||||
await pageObjects.common.navigateToApp('settings');
|
||||
});
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
|
|||
describe('Cases persistable attachments', function () {
|
||||
describe('lens visualization', () => {
|
||||
before(async () => {
|
||||
await svlCommonPage.login();
|
||||
await svlCommonPage.loginWithRole('admin');
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional');
|
||||
await kibanaServer.importExport.load(
|
||||
|
|
|
@ -23,7 +23,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
|
|||
|
||||
describe('Configure Case', function () {
|
||||
before(async () => {
|
||||
await svlCommonPage.login();
|
||||
await svlCommonPage.loginWithRole('admin');
|
||||
await svlObltNavigation.navigateToLandingPage();
|
||||
await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'observability-overview:cases' });
|
||||
await header.waitUntilLoadingHasFinished();
|
||||
|
|
|
@ -25,7 +25,7 @@ export default ({ getService, getPageObject }: FtrProviderContext) => {
|
|||
const header = getPageObject('header');
|
||||
|
||||
before(async () => {
|
||||
await svlCommonPage.login();
|
||||
await svlCommonPage.loginWithRole('admin');
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
|
|
@ -21,7 +21,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
|
|||
|
||||
describe('Cases list', function () {
|
||||
before(async () => {
|
||||
await svlCommonPage.login();
|
||||
await svlCommonPage.loginWithRole('admin');
|
||||
await svlObltNavigation.navigateToLandingPage();
|
||||
await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'observability-overview:cases' });
|
||||
});
|
||||
|
|
|
@ -36,7 +36,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
|
|||
|
||||
describe('Case View', function () {
|
||||
before(async () => {
|
||||
await svlCommonPage.login();
|
||||
await svlCommonPage.loginWithRole('admin');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -16,7 +16,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
describe('Header menu', () => {
|
||||
before(async () => {
|
||||
await esArchiver.load('x-pack/test/functional/es_archives/infra/metrics_and_logs');
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -45,7 +45,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
await Promise.all([
|
||||
esArchiver.load('x-pack/test/functional/es_archives/infra/metrics_and_logs'),
|
||||
]);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await browser.setWindowSize(1600, 1200);
|
||||
});
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
|
||||
describe('Infra pages', function () {
|
||||
before(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -26,7 +26,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
|
||||
describe('Infra Side Navigation', () => {
|
||||
before(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await svlObltNavigation.navigateToLandingPage();
|
||||
});
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
before(async () => {
|
||||
await esArchiver.load('x-pack/test/functional/es_archives/infra/metrics_and_logs');
|
||||
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await pageObjects.common.navigateToApp(
|
||||
`metrics/${NODE_DETAILS_PATH}/demo-stack-kubernetes-01`
|
||||
);
|
||||
|
|
|
@ -19,7 +19,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
// Error: Failed to delete all indices with pattern [.ml-*]
|
||||
this.tags(['failsOnMKI']);
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('admin');
|
||||
|
||||
// Load logstash* data and create dataview for logstash*, logstash-2015.09.22
|
||||
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional');
|
||||
|
|
|
@ -10,80 +10,90 @@ import { FtrProviderContext } from '../../../ftr_provider_context';
|
|||
export default function ({ getPageObjects }: FtrProviderContext) {
|
||||
const PageObjects = getPageObjects(['header', 'svlCommonPage', 'svlCommonNavigation']);
|
||||
|
||||
const allLabels = [
|
||||
{ label: 'Machine Learning', expected: true },
|
||||
{ label: 'Machine Learning / Overview', expected: true },
|
||||
{ label: 'Machine Learning / Anomaly Detection', expected: true },
|
||||
{ label: 'Machine Learning / Anomaly Detection / Anomaly explorer', expected: true },
|
||||
{ label: 'Machine Learning / Anomaly Detection / Single metric viewer', expected: true },
|
||||
{ label: 'Machine Learning / Data Frame Analytics', expected: false },
|
||||
{ label: 'Machine Learning / Data Frame Analytics / Results explorer', expected: false },
|
||||
{ label: 'Machine Learning / Data Frame Analytics / Analytics map', expected: false },
|
||||
{ label: 'Machine Learning / Model Management', expected: true },
|
||||
{ label: 'Machine Learning / Model Management / Trained Models', expected: true },
|
||||
{ label: 'Machine Learning / Model Management / Nodes', expected: false },
|
||||
{ label: 'Machine Learning / Memory Usage', expected: true },
|
||||
{ label: 'Machine Learning / Settings', expected: true },
|
||||
{ label: 'Machine Learning / Settings / Calendars', expected: true },
|
||||
{ label: 'Machine Learning / Settings / Filter Lists', expected: true },
|
||||
{ label: 'Machine Learning / AIOps', expected: true },
|
||||
{ label: 'Machine Learning / AIOps / Log Rate Analysis', expected: true },
|
||||
{ label: 'Machine Learning / AIOps / Log Pattern Analysis', expected: true },
|
||||
{ label: 'Machine Learning / AIOps / Change Point Detection', expected: true },
|
||||
{ label: 'Machine Learning / Notifications', expected: true },
|
||||
{ label: 'Machine Learning / Data Visualizer', expected: true },
|
||||
{ label: 'Machine Learning / File Upload', expected: true },
|
||||
{ label: 'Machine Learning / Index Data Visualizer', expected: true },
|
||||
{ label: 'Machine Learning / ES|QL Data Visualizer', expected: true },
|
||||
{ label: 'Machine Learning / Data Drift', expected: true },
|
||||
{ label: 'Alerts and Insights / Machine Learning', expected: true },
|
||||
];
|
||||
const allLabels = {
|
||||
viewer: [
|
||||
{ label: 'Machine Learning', expected: true },
|
||||
{ label: 'Machine Learning / Overview', expected: true },
|
||||
{ label: 'Machine Learning / Anomaly Detection', expected: true },
|
||||
{ label: 'Machine Learning / Anomaly Detection / Anomaly explorer', expected: true },
|
||||
{ label: 'Machine Learning / Anomaly Detection / Single metric viewer', expected: true },
|
||||
{ label: 'Machine Learning / Data Frame Analytics', expected: false },
|
||||
{ label: 'Machine Learning / Data Frame Analytics / Results explorer', expected: false },
|
||||
{ label: 'Machine Learning / Data Frame Analytics / Analytics map', expected: false },
|
||||
{ label: 'Machine Learning / Model Management', expected: true },
|
||||
{ label: 'Machine Learning / Model Management / Trained Models', expected: true },
|
||||
{ label: 'Machine Learning / Model Management / Nodes', expected: false },
|
||||
{ label: 'Machine Learning / Memory Usage', expected: true },
|
||||
{ label: 'Machine Learning / Settings', expected: true },
|
||||
{ label: 'Machine Learning / Settings / Calendars', expected: true },
|
||||
{ label: 'Machine Learning / Settings / Filter Lists', expected: true },
|
||||
{ label: 'Machine Learning / AIOps', expected: true },
|
||||
{ label: 'Machine Learning / AIOps / Log Rate Analysis', expected: true },
|
||||
{ label: 'Machine Learning / AIOps / Log Pattern Analysis', expected: true },
|
||||
{ label: 'Machine Learning / AIOps / Change Point Detection', expected: true },
|
||||
{ label: 'Machine Learning / Notifications', expected: true },
|
||||
{ label: 'Machine Learning / Data Visualizer', expected: true },
|
||||
{ label: 'Machine Learning / File Upload', expected: true },
|
||||
{ label: 'Machine Learning / Index Data Visualizer', expected: true },
|
||||
{ label: 'Machine Learning / ES|QL Data Visualizer', expected: true },
|
||||
{ label: 'Machine Learning / Data Drift', expected: true },
|
||||
],
|
||||
admin: [{ label: 'Alerts and Insights / Machine Learning', expected: true }],
|
||||
};
|
||||
|
||||
describe('Search bar features', () => {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
});
|
||||
([{ role: 'viewer' }, { role: 'admin' }] as Array<{ role: keyof typeof allLabels }>).forEach(
|
||||
({ role }) => {
|
||||
describe(`user role: ${role}`, () => {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.loginWithRole(role);
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
after(async () => {
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
describe('list features', () => {
|
||||
it('has the correct features enabled', async () => {
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.svlCommonNavigation.search.showSearch();
|
||||
describe('list features', () => {
|
||||
it('has the correct features enabled', async () => {
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.svlCommonNavigation.search.showSearch();
|
||||
|
||||
const expectedLabels = allLabels.filter((l) => l.expected).map((l) => l.label);
|
||||
const expectedLabels = allLabels[role].filter((l) => l.expected).map((l) => l.label);
|
||||
|
||||
for (const expectedLabel of expectedLabels) {
|
||||
await PageObjects.svlCommonNavigation.search.searchFor(expectedLabel);
|
||||
const [result] = await PageObjects.svlCommonNavigation.search.getDisplayedResults();
|
||||
const label = result?.label;
|
||||
expect(label).to.eql(
|
||||
expectedLabel,
|
||||
`First result should be ${expectedLabel} (got matching items '${label}')`
|
||||
);
|
||||
}
|
||||
await PageObjects.svlCommonNavigation.search.hideSearch();
|
||||
});
|
||||
for (const expectedLabel of expectedLabels) {
|
||||
await PageObjects.svlCommonNavigation.search.searchFor(expectedLabel);
|
||||
const [result] = await PageObjects.svlCommonNavigation.search.getDisplayedResults();
|
||||
const label = result?.label;
|
||||
expect(label).to.eql(
|
||||
expectedLabel,
|
||||
`First result should be ${expectedLabel} (got matching items '${label}')`
|
||||
);
|
||||
}
|
||||
await PageObjects.svlCommonNavigation.search.hideSearch();
|
||||
});
|
||||
|
||||
it('has the correct features disabled', async () => {
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.svlCommonNavigation.search.showSearch();
|
||||
it('has the correct features disabled', async () => {
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.svlCommonNavigation.search.showSearch();
|
||||
|
||||
const notExpectedLabels = allLabels.filter((l) => !l.expected).map((l) => l.label);
|
||||
const notExpectedLabels = allLabels[role]
|
||||
.filter((l) => !l.expected)
|
||||
.map((l) => l.label);
|
||||
|
||||
for (const notExpectedLabel of notExpectedLabels) {
|
||||
await PageObjects.svlCommonNavigation.search.searchFor(notExpectedLabel);
|
||||
const [result] = await PageObjects.svlCommonNavigation.search.getDisplayedResults();
|
||||
const label = result?.label;
|
||||
expect(label).to.not.eql(
|
||||
notExpectedLabel,
|
||||
`First result should not be ${notExpectedLabel} (got matching items '${label}')`
|
||||
);
|
||||
}
|
||||
await PageObjects.svlCommonNavigation.search.hideSearch();
|
||||
});
|
||||
});
|
||||
for (const notExpectedLabel of notExpectedLabels) {
|
||||
await PageObjects.svlCommonNavigation.search.searchFor(notExpectedLabel);
|
||||
const [result] = await PageObjects.svlCommonNavigation.search.getDisplayedResults();
|
||||
const label = result?.label;
|
||||
expect(label).to.not.eql(
|
||||
notExpectedLabel,
|
||||
`First result should not be ${notExpectedLabel} (got matching items '${label}')`
|
||||
);
|
||||
}
|
||||
await PageObjects.svlCommonNavigation.search.hideSearch();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
describe('When the logs explorer loads', () => {
|
||||
before(async () => {
|
||||
await synthtrace.index(generateLogsData({ to }));
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await navigateToLogsExplorer();
|
||||
});
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
describe('When the logs explorer loads', () => {
|
||||
before(async () => {
|
||||
await synthtrace.index(generateLogsData({ to }));
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await navigateToLogsExplorer();
|
||||
});
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
describe('dataSourceSelection initialization and update', () => {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -40,7 +40,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
// TimeoutError: Waiting for element to be located By(css selector, [data-test-subj="dataSourceSelectorPopoverButton"])
|
||||
this.tags(['failsOnMKI']);
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await PageObjects.observabilityLogsExplorer.removeInstalledPackages();
|
||||
});
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
describe('When virtual columns loads', () => {
|
||||
before(async () => {
|
||||
await synthtrace.index(generateLogsData({ from, to }));
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await navigateToLogsExplorer();
|
||||
});
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
describe('Filter controls customization', () => {
|
||||
before('initialize tests', async () => {
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
});
|
||||
|
||||
after('clean up archives', async () => {
|
||||
|
|
|
@ -45,7 +45,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
NAMESPACE
|
||||
);
|
||||
await PageObjects.observabilityLogsExplorer.ingestLogEntries(DATA_STREAM_NAME, docs);
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
|
|
@ -31,7 +31,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
'x-pack/test/functional/es_archives/observability_logs_explorer/data_streams'
|
||||
);
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await PageObjects.observabilityLogsExplorer.navigateTo();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
|
|
|
@ -34,7 +34,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
before(async () => {
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
|
||||
await synthtrace.index(generateLogsData({ to }));
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await navigateToLogsExplorer();
|
||||
});
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
|
|||
before(async () => {
|
||||
roleAuthc = await svlUserManager.createApiKeyForRole('admin');
|
||||
internalReqHeader = svlCommonApi.getInternalRequestHeader();
|
||||
await svlCommonPage.login();
|
||||
await svlCommonPage.loginWithRole('admin');
|
||||
await svlObltNavigation.navigateToLandingPage();
|
||||
await svlCommonNavigation.sidenav.clickLink({ text: 'Alerts' });
|
||||
await testSubjects.click('manageRulesPageButton');
|
||||
|
|
|
@ -63,7 +63,7 @@ export default function ({ getPageObject, getPageObjects, getService }: FtrProvi
|
|||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithRole('admin');
|
||||
});
|
||||
|
||||
it('cases list screenshot', async () => {
|
||||
|
|
|
@ -15,7 +15,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
describe('server log connector', function () {
|
||||
beforeEach(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithRole('admin');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -16,7 +16,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
describe('create window', function () {
|
||||
beforeEach(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithRole('admin');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue