mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
[ftr] update common serverless tests to use saml auth (#176221)
## Summary This PR updates FTR functional tests shared b/w projects to use SAML authentication instead of login with default user and kibana `/login` route. Few notes for reviewers: - admin role was added to each project roles.yml file and its definition matches cloud one. - please check your tests if selected role is as expected: the goal is to run test with the role that has minimal required permissions, but some tests were failing with lower access role: - `viewer` - read only - `editor` / `developer` for write actions (e.g. save search) - `admin` if full access required - svl_common_page.ts was updated: - `cleanBrowserState()` is added to reset state b/w test suites by deleting all cookies, clearing session & local storages. - `loginWithRole(role: string)` starts with `cleanBrowserState()` call, then sets the new cookie based on provided role and validates the role is applied correctly. On its finish browser is at Kibana home screen. - `loginAsAdmin()` and `loginWithPrivilegedRole()` to login as admin and editor/developer roles. - `forceLogout()` is only required in tests that use basic authentication. It starts with `cleanBrowserState()` call and then loads `/logout` route (we can't load base url because mock-id-plugin will trigger redirects). On its finish browser is at Cloud login screen. For @elastic/kibana-operations : This change affects the login in the functional serverless tests (18 config files at the moment) and while it seems to be stable enough, it might be the reason of sudden flakiness/failures on CI. [Flaky-test-runner 60x](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5107) to verify login via cookie is stable --------- Co-authored-by: Robert Oskamp <traeluki@gmail.com>
This commit is contained in:
parent
888562ce20
commit
2b49a407f7
86 changed files with 382 additions and 251 deletions
|
@ -1,5 +1,5 @@
|
|||
# -----
|
||||
# Source: https://github.com/elastic/project-controller/blob/main/internal/project/esproject/config/roles.yml
|
||||
# Source: project-controller/blob/main/internal/project/esproject/config/roles.yml
|
||||
# -----
|
||||
viewer:
|
||||
cluster: ['manage_own_api_key', 'read_pipeline']
|
||||
|
@ -29,6 +29,18 @@ developer:
|
|||
resources:
|
||||
- '*'
|
||||
|
||||
# admin role defined in elasticsearch controller
|
||||
admin:
|
||||
cluster: ['all']
|
||||
indices:
|
||||
- names: ['*']
|
||||
privileges: ['all']
|
||||
allow_restricted_indices: false
|
||||
applications:
|
||||
- application: '*'
|
||||
privileges: ['*']
|
||||
resources: ['*']
|
||||
|
||||
# temporarily added for testing purpose
|
||||
system_indices_superuser:
|
||||
cluster: ['all']
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -----
|
||||
# Source: https://github.com/elastic/project-controller/blob/main/internal/project/security/config/roles.yml
|
||||
# Source: project-controller/blob/main/internal/project/security/config/roles.yml
|
||||
# -----
|
||||
viewer:
|
||||
cluster: []
|
||||
|
@ -77,6 +77,18 @@ editor:
|
|||
- '*'
|
||||
run_as: []
|
||||
|
||||
# admin role defined in elasticsearch controller
|
||||
admin:
|
||||
cluster: ['all']
|
||||
indices:
|
||||
- names: ['*']
|
||||
privileges: ['all']
|
||||
allow_restricted_indices: false
|
||||
applications:
|
||||
- application: '*'
|
||||
privileges: ['*']
|
||||
resources: ['*']
|
||||
|
||||
# temporarily added for testing purpose
|
||||
system_indices_superuser:
|
||||
cluster: ['all']
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -----
|
||||
# Source: https://github.com/elastic/project-controller/blob/main/internal/project/security/config/roles.yml
|
||||
# Source: project-controller/blob/main/internal/project/security/config/roles.yml
|
||||
# -----
|
||||
# modeled after the t1_analyst minus osquery run saved queries privilege
|
||||
viewer:
|
||||
|
@ -724,6 +724,18 @@ endpoint_policy_manager:
|
|||
- feature_visualize.all
|
||||
resources: '*'
|
||||
|
||||
# admin role defined in elasticsearch controller
|
||||
admin:
|
||||
cluster: ['all']
|
||||
indices:
|
||||
- names: ['*']
|
||||
privileges: ['all']
|
||||
allow_restricted_indices: false
|
||||
applications:
|
||||
- application: '*'
|
||||
privileges: ['*']
|
||||
resources: ['*']
|
||||
|
||||
# temporarily added for testing purpose
|
||||
system_indices_superuser:
|
||||
cluster: ['all']
|
||||
|
|
|
@ -103,6 +103,29 @@ tests that should run in a serverless environment have to be added to the
|
|||
Tests in this area should be clearly designed for the serverless environment,
|
||||
particularly when it comes to timing for API requests and UI interaction.
|
||||
|
||||
### Roles-based testing
|
||||
|
||||
Each serverless project has its own set of SAML roles with [specfic permissions defined in roles.yml](https://github.com/elastic/kibana/blob/main/packages/kbn-es/src/serverless_resources/project_roles)
|
||||
and in oder to properly test Kibana functionality, UI tests design requires to login with
|
||||
a project-supported SAML role.
|
||||
|
||||
Some recommendations:
|
||||
- in each test file top level `describe` suite should start with `loginWithRole` in `before` hook
|
||||
- use the minimal required role to access tested functionality
|
||||
- when feature logic depends on both project type & role, make sure to add separate tests
|
||||
- avoid using basic authentication, unless it is the actual test case
|
||||
- no need to log out, you can change role by calling `loginWithRole` again.
|
||||
|
||||
```
|
||||
describe("my test suite", async function() {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await esArchiver.load(...);
|
||||
await PageObjects.dashboard.navigateToApp();
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
### Testing with feature flags
|
||||
|
||||
**tl;dr:** Tests specific to functionality behind a feature flag need special
|
||||
|
|
|
@ -9,6 +9,7 @@ import { FtrProviderContext } from '../ftr_provider_context';
|
|||
|
||||
export function SvlCommonPageProvider({ getService, getPageObjects }: FtrProviderContext) {
|
||||
const testSubjects = getService('testSubjects');
|
||||
const find = getService('find');
|
||||
const config = getService('config');
|
||||
const pageObjects = getPageObjects(['security', 'common']);
|
||||
const retry = getService('retry');
|
||||
|
@ -24,28 +25,56 @@ export function SvlCommonPageProvider({ getService, getPageObjects }: FtrProvide
|
|||
setTimeout(resolve, ms);
|
||||
});
|
||||
|
||||
/**
|
||||
* Delete browser cookies, clear session and local storages
|
||||
*/
|
||||
const cleanBrowserState = async () => {
|
||||
// we need to load kibana host to delete/add cookie
|
||||
const noAuthRequiredUrl = deployment.getHostPort() + '/bootstrap-anonymous.js';
|
||||
log.debug(`browser: navigate to /bootstrap-anonymous.js`);
|
||||
await browser.get(noAuthRequiredUrl);
|
||||
// previous test might left unsaved changes and alert will show up on url change
|
||||
const alert = await browser.getAlert();
|
||||
if (alert) {
|
||||
log.debug(`browser: closing alert`);
|
||||
await alert.accept();
|
||||
}
|
||||
log.debug(`browser: wait for resource page to be loaded`);
|
||||
await find.byCssSelector('body > pre', 5000);
|
||||
log.debug(`browser: delete all the cookies`);
|
||||
await retry.waitForWithTimeout('Browser cookies are deleted', 10000, async () => {
|
||||
await browser.deleteAllCookies();
|
||||
await pageObjects.common.sleep(1000);
|
||||
const cookies = await browser.getCookies();
|
||||
return cookies.length === 0;
|
||||
});
|
||||
log.debug(`browser: clearing session & local storages`);
|
||||
await browser.clearSessionStorage();
|
||||
await browser.clearLocalStorage();
|
||||
await pageObjects.common.sleep(700);
|
||||
};
|
||||
|
||||
return {
|
||||
async loginWithRole(role: string) {
|
||||
log.debug(`Fetch the cookie for '${role}' role`);
|
||||
const sidCookie = await svlUserManager.getSessionCookieForRole(role);
|
||||
await retry.waitForWithTimeout(
|
||||
`Logging in by setting browser cookie for '${role}' role`,
|
||||
30_000,
|
||||
async () => {
|
||||
log.debug(`Delete all the cookies in the current browser context`);
|
||||
await browser.deleteAllCookies();
|
||||
log.debug(`Setting the cookie for '${role}' role`);
|
||||
const sidCookie = await svlUserManager.getSessionCookieForRole(role);
|
||||
// Loading bootstrap.js in order to be on the domain that the cookie will be set for.
|
||||
await browser.get(deployment.getHostPort() + '/bootstrap.js');
|
||||
await browser.setCookie('sid', sidCookie);
|
||||
await cleanBrowserState();
|
||||
log.debug(`browser: set the new cookie`);
|
||||
await retry.waitForWithTimeout('New cookie is added', 10000, async () => {
|
||||
await browser.setCookie('sid', sidCookie);
|
||||
await pageObjects.common.sleep(1000);
|
||||
const cookies = await browser.getCookies();
|
||||
return cookies.length === 1;
|
||||
});
|
||||
// Cookie should be already set in the browsing context, navigating to the Home page
|
||||
log.debug(`browser: refresh the page`);
|
||||
await browser.refresh();
|
||||
log.debug(`browser: load base url and validate the cookie`);
|
||||
await browser.get(deployment.getHostPort());
|
||||
// Verifying that we are logged in
|
||||
if (await testSubjects.exists('userMenuButton', { timeout: 10_000 })) {
|
||||
log.debug('userMenuButton found, login passed');
|
||||
} else {
|
||||
throw new Error(`Failed to login with cookie for '${role}' role`);
|
||||
}
|
||||
|
||||
// Validating that the new cookie in the browser is set for the correct user
|
||||
const browserCookies = await browser.getCookies();
|
||||
if (browserCookies.length === 0) {
|
||||
|
@ -60,16 +89,31 @@ export function SvlCommonPageProvider({ getService, getPageObjects }: FtrProvide
|
|||
// email returned from API call must match the email for the specified role
|
||||
if (body.email === userData.email) {
|
||||
log.debug(`The new cookie is properly set for '${role}' role`);
|
||||
return true;
|
||||
} else {
|
||||
log.debug(`API response body: ${JSON.stringify(body)}`);
|
||||
throw new Error(
|
||||
`Cookie is not set properly, expected email is '${userData.email}', but found '${body.email}'`
|
||||
);
|
||||
}
|
||||
// Verifying that we are logged in
|
||||
if (await testSubjects.exists('userMenuButton', { timeout: 10_000 })) {
|
||||
log.debug('userMenuButton found, login passed');
|
||||
return true;
|
||||
} else {
|
||||
throw new Error(`Failed to login with cookie for '${role}' role`);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
async loginAsAdmin() {
|
||||
await this.loginWithRole('admin');
|
||||
},
|
||||
|
||||
async loginWithPrivilegedRole() {
|
||||
await this.loginWithRole(svlUserManager.DEFAULT_ROLE);
|
||||
},
|
||||
|
||||
async navigateToLoginForm() {
|
||||
const url = deployment.getHostPort() + '/login';
|
||||
await browser.get(url);
|
||||
|
@ -79,8 +123,38 @@ export function SvlCommonPageProvider({ getService, getPageObjects }: FtrProvide
|
|||
});
|
||||
},
|
||||
|
||||
async forceLogout() {
|
||||
log.debug('SvlCommonPage.forceLogout');
|
||||
if (await find.existsByDisplayedByCssSelector('.login-form', 100)) {
|
||||
log.debug('Already on the login page, not forcing anything');
|
||||
return;
|
||||
}
|
||||
|
||||
await cleanBrowserState();
|
||||
|
||||
log.debug(`Navigating to ${deployment.getHostPort()}/logout to force the logout`);
|
||||
await browser.get(deployment.getHostPort() + '/logout');
|
||||
|
||||
// After logging out, the user can be redirected to various locations depending on the context. By default, we
|
||||
// expect the user to be redirected to the login page. However, if the login page is not available for some reason,
|
||||
// we should simply wait until the user is redirected *elsewhere*.
|
||||
// Timeout has been doubled here in attempt to quiet the flakiness
|
||||
await retry.waitForWithTimeout('URL redirects to finish', 40000, async () => {
|
||||
const urlBefore = await browser.getCurrentUrl();
|
||||
delay(1000);
|
||||
const urlAfter = await browser.getCurrentUrl();
|
||||
log.debug(`Expecting before URL '${urlBefore}' to equal after URL '${urlAfter}'`);
|
||||
return urlAfter === urlBefore;
|
||||
});
|
||||
|
||||
const currentUrl = await browser.getCurrentUrl();
|
||||
|
||||
// Logout might trigger multiple redirects, but in the end we expect the Cloud login page
|
||||
return currentUrl.includes('/login') || currentUrl.includes('/projects');
|
||||
},
|
||||
|
||||
async login() {
|
||||
await pageObjects.security.forceLogout({ waitForLoginPage: false });
|
||||
await this.forceLogout();
|
||||
|
||||
// adding sleep to settle down logout
|
||||
await pageObjects.common.sleep(2500);
|
||||
|
@ -135,11 +209,6 @@ export function SvlCommonPageProvider({ getService, getPageObjects }: FtrProvide
|
|||
log.debug('Logged in successfully');
|
||||
},
|
||||
|
||||
async forceLogout() {
|
||||
await pageObjects.security.forceLogout({ waitForLoginPage: false });
|
||||
log.debug('Logged out successfully');
|
||||
},
|
||||
|
||||
async assertProjectHeaderExists() {
|
||||
await testSubjects.existOrFail('kibanaProjectHeader');
|
||||
},
|
||||
|
|
|
@ -26,9 +26,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const PageObjects = getPageObjects(['svlCommonPage', 'common', 'console', 'header']);
|
||||
|
||||
describe('console app', function describeIndexTests() {
|
||||
this.tags('includeFirefox');
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
// TODO: https://github.com/elastic/kibana/issues/176582
|
||||
// this test scenario requires roles definition check:
|
||||
// Search & Oblt projects 'viewer' role has access to Console, but for
|
||||
// Security project only 'admin' role has access
|
||||
await PageObjects.svlCommonPage.loginWithRole('admin');
|
||||
log.debug('navigateTo console');
|
||||
await PageObjects.common.navigateToApp('dev_tools', { hash: '/console' });
|
||||
});
|
||||
|
@ -37,10 +40,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await PageObjects.console.closeHelpIfExists();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('should show the default request', async () => {
|
||||
await retry.try(async () => {
|
||||
const actualRequest = await PageObjects.console.getRequest();
|
||||
|
|
|
@ -22,6 +22,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const dataGrid = getService('dataGrid');
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'header',
|
||||
'context',
|
||||
'discover',
|
||||
|
@ -47,6 +48,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await kibanaServer.uiSettings.update({
|
||||
defaultIndex: 'logstash-*',
|
||||
});
|
||||
// TODO: Serverless tests require login first
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
for (const [columnName, value] of TEST_FILTER_COLUMN_NAMES) {
|
||||
|
|
|
@ -20,6 +20,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const filterBar = getService('filterBar');
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'timePicker',
|
||||
'settings',
|
||||
|
@ -40,6 +41,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await kibanaServer.uiSettings.update({
|
||||
defaultIndex: 'logstash-*',
|
||||
});
|
||||
await PageObjects.svlCommonPage.loginWithPrivilegedRole();
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const browser = getService('browser');
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
|
||||
const PageObjects = getPageObjects(['common', 'context']);
|
||||
const PageObjects = getPageObjects(['common', 'context', 'svlCommonPage']);
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
||||
describe('context filters', function contextSize() {
|
||||
|
@ -29,6 +29,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await kibanaServer.uiSettings.update({
|
||||
'discover:rowHeightOption': 0, // to have more grid rows visible at once
|
||||
});
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
});
|
||||
|
||||
beforeEach(async function () {
|
||||
|
|
|
@ -19,7 +19,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const dataGrid = getService('dataGrid');
|
||||
const browser = getService('browser');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const PageObjects = getPageObjects(['context']);
|
||||
const PageObjects = getPageObjects(['context', 'svlCommonPage']);
|
||||
let expectedRowLength = 2 * TEST_DEFAULT_CONTEXT_SIZE + 1;
|
||||
|
||||
describe('context size', function contextSize() {
|
||||
|
@ -29,6 +29,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
'context:defaultSize': `${TEST_DEFAULT_CONTEXT_SIZE}`,
|
||||
'context:step': `${TEST_STEP_SIZE}`,
|
||||
});
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await PageObjects.context.navigateTo(TEST_INDEX_PATTERN, TEST_ANCHOR_ID);
|
||||
});
|
||||
|
||||
|
|
|
@ -7,27 +7,17 @@
|
|||
|
||||
import { FtrProviderContext } from '../../../ftr_provider_context';
|
||||
|
||||
export default function ({
|
||||
getService,
|
||||
getPageObjects,
|
||||
loadTestFile,
|
||||
getPageObject,
|
||||
}: FtrProviderContext) {
|
||||
export default function ({ getService, getPageObjects, loadTestFile }: FtrProviderContext) {
|
||||
const browser = getService('browser');
|
||||
const esArchiver = getService('esArchiver');
|
||||
const PageObjects = getPageObjects(['common']);
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
const svlCommonPage = getPageObject('svlCommonPage');
|
||||
|
||||
describe('context app', function () {
|
||||
before(async () => {
|
||||
await browser.setWindowSize(1200, 800);
|
||||
// TODO: Serverless tests require login first
|
||||
await svlCommonPage.login();
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/visualize.json');
|
||||
await kibanaServer.uiSettings.replace({ defaultIndex: 'logstash-*' });
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -21,15 +21,11 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
describe('Search Profiler Editor', () => {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.common.navigateToApp('searchProfiler');
|
||||
expect(await PageObjects.searchProfiler.editorExists()).to.be(true);
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('supports pre-configured search query', async () => {
|
||||
const query = {
|
||||
query: {
|
||||
|
|
|
@ -19,10 +19,19 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const esArchiver = getService('esArchiver');
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'timePicker', 'discover']);
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'dashboard',
|
||||
'header',
|
||||
'timePicker',
|
||||
'discover',
|
||||
]);
|
||||
|
||||
describe('discover saved search embeddable', () => {
|
||||
before(async () => {
|
||||
await browser.setWindowSize(1300, 800);
|
||||
await PageObjects.svlCommonPage.loginWithPrivilegedRole();
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/dashboard/current/data');
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
|
@ -39,6 +48,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
});
|
||||
|
||||
after(async () => {
|
||||
await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await esArchiver.unload('test/functional/fixtures/es_archiver/dashboard/current/data');
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await PageObjects.common.unsetTime();
|
||||
});
|
||||
|
|
|
@ -7,22 +7,8 @@
|
|||
|
||||
import { FtrProviderContext } from '../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getService, loadTestFile, getPageObject }: FtrProviderContext) {
|
||||
const esArchiver = getService('esArchiver');
|
||||
const browser = getService('browser');
|
||||
const svlCommonPage = getPageObject('svlCommonPage');
|
||||
|
||||
export default function ({ loadTestFile }: FtrProviderContext) {
|
||||
describe('discover/embeddable', function () {
|
||||
before(async function () {
|
||||
await browser.setWindowSize(1300, 800);
|
||||
// TODO: Serverless tests require login first
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async function unloadMakelogs() {
|
||||
await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
});
|
||||
|
||||
loadTestFile(require.resolve('./_saved_search_embeddable'));
|
||||
});
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const testSubjects = getService('testSubjects');
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'header',
|
||||
'timePicker',
|
||||
|
@ -37,6 +38,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
// and load a set of makelogs data
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.uiSettings.replace(defaultSettings);
|
||||
await PageObjects.svlCommonPage.loginWithPrivilegedRole();
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
||||
});
|
||||
|
|
|
@ -17,10 +17,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const PageObjects = getPageObjects([
|
||||
'timePicker',
|
||||
'dashboard',
|
||||
'settings',
|
||||
'discover',
|
||||
'common',
|
||||
'header',
|
||||
'svlCommonPage',
|
||||
]);
|
||||
const defaultSettings = {
|
||||
defaultIndex: 'long-window-logstash-*',
|
||||
|
@ -42,6 +42,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
);
|
||||
await security.testUser.setRoles(['kibana_admin', 'long_window_logstash']);
|
||||
await kibanaServer.uiSettings.replace(defaultSettings);
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
});
|
||||
|
|
|
@ -19,11 +19,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const testSubjects = getService('testSubjects');
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'header',
|
||||
'timePicker',
|
||||
'unifiedFieldList',
|
||||
'visualize',
|
||||
'svlCommonNavigation',
|
||||
]);
|
||||
|
||||
|
@ -38,6 +37,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
// and load a set of makelogs data
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.uiSettings.replace(defaultSettings);
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRange();
|
||||
});
|
||||
|
|
|
@ -7,16 +7,13 @@
|
|||
|
||||
import { FtrProviderContext } from '../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getService, loadTestFile, getPageObject }: FtrProviderContext) {
|
||||
export default function ({ getService, loadTestFile }: FtrProviderContext) {
|
||||
const esArchiver = getService('esArchiver');
|
||||
const browser = getService('browser');
|
||||
const svlCommonPage = getPageObject('svlCommonPage');
|
||||
|
||||
describe('discover/group1', function () {
|
||||
before(async function () {
|
||||
await browser.setWindowSize(1300, 800);
|
||||
// TODO: Serverless tests require login first
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async function unloadMakelogs() {
|
||||
|
|
|
@ -22,10 +22,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const browser = getService('browser');
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'unifiedSearch',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'timePicker',
|
||||
'settings',
|
||||
'header',
|
||||
'context',
|
||||
'dashboard',
|
||||
|
@ -45,7 +44,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']);
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover.json');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
|
||||
await PageObjects.svlCommonPage.loginWithPrivilegedRole();
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
});
|
||||
|
|
|
@ -12,7 +12,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const filterBar = getService('filterBar');
|
||||
const dataGrid = getService('dataGrid');
|
||||
const testSubjects = getService('testSubjects');
|
||||
const PageObjects = getPageObjects(['common', 'discover', 'timePicker', 'context']);
|
||||
const PageObjects = getPageObjects(['common', 'svlCommonPage', 'discover', 'timePicker']);
|
||||
const esArchiver = getService('esArchiver');
|
||||
const retry = getService('retry');
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
|
@ -24,6 +24,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']);
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
|
||||
await PageObjects.svlCommonPage.loginWithRole('viewer');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -19,6 +19,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const dashboardAddPanel = getService('dashboardAddPanel');
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'header',
|
||||
'timePicker',
|
||||
|
@ -41,6 +42,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.uiSettings.replace(defaultSettings);
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
|
||||
await PageObjects.svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
|
|
@ -7,16 +7,13 @@
|
|||
|
||||
import { FtrProviderContext } from '../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getService, loadTestFile, getPageObject }: FtrProviderContext) {
|
||||
export default function ({ getService, loadTestFile }: FtrProviderContext) {
|
||||
const esArchiver = getService('esArchiver');
|
||||
const browser = getService('browser');
|
||||
const svlCommonPage = getPageObject('svlCommonPage');
|
||||
|
||||
describe('discover/group2', function () {
|
||||
before(async function () {
|
||||
await browser.setWindowSize(1600, 1200);
|
||||
// TODO: Serverless tests require login first
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async function unloadMakelogs() {
|
||||
|
|
|
@ -13,11 +13,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const kibanaServer = getService('kibanaServer');
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'timePicker',
|
||||
'header',
|
||||
'unifiedSearch',
|
||||
'settings',
|
||||
]);
|
||||
const testSubjects = getService('testSubjects');
|
||||
const browser = getService('browser');
|
||||
|
@ -27,6 +26,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
describe('discover request counts', function describeIndexTests() {
|
||||
before(async function () {
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/long_window_logstash');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
|
||||
|
|
|
@ -13,10 +13,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const kibanaServer = getService('kibanaServer');
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'timePicker',
|
||||
'header',
|
||||
'unifiedSearch',
|
||||
'unifiedFieldList',
|
||||
]);
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
@ -31,6 +31,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
describe('discover sidebar', function describeIndexTests() {
|
||||
before(async function () {
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
|
|
@ -18,12 +18,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const dataGrid = getService('dataGrid');
|
||||
const filterBar = getService('filterBar');
|
||||
const PageObjects = getPageObjects([
|
||||
'settings',
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'header',
|
||||
'timePicker',
|
||||
'dashboard',
|
||||
'unifiedFieldList',
|
||||
]);
|
||||
const security = getService('security');
|
||||
|
@ -37,6 +36,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']);
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
|
||||
await PageObjects.svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -7,16 +7,13 @@
|
|||
|
||||
import { FtrProviderContext } from '../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getService, loadTestFile, getPageObject }: FtrProviderContext) {
|
||||
export default function ({ getService, loadTestFile }: FtrProviderContext) {
|
||||
const esArchiver = getService('esArchiver');
|
||||
const browser = getService('browser');
|
||||
const svlCommonPage = getPageObject('svlCommonPage');
|
||||
|
||||
describe('discover/group3', function () {
|
||||
before(async function () {
|
||||
await browser.setWindowSize(1300, 800);
|
||||
// TODO: Serverless tests require login first
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async function unloadMakelogs() {
|
||||
|
|
|
@ -7,15 +7,8 @@
|
|||
|
||||
import { FtrProviderContext } from '../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ loadTestFile, getPageObject }: FtrProviderContext) {
|
||||
const svlCommonPage = getPageObject('svlCommonPage');
|
||||
|
||||
export default function ({ loadTestFile }: FtrProviderContext) {
|
||||
describe('discover', function () {
|
||||
before(async function () {
|
||||
// TODO: Serverless tests require login first
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
loadTestFile(require.resolve('./reporting'));
|
||||
loadTestFile(require.resolve('./visualize_field'));
|
||||
});
|
||||
|
|
|
@ -18,7 +18,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const kibanaServer = getService('kibanaServer');
|
||||
const browser = getService('browser');
|
||||
const retry = getService('retry');
|
||||
const PageObjects = getPageObjects(['reporting', 'common', 'discover', 'timePicker', 'share']);
|
||||
const PageObjects = getPageObjects([
|
||||
'reporting',
|
||||
'common',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'timePicker',
|
||||
'share',
|
||||
]);
|
||||
const filterBar = getService('filterBar');
|
||||
const find = getService('find');
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
@ -56,6 +63,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
describe('Discover CSV Export', () => {
|
||||
describe('Check Available', () => {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
// TODO: emptyKibanaIndex fails in Serverless with
|
||||
// "index_not_found_exception: no such index [.kibana_ingest]",
|
||||
// so it was switched to `savedObjects.cleanStandardList()`
|
||||
|
|
|
@ -18,13 +18,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
const kibanaServer = getService('kibanaServer');
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'error',
|
||||
'svlCommonPage',
|
||||
'discover',
|
||||
'timePicker',
|
||||
'unifiedSearch',
|
||||
'lens',
|
||||
'security',
|
||||
'spaceSelector',
|
||||
'header',
|
||||
'unifiedFieldList',
|
||||
]);
|
||||
|
@ -36,11 +33,19 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
}
|
||||
|
||||
describe('discover field visualize button', () => {
|
||||
beforeEach(async () => {
|
||||
before(async () => {
|
||||
// Security project requires admin role, search/oblt project passes with developer/editor.
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional');
|
||||
await kibanaServer.importExport.load(
|
||||
'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json'
|
||||
);
|
||||
await kibanaServer.uiSettings.replace({
|
||||
defaultIndex: 'logstash-*',
|
||||
});
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await PageObjects.common.navigateToApp('discover');
|
||||
await setDiscoverTimeRange();
|
||||
});
|
||||
|
@ -50,6 +55,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await kibanaServer.importExport.unload(
|
||||
'x-pack/test/functional/fixtures/kbn_archiver/lens/lens_basic.json'
|
||||
);
|
||||
await kibanaServer.uiSettings.replace({});
|
||||
});
|
||||
|
||||
it('shows "visualize" field button', async () => {
|
||||
|
|
|
@ -6,15 +6,8 @@
|
|||
*/
|
||||
import { FtrProviderContext } from '../../../../ftr_provider_context';
|
||||
|
||||
export default ({ loadTestFile, getPageObject }: FtrProviderContext) => {
|
||||
const svlCommonPage = getPageObject('svlCommonPage');
|
||||
|
||||
export default ({ loadTestFile }: FtrProviderContext) => {
|
||||
describe('Discover alerting', function () {
|
||||
before(async function () {
|
||||
// TODO: Serverless tests require login first
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
loadTestFile(require.resolve('./search_source_alert'));
|
||||
});
|
||||
};
|
||||
|
|
|
@ -16,6 +16,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const monacoEditor = getService('monacoEditor');
|
||||
const PageObjects = getPageObjects([
|
||||
'settings',
|
||||
'svlCommonPage',
|
||||
'common',
|
||||
'header',
|
||||
'discover',
|
||||
|
@ -343,6 +344,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
describe('Search source Alert', () => {
|
||||
before(async () => {
|
||||
await security.testUser.setRoles(['discover_alert']);
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
|
||||
log.debug('create source indices');
|
||||
await createSourceIndex();
|
||||
|
|
|
@ -25,8 +25,7 @@ export default function ({ getService, getPageObjects, loadTestFile }: FtrProvid
|
|||
|
||||
describe('data view field editor example', function () {
|
||||
before(async () => {
|
||||
// TODO: Serverless tests require login first
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
// TODO: emptyKibanaIndex fails in Serverless with
|
||||
// "index_not_found_exception: no such index [.kibana_ingest]",
|
||||
// so it was switched to `savedObjects.cleanStandardList()`
|
||||
|
|
|
@ -22,8 +22,7 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => {
|
|||
|
||||
describe('Customizations', () => {
|
||||
before(async () => {
|
||||
// TODO: Serverless tests require login first
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional');
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
|
||||
|
|
|
@ -14,8 +14,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
describe('Field formats example', function () {
|
||||
before(async () => {
|
||||
// TODO: Serverless tests require login first
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.common.navigateToApp('fieldFormatsExample');
|
||||
});
|
||||
|
||||
|
|
|
@ -15,8 +15,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
// FLAKY: https://github.com/elastic/kibana/issues/167643
|
||||
describe.skip('Partial Results Example', function () {
|
||||
before(async () => {
|
||||
// TODO: Serverless tests require login first
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.common.navigateToApp('partialResultsExample');
|
||||
|
||||
const element = await testSubjects.find('example-help');
|
||||
|
|
|
@ -45,8 +45,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
};
|
||||
|
||||
before(async () => {
|
||||
// TODO: Serverless tests require login first
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
// create rollup data
|
||||
log.info(`loading ${testIndex} index...`);
|
||||
await esArchiver.loadIfNeeded(testArchive);
|
||||
|
|
|
@ -15,15 +15,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
describe('Partial results example', () => {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.common.navigateToApp('searchExamples');
|
||||
await testSubjects.click('/search');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('should update a progress bar', async () => {
|
||||
await testSubjects.click('responseTab');
|
||||
const progressBar = await testSubjects.find('progressBar');
|
||||
|
|
|
@ -17,8 +17,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
describe('Search example', () => {
|
||||
before(async () => {
|
||||
// TODO: Serverless tests require login first
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
});
|
||||
|
||||
describe('with bfetch', () => {
|
||||
|
|
|
@ -65,7 +65,7 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => {
|
|||
await kibanaServer.importExport.load(
|
||||
'test/api_integration/fixtures/kbn_archiver/index_patterns/constant_keyword.json'
|
||||
);
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.common.navigateToApp('unifiedFieldListExamples');
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await retry.waitFor('combobox is ready', async () => {
|
||||
|
@ -90,7 +90,6 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => {
|
|||
);
|
||||
await PageObjects.unifiedFieldList.cleanSidebarLocalStorage();
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/172781
|
||||
|
|
|
@ -29,8 +29,7 @@ export default ({ getService, getPageObjects }: FtrProviderContext) => {
|
|||
|
||||
describe('Field stats', () => {
|
||||
before(async () => {
|
||||
// TODO: Serverless tests require login first
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await esArchiver.loadIfNeeded('x-pack/test/functional/es_archives/logstash_functional');
|
||||
await kibanaServer.importExport.load(
|
||||
|
|
|
@ -22,7 +22,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
// fold. Otherwise it can't be clicked by the browser driver.
|
||||
await browser.setWindowSize(1600, 1000);
|
||||
await security.testUser.setRoles(['global_devtools_read', 'ingest_pipelines_user']);
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.common.navigateToApp('dev_tools', { hash: '/grokdebugger' });
|
||||
await retry.waitFor('Grok Debugger Header to be visible', async () => {
|
||||
return testSubjects.isDisplayed('grokDebuggerContainer');
|
||||
|
@ -30,7 +30,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
});
|
||||
|
||||
after(async () => {
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
await security.testUser.restoreDefaults();
|
||||
});
|
||||
|
||||
|
|
|
@ -13,11 +13,7 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
|
||||
describe('home page', function () {
|
||||
before(async () => {
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await svlCommonPage.forceLogout();
|
||||
await svlCommonPage.loginWithRole('viewer');
|
||||
});
|
||||
|
||||
it('has project header', async () => {
|
||||
|
|
|
@ -14,12 +14,11 @@ export default function ({ getPageObjects }: FtrProviderContext) {
|
|||
// Failing - should be fixed with https://github.com/elastic/kibana/pull/164052
|
||||
describe.skip('Sample data in serverless', function () {
|
||||
before(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await pageObjects.home.removeSampleDataSet('ecommerce');
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('Sample data loads', async () => {
|
||||
|
|
|
@ -46,7 +46,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
await kibanaServer.uiSettings.update({
|
||||
'csv:quoteValues': true,
|
||||
});
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('settings');
|
||||
});
|
||||
|
||||
|
@ -55,7 +55,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
await kibanaServer.uiSettings.update({
|
||||
'csv:quoteValues': INITIAL_CSV_QUOTE_VALUES_SETTING_VALUE,
|
||||
});
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('renders the page', async () => {
|
||||
|
|
|
@ -18,8 +18,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
// Failing: See https://github.com/elastic/kibana/issues/173558
|
||||
describe.skip('runtime fields', function () {
|
||||
this.tags(['skipFirefox']);
|
||||
|
||||
before(async function () {
|
||||
await browser.setWindowSize(1200, 800);
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
|
||||
|
|
|
@ -17,8 +17,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const testSubjects = getService('testSubjects');
|
||||
|
||||
describe('runtime fields', function () {
|
||||
this.tags(['skipFirefox']);
|
||||
|
||||
before(async function () {
|
||||
await browser.setWindowSize(1200, 800);
|
||||
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
|
||||
|
|
|
@ -13,8 +13,7 @@ export default ({ getService, loadTestFile, getPageObject }: FtrProviderContext)
|
|||
const svlCommonPage = getPageObject('svlCommonPage');
|
||||
|
||||
before(async () => {
|
||||
// TODO: Serverless tests require login first
|
||||
await svlCommonPage.login();
|
||||
await svlCommonPage.loginAsAdmin();
|
||||
await esArchiver.unload('test/functional/fixtures/es_archiver/logstash_functional');
|
||||
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/makelogs');
|
||||
});
|
||||
|
|
|
@ -20,9 +20,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const testSubjects = getService('testSubjects');
|
||||
|
||||
describe('Serverless tests', function () {
|
||||
this.beforeAll(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
});
|
||||
describe('disables scripted fields', function () {
|
||||
let dataViewId = '';
|
||||
|
||||
|
|
|
@ -22,8 +22,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
describe('Index component templates', function () {
|
||||
before(async () => {
|
||||
await security.testUser.setRoles(['index_management_user']);
|
||||
// Navigate to the index management page
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
@ -33,10 +32,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
await pageObjects.header.waitUntilLoadingHasFinished();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('renders the component templates tab', async () => {
|
||||
const url = await browser.getCurrentUrl();
|
||||
expect(url).to.contain(`/component_templates`);
|
||||
|
|
|
@ -46,7 +46,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
}
|
||||
|
||||
log.debug('Navigating to the enrich policies tab');
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('indexManagement');
|
||||
|
||||
// Navigate to the enrich policies tab
|
||||
|
@ -64,8 +64,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
} catch (e) {
|
||||
log.debug('[Teardown error] Error deleting test policy');
|
||||
throw e;
|
||||
} finally {
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
|
||||
describe('Data Streams', function () {
|
||||
before(async () => {
|
||||
await log.debug('Creating required data stream');
|
||||
log.debug('Creating required data stream');
|
||||
try {
|
||||
await es.cluster.putComponentTemplate({
|
||||
name: `${TEST_DS_NAME}_mapping`,
|
||||
|
@ -56,8 +56,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
}
|
||||
|
||||
await security.testUser.setRoles(['index_management_user']);
|
||||
// Navigate to the index management page
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('indexManagement');
|
||||
// Navigate to the indices tab
|
||||
await pageObjects.indexManagement.changeTabs('data_streamsTab');
|
||||
|
@ -65,7 +64,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
});
|
||||
|
||||
after(async () => {
|
||||
await log.debug('Cleaning up created data stream');
|
||||
log.debug('Cleaning up created data stream');
|
||||
|
||||
try {
|
||||
await es.indices.deleteDataStream({ name: TEST_DS_NAME });
|
||||
|
|
|
@ -53,7 +53,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
}
|
||||
|
||||
log.debug('Navigating to the enrich policies tab');
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('indexManagement');
|
||||
|
||||
// Navigate to the enrich policies tab
|
||||
|
|
|
@ -23,7 +23,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
|
||||
describe('Index Templates', function () {
|
||||
before(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
@ -42,8 +42,6 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
log.debug('[Setup error] Error creating test policy');
|
||||
throw e;
|
||||
}
|
||||
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('renders the index templates tab', async () => {
|
||||
|
|
|
@ -16,8 +16,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
describe('Indices', function () {
|
||||
before(async () => {
|
||||
await security.testUser.setRoles(['index_management_user']);
|
||||
// Navigate to the index management page
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('indexManagement');
|
||||
// Navigate to the indices tab
|
||||
await pageObjects.indexManagement.changeTabs('indicesTab');
|
||||
|
|
|
@ -29,14 +29,11 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
describe('Ingest Pipelines', function () {
|
||||
this.tags('smoke');
|
||||
before(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
});
|
||||
beforeEach(async () => {
|
||||
await pageObjects.common.navigateToApp('ingestPipelines');
|
||||
});
|
||||
after(async () => {
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('Loads the app', async () => {
|
||||
log.debug('Checking for section heading to say Ingest Pipelines.');
|
||||
|
|
|
@ -17,15 +17,10 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
describe('Management landing page', function () {
|
||||
this.tags('smoke');
|
||||
before(async () => {
|
||||
// Navigate to the index management page
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('management');
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('renders the page', async () => {
|
||||
await retry.waitFor('page to be visible', async () => {
|
||||
return await testSubjects.exists('cards-navigation-page');
|
||||
|
|
|
@ -16,11 +16,7 @@ export default function ({ getPageObjects }: FtrProviderContext) {
|
|||
|
||||
describe('Search bar features', () => {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
});
|
||||
|
||||
describe('list features', () => {
|
||||
|
|
|
@ -17,7 +17,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
describe('Transform List', function () {
|
||||
before(async () => {
|
||||
await security.testUser.setRoles(['transform_user']);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
|
||||
// For this test to work, make sure there are no pre-existing transform present.
|
||||
// For example, solutions might set up transforms automatically.
|
||||
|
|
|
@ -27,17 +27,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
describe('Painless lab', function describeIndexTests() {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.common.navigateToApp('dev_tools', { hash: '/painless_lab' });
|
||||
await retry.waitFor('Wait for editor to be visible', async () => {
|
||||
return testSubjects.isDisplayed('painless_lab');
|
||||
});
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('should show the editor and preview panels', async () => {
|
||||
const editor = await testSubjects.find('kibanaCodeEditor');
|
||||
const preview = await testSubjects.find('painlessTabs');
|
||||
|
|
|
@ -33,12 +33,11 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
// TimeoutError: Waiting for element to be located By(css selector, [data-test-subj="apiKeysCreatePromptButton"]) Wait timed out after 10028ms
|
||||
this.tags(['failsOnMKI']);
|
||||
before(async () => {
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await clearAllApiKeys(es, log);
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('should create and delete API keys correctly', async () => {
|
||||
|
|
|
@ -13,11 +13,7 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
|
||||
describe('Avatar menu', function () {
|
||||
before(async () => {
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await svlCommonPage.forceLogout();
|
||||
await svlCommonPage.loginWithRole('viewer');
|
||||
});
|
||||
|
||||
it('is displayed', async () => {
|
||||
|
|
|
@ -13,9 +13,14 @@ export default function ({ getPageObjects }: FtrProviderContext) {
|
|||
|
||||
describe('User Profile Page', async () => {
|
||||
before(async () => {
|
||||
// TODO: migrate to SAML role when profile page displays the data
|
||||
await pageObjects.svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
describe('Theme', async () => {
|
||||
it('should change theme based on the User Profile Theme control', async () => {
|
||||
await pageObjects.common.navigateToApp('security_account');
|
||||
|
|
|
@ -24,7 +24,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
|
|||
const navigateToReportingManagement = async () => {
|
||||
log.debug(`navigating to reporting management app`);
|
||||
await retry.tryForTime(60 * 1000, async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.common.navigateToApp('reportingManagement');
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await testSubjects.existOrFail('reportingPageHeader', { timeout: 2000 });
|
||||
|
|
|
@ -26,7 +26,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await kibanaServer.importExport.load(
|
||||
'x-pack/test/functional/fixtures/kbn_archiver/saved_objects_management/hidden_saved_objects'
|
||||
);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await pageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
@ -40,7 +40,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
'x-pack/test/functional/fixtures/kbn_archiver/saved_objects_management/hidden_saved_objects'
|
||||
);
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
const URL = '/api/kibana/management/saved_objects/_bulk_get';
|
||||
|
|
|
@ -28,7 +28,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await esArchiver.load(
|
||||
'test/functional/fixtures/es_archiver/saved_objects_management/export_transform'
|
||||
);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await pageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
@ -39,7 +39,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
'test/functional/fixtures/es_archiver/saved_objects_management/export_transform'
|
||||
);
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('allows to mutate the objects during an export', async () => {
|
||||
|
@ -159,7 +158,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await esArchiver.load(
|
||||
'test/functional/fixtures/es_archiver/saved_objects_management/nested_export_transform'
|
||||
);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await pageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
@ -170,7 +169,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
'test/functional/fixtures/es_archiver/saved_objects_management/nested_export_transform'
|
||||
);
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('execute export transforms for reference objects', async () => {
|
||||
|
@ -211,7 +209,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await esArchiver.load(
|
||||
'test/functional/fixtures/es_archiver/saved_objects_management/export_exclusion'
|
||||
);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await pageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
@ -222,7 +220,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
'test/functional/fixtures/es_archiver/saved_objects_management/export_exclusion'
|
||||
);
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('should only export objects returning `true` for `isExportable`', async () => {
|
||||
|
|
|
@ -25,7 +25,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await kibanaServer.importExport.load(
|
||||
'x-pack/test/functional/fixtures/kbn_archiver/saved_objects_management/hidden_saved_objects'
|
||||
);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await pageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
@ -42,7 +42,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
// "index_not_found_exception: no such index [.kibana_ingest]",
|
||||
// so it was switched to `savedObjects.cleanStandardList()
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
it('returns saved objects with importableAndExportable types', async () =>
|
||||
|
|
|
@ -29,7 +29,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await kbnServer.importExport.load(
|
||||
'test/functional/fixtures/kbn_archiver/saved_objects_management/hidden_from_http_apis'
|
||||
);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await pageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
@ -42,7 +42,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await esArchiver.unload(
|
||||
'test/functional/fixtures/es_archiver/saved_objects_management/hidden_from_http_apis'
|
||||
);
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
describe('APIS', () => {
|
||||
|
|
|
@ -27,7 +27,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
await esArchiver.load(
|
||||
'test/functional/fixtures/es_archiver/saved_objects_management/hidden_types'
|
||||
);
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
await PageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await PageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
@ -38,11 +38,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
'test/functional/fixtures/es_archiver/saved_objects_management/hidden_types'
|
||||
);
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
// await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await PageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
|
|
@ -21,10 +21,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
// "index_not_found_exception: no such index [.kibana_ingest]",
|
||||
// so it was switched to `savedObjects.cleanStandardList()
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await PageObjects.svlCommonPage.login();
|
||||
await PageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await PageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
|
|
@ -26,7 +26,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await kibanaServer.importExport.load(
|
||||
'x-pack/test/functional/fixtures/kbn_archiver/saved_objects_management/hidden_saved_objects'
|
||||
);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await pageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
|
|
@ -28,7 +28,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await esArchiver.load(
|
||||
'test/functional/fixtures/es_archiver/saved_objects_management/visible_in_management'
|
||||
);
|
||||
await pageObjects.svlCommonPage.login();
|
||||
await pageObjects.svlCommonPage.loginAsAdmin();
|
||||
await pageObjects.common.navigateToApp('management');
|
||||
await testSubjects.click('app-card-objects');
|
||||
await pageObjects.savedObjects.waitTableIsLoaded();
|
||||
|
@ -38,7 +38,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
await esArchiver.unload(
|
||||
'test/functional/fixtures/es_archiver/saved_objects_management/visible_in_management'
|
||||
);
|
||||
await pageObjects.svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
describe('export', () => {
|
||||
|
|
|
@ -59,7 +59,6 @@ export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext
|
|||
});
|
||||
await kibanaServer.importExport.load(fixtureDirs.lensBasic);
|
||||
await kibanaServer.importExport.load(fixtureDirs.lensDefault);
|
||||
await PageObjects.svlCommonPage.login();
|
||||
// changing the timepicker default here saves us from having to set it in Discover (~8s)
|
||||
await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings();
|
||||
});
|
||||
|
@ -67,7 +66,6 @@ export default ({ getService, loadTestFile, getPageObjects }: FtrProviderContext
|
|||
after(async () => {
|
||||
await esArchiver.unload(esArchive);
|
||||
await PageObjects.timePicker.resetDefaultAbsoluteRangeViaUiSettings();
|
||||
await PageObjects.svlCommonPage.forceLogout();
|
||||
await kibanaServer.importExport.unload(fixtureDirs.lensBasic);
|
||||
await kibanaServer.importExport.unload(fixtureDirs.lensDefault);
|
||||
await kibanaServer.savedObjects.cleanStandardList();
|
||||
|
|
|
@ -10,7 +10,7 @@ import { range } from 'lodash';
|
|||
import { FtrProviderContext } from '../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
||||
const PageObjects = getPageObjects(['visualize', 'lens', 'common', 'header']);
|
||||
const PageObjects = getPageObjects(['visualize', 'lens', 'common', 'header', 'svlCommonPage']);
|
||||
const find = getService('find');
|
||||
const listingTable = getService('listingTable');
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
@ -20,6 +20,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const config = getService('config');
|
||||
|
||||
describe('lens smokescreen tests', () => {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
it('should allow creation of lens xy chart', async () => {
|
||||
await PageObjects.visualize.navigateToNewVisualization();
|
||||
await PageObjects.visualize.clickVisType('lens');
|
||||
|
|
|
@ -238,7 +238,13 @@ function sumFirstNValues(n: number, bars: Array<{ y: number }>): number {
|
|||
}
|
||||
|
||||
export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
||||
const PageObjects = getPageObjects(['common', 'timePicker', 'lens', 'dashboard']);
|
||||
const PageObjects = getPageObjects([
|
||||
'common',
|
||||
'timePicker',
|
||||
'lens',
|
||||
'dashboard',
|
||||
'svlCommonPage',
|
||||
]);
|
||||
const testSubjects = getService('testSubjects');
|
||||
const find = getService('find');
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
|
@ -319,6 +325,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const toTime = 'Jun 16, 2023 @ 00:00:00.000';
|
||||
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.loginAsAdmin();
|
||||
log.info(`loading ${tsdbIndex} index...`);
|
||||
await esArchiver.loadIfNeeded(tsdbEsArchive);
|
||||
log.info(`creating a data view for "${tsdbDataView}"...`);
|
||||
|
|
|
@ -32,6 +32,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
'visChart',
|
||||
'visEditor',
|
||||
'vegaChart',
|
||||
'svlCommonPage',
|
||||
]);
|
||||
const filterBar = getService('filterBar');
|
||||
const inspector = getService('inspector');
|
||||
|
@ -42,6 +43,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
describe('vega chart in visualize app', () => {
|
||||
before(async () => {
|
||||
await PageObjects.svlCommonPage.loginWithPrivilegedRole();
|
||||
await PageObjects.visualize.initTests();
|
||||
log.debug('navigateToApp visualize');
|
||||
await PageObjects.visualize.navigateToNewVisualization();
|
||||
|
|
|
@ -7,18 +7,8 @@
|
|||
|
||||
import { FtrProviderContext } from '../../../../ftr_provider_context';
|
||||
|
||||
export default ({ loadTestFile, getPageObject }: FtrProviderContext) => {
|
||||
const svlCommonPage = getPageObject('svlCommonPage');
|
||||
|
||||
export default ({ loadTestFile }: FtrProviderContext) => {
|
||||
describe('Visualizations - Group 2', function () {
|
||||
before(async () => {
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await svlCommonPage.forceLogout();
|
||||
});
|
||||
|
||||
loadTestFile(require.resolve('./open_in_lens/agg_based'));
|
||||
});
|
||||
};
|
||||
|
|
|
@ -9,7 +9,12 @@ import expect from '@kbn/expect';
|
|||
import { FtrProviderContext } from '../../../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const { lens, timePicker, dashboard } = getPageObjects(['lens', 'timePicker', 'dashboard']);
|
||||
const { svlCommonPage, lens, timePicker, dashboard } = getPageObjects([
|
||||
'svlCommonPage',
|
||||
'lens',
|
||||
'timePicker',
|
||||
'dashboard',
|
||||
]);
|
||||
|
||||
const testSubjects = getService('testSubjects');
|
||||
const find = getService('find');
|
||||
|
@ -22,6 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
before(async () => {
|
||||
await kibanaServer.importExport.load(fixture);
|
||||
await svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -9,7 +9,12 @@ import expect from '@kbn/expect';
|
|||
import { FtrProviderContext } from '../../../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const { lens, timePicker, dashboard } = getPageObjects(['lens', 'timePicker', 'dashboard']);
|
||||
const { svlCommonPage, lens, timePicker, dashboard } = getPageObjects([
|
||||
'svlCommonPage',
|
||||
'lens',
|
||||
'timePicker',
|
||||
'dashboard',
|
||||
]);
|
||||
|
||||
const testSubjects = getService('testSubjects');
|
||||
const panelActions = getService('dashboardPanelActions');
|
||||
|
@ -21,6 +26,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
before(async () => {
|
||||
await kibanaServer.importExport.load(fixture);
|
||||
await svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -9,7 +9,12 @@ import expect from '@kbn/expect';
|
|||
import { FtrProviderContext } from '../../../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const { lens, timePicker, dashboard } = getPageObjects(['lens', 'timePicker', 'dashboard']);
|
||||
const { svlCommonPage, lens, timePicker, dashboard } = getPageObjects([
|
||||
'svlCommonPage',
|
||||
'lens',
|
||||
'timePicker',
|
||||
'dashboard',
|
||||
]);
|
||||
|
||||
const panelActions = getService('dashboardPanelActions');
|
||||
const kibanaServer = getService('kibanaServer');
|
||||
|
@ -20,6 +25,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
before(async () => {
|
||||
await kibanaServer.importExport.load(fixture);
|
||||
await svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -9,7 +9,12 @@ import expect from '@kbn/expect';
|
|||
import { FtrProviderContext } from '../../../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const { lens, timePicker, dashboard } = getPageObjects(['lens', 'timePicker', 'dashboard']);
|
||||
const { svlCommonPage, lens, timePicker, dashboard } = getPageObjects([
|
||||
'svlCommonPage',
|
||||
'lens',
|
||||
'timePicker',
|
||||
'dashboard',
|
||||
]);
|
||||
|
||||
const testSubjects = getService('testSubjects');
|
||||
const panelActions = getService('dashboardPanelActions');
|
||||
|
@ -21,6 +26,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
before(async () => {
|
||||
await kibanaServer.importExport.load(fixture);
|
||||
await svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -9,7 +9,12 @@ import expect from '@kbn/expect';
|
|||
import { FtrProviderContext } from '../../../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const { lens, timePicker, dashboard } = getPageObjects(['lens', 'timePicker', 'dashboard']);
|
||||
const { svlCommonPage, lens, timePicker, dashboard } = getPageObjects([
|
||||
'svlCommonPage',
|
||||
'lens',
|
||||
'timePicker',
|
||||
'dashboard',
|
||||
]);
|
||||
|
||||
const pieChart = getService('pieChart');
|
||||
const testSubjects = getService('testSubjects');
|
||||
|
@ -22,6 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
before(async () => {
|
||||
await kibanaServer.importExport.load(fixture);
|
||||
await svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -9,7 +9,12 @@ import expect from '@kbn/expect';
|
|||
import { FtrProviderContext } from '../../../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const { lens, timePicker, dashboard } = getPageObjects(['lens', 'timePicker', 'dashboard']);
|
||||
const { svlCommonPage, lens, timePicker, dashboard } = getPageObjects([
|
||||
'svlCommonPage',
|
||||
'lens',
|
||||
'timePicker',
|
||||
'dashboard',
|
||||
]);
|
||||
|
||||
const testSubjects = getService('testSubjects');
|
||||
const panelActions = getService('dashboardPanelActions');
|
||||
|
@ -22,6 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
before(async () => {
|
||||
await kibanaServer.importExport.load(fixture);
|
||||
await svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -9,7 +9,12 @@ import expect from '@kbn/expect';
|
|||
import { FtrProviderContext } from '../../../../../../ftr_provider_context';
|
||||
|
||||
export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
||||
const { lens, timePicker, dashboard } = getPageObjects(['lens', 'timePicker', 'dashboard']);
|
||||
const { svlCommonPage, lens, timePicker, dashboard } = getPageObjects([
|
||||
'svlCommonPage',
|
||||
'lens',
|
||||
'timePicker',
|
||||
'dashboard',
|
||||
]);
|
||||
|
||||
const testSubjects = getService('testSubjects');
|
||||
const retry = getService('retry');
|
||||
|
@ -22,6 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
|
||||
before(async () => {
|
||||
await kibanaServer.importExport.load(fixture);
|
||||
await svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
|
|
|
@ -12,11 +12,7 @@ export default ({ loadTestFile, getPageObject }: FtrProviderContext) => {
|
|||
|
||||
describe('Visualizations - Group 3', function () {
|
||||
before(async () => {
|
||||
await svlCommonPage.login();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await svlCommonPage.forceLogout();
|
||||
await svlCommonPage.loginWithPrivilegedRole();
|
||||
});
|
||||
|
||||
loadTestFile(require.resolve('./open_in_lens/tsvb'));
|
||||
|
|
|
@ -15,7 +15,9 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) {
|
|||
testFiles: [
|
||||
require.resolve('../../common/discover/embeddable'),
|
||||
require.resolve('../../common/discover/x_pack'),
|
||||
require.resolve('../../common/discover_ml_uptime/discover'),
|
||||
// flaky for Security project, should be checked with Admin role permissions.
|
||||
// https://github.com/elastic/kibana/issues/172365
|
||||
// require.resolve('../../common/discover_ml_uptime/discover'),
|
||||
require.resolve('../../common/context'),
|
||||
],
|
||||
junit: {
|
||||
|
|
|
@ -9,6 +9,8 @@ import { ServerlessProjectType, SERVERLESS_ROLES_ROOT_PATH } from '@kbn/es';
|
|||
import { SamlSessionManager } from '@kbn/test';
|
||||
import { readRolesFromResource } from '@kbn/es';
|
||||
import { resolve } from 'path';
|
||||
import { Role } from '@kbn/test/src/auth/types';
|
||||
import { isServerlessProjectType } from '@kbn/es/src/utils';
|
||||
import { FtrProviderContext } from '../../functional/ftr_provider_context';
|
||||
|
||||
export function SvlUserManagerProvider({ getService }: FtrProviderContext) {
|
||||
|
@ -17,11 +19,32 @@ export function SvlUserManagerProvider({ getService }: FtrProviderContext) {
|
|||
const isCloud = !!process.env.TEST_CLOUD;
|
||||
const kbnServerArgs = config.get('kbnTestServer.serverArgs') as string[];
|
||||
const projectType = kbnServerArgs
|
||||
.find((arg) => arg.startsWith('--serverless'))!
|
||||
.split('=')[1] as ServerlessProjectType;
|
||||
.filter((arg) => arg.startsWith('--serverless'))
|
||||
.reduce((acc, arg) => {
|
||||
const match = arg.match(/--serverless[=\s](\w+)/);
|
||||
return acc + (match ? match[1] : '');
|
||||
}, '') as ServerlessProjectType;
|
||||
|
||||
const resourcePath = resolve(SERVERLESS_ROLES_ROOT_PATH, projectType, 'roles.yml');
|
||||
const supportedRoles = readRolesFromResource(resourcePath);
|
||||
if (!isServerlessProjectType(projectType)) {
|
||||
throw new Error(`Unsupported serverless projectType: ${projectType}`);
|
||||
}
|
||||
|
||||
const supportedRoles = readRolesFromResource(
|
||||
resolve(SERVERLESS_ROLES_ROOT_PATH, projectType, 'roles.yml')
|
||||
);
|
||||
const defaultRolesToMap = new Map<string, Role>([
|
||||
['es', 'developer'],
|
||||
['security', 'editor'],
|
||||
['oblt', 'editor'],
|
||||
]);
|
||||
|
||||
const getDefaultRole = () => {
|
||||
if (defaultRolesToMap.has(projectType)) {
|
||||
return defaultRolesToMap.get(projectType)!;
|
||||
} else {
|
||||
throw new Error(`Default role is not defined for ${projectType} project`);
|
||||
}
|
||||
};
|
||||
|
||||
// Sharing the instance within FTR config run means cookies are persistent for each role between tests.
|
||||
const sessionManager = new SamlSessionManager({
|
||||
|
@ -37,5 +60,18 @@ export function SvlUserManagerProvider({ getService }: FtrProviderContext) {
|
|||
supportedRoles,
|
||||
});
|
||||
|
||||
return sessionManager;
|
||||
const DEFAULT_ROLE = getDefaultRole();
|
||||
|
||||
return {
|
||||
async getSessionCookieForRole(role: string) {
|
||||
return sessionManager.getSessionCookieForRole(role);
|
||||
},
|
||||
async getApiCredentialsForRole(role: string) {
|
||||
return sessionManager.getApiCredentialsForRole(role);
|
||||
},
|
||||
async getUserData(role: string) {
|
||||
return sessionManager.getUserData(role);
|
||||
},
|
||||
DEFAULT_ROLE,
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue