[Log Explorer] Update serverless tests stability (#167482)

## 📓 Summary

Update login logic, sorting and search algorithm to stabilize the flaky
tests for Log Explorer.

Closes #165915
Closes #165916 
Closes #165975  
Closes #166016 
Closes #166672 
Closes #166675 
Closes #166817 
Closes #167058
Closes #167189 
Closes #167499 
Closes #167515  
Closes #167562 
Closes #167567 
Closes #167621 
Closes #167664 
Closes #167773

---------

Co-authored-by: Marco Antonio Ghiani <marcoantonio.ghiani@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Marco Antonio Ghiani 2023-10-05 12:52:41 +02:00 committed by GitHub
parent 15a62fe546
commit 2207928e63
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 73 additions and 57 deletions

View file

@ -146,7 +146,10 @@ export const createDataViewsStateMachine = ({
const searchParams = context.search;
return context.cache.has(searchParams)
? Promise.resolve(context.cache.get(searchParams))
: dataViews.getIdsWithTitle().then((views) => views.map(parseDataViewListItem));
: dataViews
.getIdsWithTitle()
.then((views) => views.map(parseDataViewListItem))
.then((views) => searchDataViews(views, searchParams));
},
},
});

View file

@ -20,7 +20,7 @@ import type {
export const createPureDatasetsStateMachine = (
initialContext: DefaultDatasetsContext = DEFAULT_CONTEXT
) =>
/** @xstate-layout N4IgpgJg5mDOIC5QBECGAXVBldAnMqAtrAHQCuAdgJbXpWoA2VAXpAMQAyA8gILID6yHgBUe-LMIBKAUR4BZLAG0ADAF1EoAA4B7WFTraKGkAA9EAdmUBWEuYCMygJwBmc1YA0IAJ6IATFeUSO3NHewAOZWCrczC7XwBfeM80TBx8IlIGbVQIGig2CEMwEhoAN20Aa2KU7DwCYhIsnLyEMu0AYwwqQxVVXuMdPQMjJFMLO0dbOzC3Tx8EWJIA5WVnayiYuMTkjFr0hqbcinywXFxtXBJNBgwAMwvCEhq0+szso6hWinLO4d7+0aDfTdEagMwIOzTcwkXyrOIebx+RyTZx2NZWNEBRyQgAsVm2IGedQyjXe7CwskkAGEABKCERiCQyeRKNQDXTAwzGcF2ABsgTxqP8c0QVjFJCcvOcYRxvJlvhxOMcBKJ+zeOXJXEkwnponEUlkCgBWg5w25iD5AqsQoR82cOOhjmtdjFGLcmxVuxeJIgYAARtpKO0wFgCLh2gALPKq15sCk8al0oR6pmG1nqQGmkHmhA45w2KxhWE2kW57EkXkhcKRd2xT2pYkNX0BoMhsOR6NexuwNgmWCYdDFVC3Qe4AAUa2UAEo2DGff7AxRg6HUOGo8c58RjSAgWbRuDLDZ7E5XLbRfYK1XpjXonWkoSu2rSc1jgAxVBUBjsGTcPi6xkGiy267tm+4WlCMJwsKiIIAqYQkLE6KYk4uJhIk94UNovrwKMm44SaQygWCiAALS8qWZH1nsrzkNQtD0EwrAQOyhFcmBCBWFKCGODKp6lv4gSVqE14bLECT3nhz4fCxnKgmMCCOIqJCKc60HzL4ziTL4vjCREol2DiVHegcZLMZmrFyeCOK+KWaLwREDoibWWwSY+NHNouy7tuuUB4TJe7EbmkK2GeHEOkEV56c5RndlJeTvp+kD+UR8kGfmJAljBvgurYOnVvphnoUAA */
/** @xstate-layout N4IgpgJg5mDOIC5QBECGAXVsztgOgFcA7AS1PRNQBsSAvSAYgBkB5AQWQH1k2AVNgMoBRXgIDaABgC6iUAAcA9rBIUFRWSAAeiAGwBmAJx4DAdh0BWPXvMAWAIzn9BgDQgAnogAcdvDYP+dACYdfQk9e08AX0jXNExsXDwqBVQIMigGCDUwPDIANwUAaxy4rBx8ZNT0hHyFAGMMEjVJKRaNRWVVdSQtXUNjM0tre0dDVw8EG09A339PHU8wwMWw6NiMMsTKtKIMsAAnfYV9vDkqDAAzY4BbPFKEipSdqBqiAoaulraejpUm7tA2gQdhBMwkEhMJnMjhseh0Ek8nnGiEC5iM5hBJmm+k8BimwTWIHu5SST3SDGEbAASgBhAAS3D4ghE4mk7SUfzUGiBOhMNjwJnC4Vh8J0eJsyOBnnMxjsFmW5m8JjsnhshOJWzJuwpLCpvEZ-GEom+8g5XW5iAMEiMsL5NnhWMChkCksxeB0NkC4MVCz0nj5OnVGwepNSjEptIZPENLJNIF+5p6QLlEl8ljsCvCEjlC0lXr0sosiNhqokapiRODJO24d1+ujzONbJ+Zv+FuB8LTegz0qzOaR7kQVk8AsFgQM03HJitUQrGvwEDAACMFMQ6mABGBUPs6gALdLzilCan0g2N1kyFudNtJxA2cF4QJ2KbdsKQq0uwfA++zfwihxYgigZzlWiSLiua4bluO77rsh6aLAmDoDkqAXMh+wABR6OCACUDDzng4GrkQ66btue4HqBsBxgmN6An0RimBYVi2A4Th5nCvhyrY8yeOEKoEiB8TVlqUAAGKoCQVCMFSQisBwZ5Ghe7LXlyt7AqCeDgpC0IenCCIDhMXpGNmdhmKiegmIEL56NEFZEAoi7wD084qZyAK9AgAC0OiSj5QbCYkxBkH81B0JAbmJvRkwGAWcr3jYJjWjYGJ2C4X7TFp4LgiqIIToKJgBZsjxVLskV0Z5uL8kEfgpYY-o2BKX5PiZBgYiliWNRIHqzusgUlYuEDlWp0WepK5hOlptjTcs07deWfXFYRy7EaR0EUXBVHDR5QKWamQpWW1VndUErptcY-gGPoyp8osfJFSG2zpBJUkRVe7ntnY3YjsqCJTAYcqovMrpingaIYo4V0pXx912UAA */
createMachine<DatasetsContext, DatasetsEvent, DatasetsTypestate>(
{
context: initialContext,
@ -44,6 +44,13 @@ export const createPureDatasetsStateMachine = (
},
onError: 'loadingFailed',
},
on: {
SEARCH_DATASETS: 'debounceSearchingDatasets',
SORT_DATASETS: {
target: 'loading',
actions: 'storeSearch',
},
},
},
loaded: {
on: {

View file

@ -24,7 +24,7 @@ export const createPureIntegrationsStateMachine = (
) =>
createMachine<IntegrationsContext, IntegrationsEvent, IntegrationTypestate>(
{
/** @xstate-layout N4IgpgJg5mDOIC5QEkB2AXMUBOBDdAlgPaqwB0ArqgdYbgDYEBekAxANoAMAuoqAA5FYBQiT4gAHogC0ATgBs8sgEYAHAHYALMs7rV85ctkAmADQgAnonWcysgKwHZmgMwPlN1aoC+382kwcfGJSMnoiXAgaKFYIEjAyGgA3IgBrBICsPFFQ8MjohGSiAGNgki5uCvFBYRzxKQRpdQ8yY3tlRTVOF05OTXMrBGUXJXtZVU1J1UMXTWNffwwsstyIqNQYsGxsImwyfnp8ADNdgFsyTKCc8jz1qELUFNKciqqkEBqREPqZHWNjMj2GzGTiqWQuYyuYyqAaIaFKVScZzydT2EY6FwuBYgS7ZEI3NaQRIQehgVgAGQA8gBBAAiAH0ALKUgBKAFF6cgAHIAFTZAHEWdSechKVyAMpvARCL5id4NaTGHqApyyDzKYxaDywhA9VRkMGycGcZSuPSg7G4lYEyJEggksnitnUlkAYQAEpzeQKhSKxZKeNUZXV5TIXOpZGRNA5-prUUigTq2uoyLNOGjFJoI7N5n4cUsrviwoSIMTSaxxayeV6+YLhaKJVKPsHvqHGs1bBrFJj7JN7I4zJZEJolOpjApZoZ5FD9JaC3iSDaIHaHRXnW7Pdza76G+L6eKeezqYyA7x3p8Q6AFSCEUZe2jVD1ZEidUZNGQI2iO7IbA5ZHPAgXVZbVLe1y0rFlqy3H1639fdD2dE8mwvVsrzDMYozRVx7FUTUxiRdQdWkQwAUMbQRkhZ8XCBTQAOWa5ixAxi7kZXYyTiVAEiKdILnna1mKJW5olY7AwAeJ4VleQNzxbOU0IQLN3wotxphsFFDCI2YDXsOM0Q1I1NVovMrQY25BLWYS2NYLYdj2A5jjOXjAP4szSyEjYRLEopnhCKSz2lWpUMkX4TXfdN-lw0E+kUQihwQHD9W6XRsOmEdXDowtFwE0tlwAIyIKhijAcUwFwbBigAC2iEz8TXF0PRrGC-UbaSAtlVAfkaexbAhdRUQmU1+yBLQdTmWx0xwmxPFmeRc0WZzTJLMg8oK1AipKsrKuqvjrlYCRYHQfAElwI5MGwAAKHpOAASlYGqstc5awHywritK8qqo2e7SGQ2SOrbaRpxTVR2jGXDUXBPRRuMZRAX7EH1HkBR1BcU0jPm+ii0elbXo2j7toW-FxXQUTcFOWA6o3Rq62avcDyPJDWubQK5OC+Leg-VHDA8MdXDUeQdQhSNUY7cdmkxTg5vzQmHqWnG1rezbPqgb7YGJ0nyb2g6jrIE6zsu3pbtV7KnpehW8a2r6dqJknSvJ36Wf++Sug-BR2mMeRerBadRv1f4FDVT3wV69Hpcx2X8g2AAxXACFJCBWHZKk6Wpnd-Qd9rOuIzVYemadOBREHoxRpMQdTJEzRBTUwXUXw81QIhl3gd5VaDR2s+GIwDQ6TQC70XsfxcIjoRTMiOg1XCDAjUPjaoGgvgYZhIDbzOAYMsh0xHboNF7Nwh7i4j7FTMYPcfftZhRtEMqApdohXy82eI7pR2jExEb1D3YsGDpbD6xFnH7DoUE4Zr4uRLPfIKCo5gpmjDpf4fVuoOC-r8I0ZADDaFmvoHQyh2hYmMtbCOy5QIOggaza8XhATTFwtMGMIM2g6iRphWayU+4I3sKAxaTF3JQE8qQp2bMXYozcECHsU5lClyPm4I0mh8LdC0FLY22NnqrXWu9S2KsCGkD4VncMsNwxImfkiDQfVBYKDhglac05wQKA4VjOWyjcZqOVqrdWdtm5tQfg0DUAI5jB17moOY44BZxXVK0Bw1EcH6D5v+fBMtgJ3BjnHZeMl24A2wZGHQ4If5omrsg3UiNWh9RjPpaM4467eCAA */
/** @xstate-layout N4IgpgJg5mDOIC5QEkB2AXMUBOBDdAlgPaqwB0ArqgdYbgDYEBekAxANoAMAuoqAA5FYBQiT4gAHogBMnAMxkAHAEZpAVmnSALIoCcc5Vt3SANCACeiYwDYy1rWoDsjxdcXPH1gL5ezaTDj4xKRk9ES4EDRQrBAkYGQ0AG5EANbx-lh4oiFhEVEISUQAxkEkXNzl4oLC2eJSCBpmlgjKnLpaSrpOatacnNbWhlo+fhiZpTnhkajRYNjYRNhk-PT4AGaLALZkGYHZ5LnTUAWoySXZ5ZVIINUiwXWIytbSimSc0oPy+optjnJNVnsZC0nE8anaoMc8mGvhAuyywQOUyirAAygBRACCACUAMIACQA+sgAHIAFXRAHFsZiycgAPIk1FXARCO5ia71Vo9MhQtRGFxqTjKZS6XQAlrC3S85zSRy6RxaOSKIXSEZwsZ7RGhZEzNH07Fk4nkqk0umM5k8Kps2qcx5qZSOOyqMVaIzuXTWNQS+WcOzWXTKORORRutyKdXwiZIiKQBIQehgVgAGXpmIAIoSALIG9HGinU2kMpksm42+52hBKhRyuRKzR6XSccFaCVu6RkAzadT2dQaRWRzUIkgxiBxggJpMYnEE-OmosW0u3W2gerVsi1+svMXN9oSgMduRdRyqwx-ZQR2FR-Y62MQeOJ-WGueF80lq3XZcV1ePPtvAwqk2Oi9IoEpqE4nZaIMhjSEeiihsog4BMOkx3g+U5YniRKkgWZrFqihKomS2JYlmlq8J+5Ycj+VZyDWfxbo2u6thYMhusCahyKC7iDJ4XGOEh4w3oc46Tk+Ro4fOb4EURJGYmRS5UagDwIAAtCeG5yloTxuG4CpqKBrENH0bzuOCIqDIGfQwqMyHRreY73ocURZosSaxKg8SFGkOxDvZIlObqUCudgYAnGcEyXB+rI1N+kiIF6yhkAq1iONoWjSJ6UGmEZmUdF0XF6AZvwioJWojg5cbOTMIVJnMCxLCs6xbL5dnCVMVVBbV4XFJFPCKbF1HxS02gKGKmhGHRLhQf8RlKn6R4GeBsiipoAlXn57VoWOABGRBUEUYComAuDYEUAAWUTXoiaKYbOkmvvhA3ssplZAW82geOovrWD6dZ2A4zhnpwrjtGVKGjnGu37agh3HadF1XZtN0SLA6D4PEuBrJg2AABRcZwACUrDXRVAVkNDB1HSdZ2XTMpOkM9K7DaoSrJcY2j6HI03WLNzQqB09hOO0nHzV04P+R196U7D1MI3TUAM7AqLoKFuCbLAt0zthJqPRahHEaR5HWoNr00WZSgnv0PYaB6EpPK8DgGG6ijKroPzqBLW2ORTYB7VT8O00jbWIirasa6wqPo5gZBYzj+N9MTSuVdLfsw3DNOI-TyMjmHJ0a0zcX1M8ahvFB7QKievPNvbDpvH0fRem6QYGd4G0h2TQUAGK4AQiYQKwJGphmL54Yu0VlqbKlPC8H2fEeyq-HzVhBsloL2Cq8FGBoPiwqgRBjvA1xKybL0qapjpJWt2kDK4egnoZzSqbB7NimlAyKqG7he9qVA0HcDBmCQFPszYuOVmjGFLkLP4lcXDvBshqDuqEjggKLo8I8SUfh-DrNzHQrsJTvTkKNOsrtlpKh-p3O8qChr1Avi-a+Ok776UfglBQQo+hPG+EQ-kYN25CW1OTCciZqFm2GrIBQypUqcCgkGWCmV9zOF5JfRUHNlBODbrZfhlCfbVWCm5ERKk9CvDkKlbQDpVCyJYs0EEpciryjlHKRul5NHlWQVDNOAdM4KxPpRKelYPRkAMnRH4LsQZGB9E2MghgQyaCbJCBBydyYywzvLYOWjSB53VkfGKZ9-GDCifYVoHwvT8lBBKTQY1OLNgdJ6RQshnAUOQVEHufdgG+NyTRC8bhAkfDCYGVQdSrGIBVElJsnhHSV0DGoXeXggA */
context: initialContext,
preserveActionOrder: true,
predictableActionArguments: true,
@ -45,6 +45,13 @@ export const createPureIntegrationsStateMachine = (
},
onError: 'loadingFailed',
},
on: {
SEARCH_INTEGRATIONS: 'loaded.debounceSearchingIntegrations',
SORT_INTEGRATIONS: {
target: '#loading',
actions: 'storeSearch',
},
},
},
loaded: {
id: 'loaded',

View file

@ -6,7 +6,6 @@
*/
import expect from '@kbn/expect';
import rison from '@kbn/rison';
import querystring from 'querystring';
import { FtrProviderContext } from '../../ftr_provider_context';
const defaultLogColumns = ['@timestamp', 'service.name', 'host.name', 'message'];
@ -33,8 +32,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it("should initialize the table columns to logs' default selection", async () => {
await PageObjects.observabilityLogExplorer.navigateTo();
await PageObjects.discover.expandTimeRangeAsSuggestedInNoResultsMessage();
await retry.try(async () => {
expect(await PageObjects.discover.getColumnHeaders()).to.eql(defaultLogColumns);
});
@ -42,15 +39,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('should restore the table columns from the URL state if exists', async () => {
await PageObjects.observabilityLogExplorer.navigateTo({
search: querystring.stringify({
search: {
_a: rison.encode({
columns: ['service.name', 'host.name', 'message', 'data_stream.namespace'],
}),
}),
},
});
await PageObjects.discover.expandTimeRangeAsSuggestedInNoResultsMessage();
await retry.try(async () => {
expect(await PageObjects.discover.getColumnHeaders()).to.eql([
...defaultLogColumns,

View file

@ -6,7 +6,6 @@
*/
import expect from '@kbn/expect';
import rison from '@kbn/rison';
import querystring from 'querystring';
import { FtrProviderContext } from '../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
@ -30,9 +29,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const azureActivitylogsIndex =
'BQZwpgNmDGAuCWB7AdgLmAEwIay+W6yWAtmKgOQSIDmIAtFgF4CuATmAHRZzwBu8sAJ5VadAFTkANAlhRU3BPyEiQASklFS8lu2kC55AII6wAAgAyNEFN5hWIJGnIBGDgFYOAJgDM5deCgeFAAVQQAHMgdkaihVIA===';
await PageObjects.observabilityLogExplorer.navigateTo({
search: querystring.stringify({
search: {
_a: rison.encode({ index: azureActivitylogsIndex }),
}),
},
});
const datasetSelectionTitle =
@ -44,9 +43,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('should fallback to the "All logs" selection and notify the user of an invalid encoded index', async () => {
const invalidEncodedIndex = 'invalid-encoded-index';
await PageObjects.observabilityLogExplorer.navigateTo({
search: querystring.stringify({
search: {
_a: rison.encode({ index: invalidEncodedIndex }),
}),
},
});
const datasetSelectionTitle =
@ -67,10 +66,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const azureActivitylogsIndex =
'BQZwpgNmDGAuCWB7AdgLmAEwIay+W6yWAtmKgOQSIDmIAtFgF4CuATmAHRZzwBu8sAJ5VadAFTkANAlhRU3BPyEiQASklFS8lu2kC55AII6wAAgAyNEFN5hWIJGnIBGDgFYOAJgDM5deCgeFAAVQQAHMgdkaihVIA===';
await PageObjects.observabilityLogExplorer.navigateTo({
search: querystring.stringify({
search: {
_a: rison.encode({ index: azureActivitylogsIndex }),
controlPanels: rison.encode({}),
}),
},
});
const azureDatasetSelectionTitle =
await PageObjects.observabilityLogExplorer.getDatasetSelectorButtonText();

View file

@ -14,7 +14,7 @@ const initialPackageMap = {
};
const initialPackagesTexts = Object.values(initialPackageMap);
const expectedDataViews = ['logstash-*', 'logs-*', 'metrics-*'];
const expectedDataViews = ['logs-*', 'logstash-*', 'metrics-*'];
const sortedExpectedDataViews = expectedDataViews.slice().sort();
const uncategorized = ['logs-gaming-*', 'logs-manufacturing-*', 'logs-retail-*'];
@ -30,8 +30,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const noIntegrationsTitle = 'No integrations found';
const noUncategorizedTitle = 'No data streams found';
// Failing: See https://github.com/elastic/kibana/issues/167621
describe.skip('Dataset Selector', () => {
describe('Dataset Selector', () => {
before(async () => {
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
await PageObjects.observabilityLogExplorer.removeInstalledPackages();

View file

@ -47,9 +47,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
it('should navigate to discover keeping the current columns/filters/query/time/data view', async () => {
// Set timerange to specific values to match data and retrieve config
await PageObjects.discover.expandTimeRangeAsSuggestedInNoResultsMessage();
await retry.try(async () => {
await testSubjects.existOrFail('superDatePickerstartDatePopoverButton');
await testSubjects.existOrFail('superDatePickerendDatePopoverButton');

View file

@ -5,6 +5,8 @@
* 2.0.
*/
import expect from '@kbn/expect';
import rison from '@kbn/rison';
import querystring from 'querystring';
import { WebElementWrapper } from '../../../../test/functional/services/lib/web_element_wrapper';
import { FtrProviderContext } from '../ftr_provider_context';
@ -99,6 +101,9 @@ const packages: IntegrationPackage[] = [
const initialPackages = packages.slice(0, 3);
const additionalPackages = packages.slice(3);
const FROM = '2023-08-03T10:24:14.035Z';
const TO = '2023-08-03T10:24:14.091Z';
export function ObservabilityLogExplorerPageObject({
getPageObjects,
getService,
@ -109,7 +114,12 @@ export function ObservabilityLogExplorerPageObject({
const testSubjects = getService('testSubjects');
const toasts = getService('toasts');
type NavigateToAppOptions = Parameters<typeof PageObjects['common']['navigateToApp']>[1];
type NavigateToAppOptions = Omit<
Parameters<typeof PageObjects['common']['navigateToApp']>[1],
'search'
> & {
search?: Record<string, string>;
};
return {
uninstallPackage: ({ name, version }: IntegrationPackage) => {
@ -172,8 +182,19 @@ export function ObservabilityLogExplorerPageObject({
};
},
async navigateTo(options?: NavigateToAppOptions) {
return await PageObjects.common.navigateToApp('observabilityLogExplorer', options);
async navigateTo(options: NavigateToAppOptions = {}) {
const { search = {}, ...extraOptions } = options;
const composedSearch = querystring.stringify({
...search,
_g: rison.encode({
time: { from: FROM, to: TO },
}),
});
return await PageObjects.common.navigateToApp('observabilityLogExplorer', {
search: composedSearch,
...extraOptions,
});
},
getDatasetSelector() {
@ -181,7 +202,7 @@ export function ObservabilityLogExplorerPageObject({
},
getDatasetSelectorButton() {
return testSubjects.find('datasetSelectorPopoverButton', 30000); // Increase timeout if refresh takes longer before opening the selector
return testSubjects.find('datasetSelectorPopoverButton', 120000); // Increase timeout if refresh takes longer before opening the selector
},
getDatasetSelectorContent() {
@ -290,7 +311,7 @@ export function ObservabilityLogExplorerPageObject({
const searchField = await searchControlsContainer.findByCssSelector('input[type=search]');
await searchField.clearValueWithKeyboard();
return searchField.type(name);
return searchField.type(name, { charByChar: true });
},
async clearSearchField() {

View file

@ -6,7 +6,6 @@
*/
import expect from '@kbn/expect';
import rison from '@kbn/rison';
import querystring from 'querystring';
import { FtrProviderContext } from '../../../ftr_provider_context';
const defaultLogColumns = ['@timestamp', 'service.name', 'host.name', 'message'];
@ -14,18 +13,18 @@ const defaultLogColumns = ['@timestamp', 'service.name', 'host.name', 'message']
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const esArchiver = getService('esArchiver');
const retry = getService('retry');
const PageObjects = getPageObjects(['discover', 'observabilityLogExplorer']);
const PageObjects = getPageObjects(['discover', 'observabilityLogExplorer', 'svlCommonPage']);
// FLAKY: https://github.com/elastic/kibana/issues/165915
// FLAKY: https://github.com/elastic/kibana/issues/165916
describe.skip('Columns selection initialization and update', () => {
describe('Columns selection initialization and update', () => {
before(async () => {
await esArchiver.load(
'x-pack/test/functional/es_archives/observability_log_explorer/data_streams'
);
await PageObjects.svlCommonPage.login();
});
after(async () => {
await PageObjects.svlCommonPage.forceLogout();
await esArchiver.unload(
'x-pack/test/functional/es_archives/observability_log_explorer/data_streams'
);
@ -35,8 +34,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it("should initialize the table columns to logs' default selection", async () => {
await PageObjects.observabilityLogExplorer.navigateTo();
await PageObjects.discover.expandTimeRangeAsSuggestedInNoResultsMessage();
await retry.try(async () => {
expect(await PageObjects.discover.getColumnHeaders()).to.eql(defaultLogColumns);
});
@ -44,15 +41,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('should restore the table columns from the URL state if exists', async () => {
await PageObjects.observabilityLogExplorer.navigateTo({
search: querystring.stringify({
search: {
_a: rison.encode({
columns: ['service.name', 'host.name', 'message', 'data_stream.namespace'],
}),
}),
},
});
await PageObjects.discover.expandTimeRangeAsSuggestedInNoResultsMessage();
await retry.try(async () => {
expect(await PageObjects.discover.getColumnHeaders()).to.eql([
...defaultLogColumns,

View file

@ -6,7 +6,6 @@
*/
import expect from '@kbn/expect';
import rison from '@kbn/rison';
import querystring from 'querystring';
import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
@ -19,7 +18,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'header',
]);
// https://github.com/elastic/kibana/issues/166016
describe('DatasetSelection initialization and update', () => {
before(async () => {
await PageObjects.svlCommonPage.login();
@ -45,9 +43,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const azureActivitylogsIndex =
'BQZwpgNmDGAuCWB7AdgLmAEwIay+W6yWAtmKgOQSIDmIAtFgF4CuATmAHRZzwBu8sAJ5VadAFTkANAlhRU3BPyEiQASklFS8lu2kC55AII6wAAgAyNEFN5hWIJGnIBGDgFYOAJgDM5deCgeFAAVQQAHMgdkaihVIA===';
await PageObjects.observabilityLogExplorer.navigateTo({
search: querystring.stringify({
search: {
_a: rison.encode({ index: azureActivitylogsIndex }),
}),
},
});
await PageObjects.header.waitUntilLoadingHasFinished();
@ -60,9 +58,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
it('should fallback to the "All logs" selection and notify the user of an invalid encoded index', async () => {
const invalidEncodedIndex = 'invalid-encoded-index';
await PageObjects.observabilityLogExplorer.navigateTo({
search: querystring.stringify({
search: {
_a: rison.encode({ index: invalidEncodedIndex }),
}),
},
});
await PageObjects.header.waitUntilLoadingHasFinished();
@ -85,10 +83,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const azureActivitylogsIndex =
'BQZwpgNmDGAuCWB7AdgLmAEwIay+W6yWAtmKgOQSIDmIAtFgF4CuATmAHRZzwBu8sAJ5VadAFTkANAlhRU3BPyEiQASklFS8lu2kC55AII6wAAgAyNEFN5hWIJGnIBGDgFYOAJgDM5deCgeFAAVQQAHMgdkaihVIA===';
await PageObjects.observabilityLogExplorer.navigateTo({
search: querystring.stringify({
search: {
_a: rison.encode({ index: azureActivitylogsIndex }),
controlPanels: rison.encode({}),
}),
},
});
await PageObjects.header.waitUntilLoadingHasFinished();
const azureDatasetSelectionTitle =

View file

@ -34,8 +34,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
const noIntegrationsTitle = 'No integrations found';
const noUncategorizedTitle = 'No data streams found';
// Failing: See https://github.com/elastic/kibana/issues/167773
describe.skip('Dataset Selector', () => {
describe('Dataset Selector', () => {
before(async () => {
await PageObjects.svlCommonPage.login();
await PageObjects.observabilityLogExplorer.removeInstalledPackages();
@ -55,7 +54,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
await PageObjects.observabilityLogExplorer.openDatasetSelector();
});
it('should always display the Integrations Uncategorized and Data Views top level tabs', async () => {
it('should always display the Integrations, Uncategorized and Data Views top level tabs', async () => {
const integrationsTab = await PageObjects.observabilityLogExplorer.getIntegrationsTab();
const uncategorizedTab = await PageObjects.observabilityLogExplorer.getUncategorizedTab();
const dataViewsTab = await PageObjects.observabilityLogExplorer.getDataViewsTab();

View file

@ -8,18 +8,18 @@ import { FtrProviderContext } from '../../../ftr_provider_context';
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const kibanaServer = getService('kibanaServer');
const PageObjects = getPageObjects(['observabilityLogExplorer', 'svlCommonPage']);
const testSubjects = getService('testSubjects');
const PageObjects = getPageObjects(['observabilityLogExplorer', 'svlCommonPage']);
describe('Filter controls customization', () => {
before('initialize tests', async () => {
await PageObjects.svlCommonPage.login();
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
await PageObjects.svlCommonPage.login();
});
after('clean up archives', async () => {
await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover');
await PageObjects.svlCommonPage.forceLogout();
await kibanaServer.importExport.unload('test/functional/fixtures/kbn_archiver/discover');
});
it('renders a filter controls section as part of the unified search bar', async () => {

View file

@ -21,7 +21,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'header',
]);
// FLAKY: https://github.com/elastic/kibana/issues/167189
describe('Header menu', () => {
before(async () => {
await kibanaServer.importExport.load('test/functional/fixtures/kbn_archiver/discover');
@ -58,9 +57,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
it('should navigate to discover keeping the current columns/filters/query/time/data view', async () => {
// Set timerange to specific values to match data and retrieve config
await PageObjects.discover.expandTimeRangeAsSuggestedInNoResultsMessage();
await retry.try(async () => {
await testSubjects.existOrFail('superDatePickerstartDatePopoverButton');
await testSubjects.existOrFail('superDatePickerendDatePopoverButton');