Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Reporting] Add new data-render-error attribute #114472

Conversation

jloleysens
Copy link
Contributor

Summary

Continuation of #113544.

We should close out #103561 after merging this new reporting functionality since these changes should enable improved UX for error reporting from App Services side.

How to test

  1. Start ES + Kibana. Make sure to add --run-examples when starting Kibana
  2. Go to "Developer examples"
  3. Request a new report (one of each kind, legacy and v2)
  4. Check the report output

Follow up work

Once this is merged, we should be able to start working on: #104395 and close

Screenshots

Show render errors in report info panel

Screenshot 2021-10-11 at 13 55 55

Checklist

@jloleysens jloleysens added (Deprecated) Feature:Reporting Use Reporting:Screenshot, Reporting:CSV, or Reporting:Framework instead v8.0.0 release_note:skip Skip the PR/issue when compiling release notes Team:Reporting Services v7.16.0 labels Oct 11, 2021
@jloleysens jloleysens requested review from a team as code owners October 11, 2021 12:12
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-reporting-services (Team:Reporting Services)

@jloleysens jloleysens changed the title Reporting/add new data render error attribute [Reporting] Add new data-render-error attribute Oct 11, 2021
}
});

return errorMessages;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like this should return undefined if there are no render errors, yes?

const errorMessages: string[] = [];

visualizations.forEach((visualization) => {
const errorMessage = visualization.getAttribute('data-render-error');
Copy link
Member

@tsullivan tsullivan Oct 11, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couldn't a visualization possibly have elements with data-render-error but not match the layout.selectors.renderComplete selector? Seems like the render error selector should be independent of the render complete selector.

Also, there should be a [data-render-error] selector defined in the LayoutInstance, below here: https://github.com/elastic/kibana/blob/5957d31/x-pack/plugins/reporting/server/lib/layouts/index.ts#L35

Comment on lines 102 to 107
mergeMap(async () => {
// Read any data-render-error's so that users can be notified when something went wrong
return {
renderErrors: await getRenderErrors(driver, layout, logger),
};
}),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
mergeMap(async () => {
// Read any data-render-error's so that users can be notified when something went wrong
return {
renderErrors: await getRenderErrors(driver, layout, logger),
};
}),
mergeMap(async () => ({
// Read any data-render-error's so that users can be notified when something went wrong
renderErrors: await getRenderErrors(driver, layout, logger),
})),

@@ -28,6 +29,7 @@ const DEFAULT_SCREENSHOT_CLIP_WIDTH = 1800;
interface ScreenSetupData {
elementsPositionAndAttributes: ElementsPositionAndAttribute[] | null;
timeRange: string | null;
renderErrors: string[];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
renderErrors: string[];
renderErrors?: string[];

elementsPositionAndAttributes: null,
timeRange: null,
error: err,
renderErrors: [],
Copy link
Member

@tsullivan tsullivan Oct 11, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

renderErrors should be optional and left out if it is empty

Copy link
Member

@tsullivan tsullivan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a few comments about the changes

@tsullivan
Copy link
Member

tsullivan commented Oct 11, 2021

@jloleysens
Copy link
Contributor Author

@elasticmachine merge upstream

@jloleysens
Copy link
Contributor Author

@elasticmachine merge upstream

kibanamachine and others added 3 commits October 12, 2021 08:22
- make renderErrors optional in interfaces
- create separate selectors for data render error selector/attr
- Tidy up mergeMap behaviour
Copy link
Member

@tsullivan tsullivan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jloleysens
Copy link
Contributor Author

@elasticmachine merge upstream

@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky


Test Failures

Kibana Pipeline / general / Chrome UI Functional Tests.test/functional/apps/discover/_indexpattern_without_timefield·ts.discover app indexpattern without timefield should switch between with and without timefield using the browser back button

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has failed 5 times on tracked branches: https://github.com/elastic/kibana/issues/107057

[00:00:00]     │
[00:07:23]       └-: discover app
[00:07:23]         └-> "before all" hook in "discover app"
[00:07:23]         └-> "before all" hook in "discover app"
[00:28:18]         └-: indexpattern without timefield
[00:28:18]           └-> "before all" hook for "should not display a timepicker"
[00:28:18]           └-> "before all" hook for "should not display a timepicker"
[00:28:18]             │ info [test/functional/fixtures/es_archiver/index_pattern_without_timefield] Loading "mappings.json"
[00:28:18]             │ info [test/functional/fixtures/es_archiver/index_pattern_without_timefield] Loading "data.json"
[00:28:19]             │ info [o.e.c.m.MetadataCreateIndexService] [node-01] [without-timefield] creating index, cause [api], templates [], shards [1]/[0]
[00:28:19]             │ info [test/functional/fixtures/es_archiver/index_pattern_without_timefield] Created index "without-timefield"
[00:28:19]             │ debg [test/functional/fixtures/es_archiver/index_pattern_without_timefield] "without-timefield" settings {"index":{"number_of_replicas":"0","number_of_shards":"1"}}
[00:28:19]             │ info [o.e.c.m.MetadataCreateIndexService] [node-01] [with-timefield] creating index, cause [api], templates [], shards [1]/[0]
[00:28:19]             │ info [test/functional/fixtures/es_archiver/index_pattern_without_timefield] Created index "with-timefield"
[00:28:19]             │ debg [test/functional/fixtures/es_archiver/index_pattern_without_timefield] "with-timefield" settings {"index":{"number_of_replicas":"0","number_of_shards":"1"}}
[00:28:19]             │ info [o.e.c.m.MetadataMappingService] [node-01] [with-timefield/rypsvphrRhKbB0sGgZ2XSg] update_mapping [_doc]
[00:28:19]             │ info [o.e.c.m.MetadataMappingService] [node-01] [without-timefield/ffww7f66RUapMsl5VQxQ9g] create_mapping
[00:28:19]             │ info [test/functional/fixtures/es_archiver/index_pattern_without_timefield] Indexed 1 docs into "without-timefield"
[00:28:19]             │ info [test/functional/fixtures/es_archiver/index_pattern_without_timefield] Indexed 1 docs into "with-timefield"
[00:28:19]             │ info [test/functional/fixtures/es_archiver/index_pattern_without_timefield] Indexed 2 docs into ".kibana"
[00:28:19]             │ debg Migrating saved objects
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.358+00:00][INFO ][savedobjects-service] [.kibana_task_manager] INIT -> OUTDATED_DOCUMENTS_SEARCH_OPEN_PIT. took: 10ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.361+00:00][INFO ][savedobjects-service] [.kibana] INIT -> OUTDATED_DOCUMENTS_SEARCH_OPEN_PIT. took: 17ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.364+00:00][INFO ][savedobjects-service] [.kibana] OUTDATED_DOCUMENTS_SEARCH_OPEN_PIT -> OUTDATED_DOCUMENTS_SEARCH_READ. took: 3ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.365+00:00][INFO ][savedobjects-service] [.kibana_task_manager] OUTDATED_DOCUMENTS_SEARCH_OPEN_PIT -> OUTDATED_DOCUMENTS_SEARCH_READ. took: 7ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.370+00:00][INFO ][savedobjects-service] [.kibana_task_manager] OUTDATED_DOCUMENTS_SEARCH_READ -> OUTDATED_DOCUMENTS_SEARCH_CLOSE_PIT. took: 5ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.372+00:00][INFO ][savedobjects-service] [.kibana] Starting to process 2 documents.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.372+00:00][INFO ][savedobjects-service] [.kibana] OUTDATED_DOCUMENTS_SEARCH_READ -> OUTDATED_DOCUMENTS_TRANSFORM. took: 8ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.374+00:00][INFO ][savedobjects-service] [.kibana_task_manager] OUTDATED_DOCUMENTS_SEARCH_CLOSE_PIT -> UPDATE_TARGET_MAPPINGS. took: 4ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.375+00:00][INFO ][savedobjects-service] [.kibana] OUTDATED_DOCUMENTS_TRANSFORM -> TRANSFORMED_DOCUMENTS_BULK_INDEX. took: 3ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.379+00:00][INFO ][savedobjects-service] [.kibana] TRANSFORMED_DOCUMENTS_BULK_INDEX -> OUTDATED_DOCUMENTS_SEARCH_READ. took: 4ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.383+00:00][INFO ][savedobjects-service] [.kibana_task_manager] UPDATE_TARGET_MAPPINGS -> UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK. took: 9ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.385+00:00][INFO ][savedobjects-service] [.kibana] OUTDATED_DOCUMENTS_SEARCH_READ -> OUTDATED_DOCUMENTS_SEARCH_CLOSE_PIT. took: 6ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.387+00:00][INFO ][savedobjects-service] [.kibana] OUTDATED_DOCUMENTS_SEARCH_CLOSE_PIT -> OUTDATED_DOCUMENTS_REFRESH. took: 2ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.399+00:00][INFO ][savedobjects-service] [.kibana] OUTDATED_DOCUMENTS_REFRESH -> UPDATE_TARGET_MAPPINGS. took: 12ms.
[00:28:19]             │ info [o.e.t.LoggingTaskListener] [node-01] 27271 finished with response BulkByScrollResponse[took=17.4ms,timed_out=false,sliceId=null,updated=1,created=0,deleted=0,batches=1,versionConflicts=0,noops=0,retries=0,throttledUntil=0s,bulk_failures=[],search_failures=[]]
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.444+00:00][INFO ][savedobjects-service] [.kibana] UPDATE_TARGET_MAPPINGS -> UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK. took: 45ms.
[00:28:19]             │ info [o.e.t.LoggingTaskListener] [node-01] 27302 finished with response BulkByScrollResponse[took=37.7ms,timed_out=false,sliceId=null,updated=47,created=0,deleted=0,batches=1,versionConflicts=0,noops=0,retries=0,throttledUntil=0s,bulk_failures=[],search_failures=[]]
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.486+00:00][INFO ][savedobjects-service] [.kibana_task_manager] UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK -> DONE. took: 103ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.486+00:00][INFO ][savedobjects-service] [.kibana_task_manager] Migration completed after 138ms
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.548+00:00][INFO ][savedobjects-service] [.kibana] UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK -> DONE. took: 104ms.
[00:28:19]             │ proc [kibana] [2021-10-13T11:26:57.548+00:00][INFO ][savedobjects-service] [.kibana] Migration completed after 204ms
[00:28:19]             │ debg [test/functional/fixtures/es_archiver/index_pattern_without_timefield] Migrated Kibana index after loading Kibana data
[00:28:19]             │ debg [test/functional/fixtures/es_archiver/index_pattern_without_timefield] Ensured that default space exists in .kibana
[00:28:19]             │ debg replacing kibana config doc: {"defaultIndex":"without-timefield","timepicker:timeDefaults":"{  \"from\": \"2019-01-18T19:37:13.000Z\",  \"to\": \"now\"}"}
[00:28:20]             │ debg navigating to discover url: http://localhost:61111/app/discover#/
[00:28:20]             │ debg navigate to: http://localhost:61111/app/discover#/
[00:28:20]             │ debg browser[INFO] http://localhost:61111/app/discover?_t=1634124418562#/ 281 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:28:20]             │
[00:28:20]             │ debg browser[INFO] http://localhost:61111/bootstrap.js 41:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:28:20]             │ debg ... sleep(700) start
[00:28:21]             │ debg ... sleep(700) end
[00:28:21]             │ debg returned from get, calling refresh
[00:28:22]             │ debg browser[INFO] http://localhost:61111/app/discover?_t=1634124418562#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:'2019-01-18T19:37:13.000Z',to:now))&_a=(columns:!(),filters:!(),index:without-timefield,interval:auto,query:(language:kuery,query:''),sort:!()) 281 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:28:22]             │
[00:28:22]             │ debg browser[INFO] http://localhost:61111/bootstrap.js 41:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:28:22]             │ debg currentUrl = http://localhost:61111/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:%272019-01-18T19:37:13.000Z%27,to:now))&_a=(columns:!(),filters:!(),index:without-timefield,interval:auto,query:(language:kuery,query:%27%27),sort:!())
[00:28:22]             │          appUrl = http://localhost:61111/app/discover#/
[00:28:22]             │ debg TestSubjects.find(kibanaChrome)
[00:28:22]             │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:28:22]             │ debg ... sleep(501) start
[00:28:23]             │ debg ... sleep(501) end
[00:28:23]             │ debg in navigateTo url = http://localhost:61111/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:%272019-01-18T19:37:13.000Z%27,to:now))&_a=(columns:!(),filters:!(),index:without-timefield,interval:auto,query:(language:kuery,query:%27%27),sort:!())
[00:28:23]           └-> should not display a timepicker
[00:28:23]             └-> "before each" hook: global before each for "should not display a timepicker"
[00:28:23]             │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:28:23]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=2500
[00:28:25]             │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerToggleQuickMenuButton"] is not displayed
[00:28:26]             └- ✓ pass  (3.0s) "discover app indexpattern without timefield should not display a timepicker"
[00:28:26]           └-> should adapt sidebar fields when switching
[00:28:26]             └-> "before each" hook: global before each for "should adapt sidebar fields when switching"
[00:28:26]             │ debg TestSubjects.click(indexPattern-switch-link)
[00:28:26]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:26]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:26]             │ debg Find.setValue('[data-test-subj="indexPattern-switcher"] input', 'with-timefield')
[00:28:26]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] input') with timeout=10000
[00:28:26]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switcher"] [title="with-timefield"]') with timeout=10000
[00:28:26]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] [title="with-timefield"]') with timeout=10000
[00:28:26]             │ debg isGlobalLoadingIndicatorVisible
[00:28:26]             │ debg TestSubjects.exists(globalLoadingIndicator)
[00:28:26]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:28:28]             │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:28:28]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:28:28]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:28:28]             │ debg TestSubjects.exists(field-@timestamp)
[00:28:28]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="field-@timestamp"]') with timeout=2500
[00:28:28]             │ debg TestSubjects.click(indexPattern-switch-link)
[00:28:28]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:28]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:29]             │ debg Find.setValue('[data-test-subj="indexPattern-switcher"] input', 'without-timefield')
[00:28:29]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] input') with timeout=10000
[00:28:29]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switcher"] [title="without-timefield"]') with timeout=10000
[00:28:29]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] [title="without-timefield"]') with timeout=10000
[00:28:29]             │ debg isGlobalLoadingIndicatorVisible
[00:28:29]             │ debg TestSubjects.exists(globalLoadingIndicator)
[00:28:29]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:28:30]             │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:28:31]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:28:31]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:28:31]             │ debg Find.waitForAttributeToChange('[data-test-subj="discoverDocTable"]', 'data-render-complete', 'true')
[00:28:31]             │ debg Waiting up to 20000ms for data-render-complete to equal "true"...
[00:28:31]             │ debg Find.findByCssSelector('[data-test-subj="discoverDocTable"]') with timeout=10000
[00:28:31]             │ debg TestSubjects.exists(field-@timestamp)
[00:28:31]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="field-@timestamp"]') with timeout=2500
[00:28:34]             │ debg --- retry.tryForTime error: [data-test-subj="field-@timestamp"] is not displayed
[00:28:34]             └- ✓ pass  (8.3s) "discover app indexpattern without timefield should adapt sidebar fields when switching"
[00:28:34]           └-> should display a timepicker after switching to an index pattern with timefield
[00:28:34]             └-> "before each" hook: global before each for "should display a timepicker after switching to an index pattern with timefield"
[00:28:34]             │ debg TestSubjects.click(indexPattern-switch-link)
[00:28:34]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:34]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:34]             │ debg Find.setValue('[data-test-subj="indexPattern-switcher"] input', 'with-timefield')
[00:28:34]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] input') with timeout=10000
[00:28:34]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switcher"] [title="with-timefield"]') with timeout=10000
[00:28:34]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] [title="with-timefield"]') with timeout=10000
[00:28:35]             │ debg isGlobalLoadingIndicatorVisible
[00:28:35]             │ debg TestSubjects.exists(globalLoadingIndicator)
[00:28:35]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:28:36]             │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:28:37]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:28:37]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:28:37]             │ debg Find.waitForAttributeToChange('[data-test-subj="discoverDocTable"]', 'data-render-complete', 'true')
[00:28:37]             │ debg Waiting up to 20000ms for data-render-complete to equal "true"...
[00:28:37]             │ debg Find.findByCssSelector('[data-test-subj="discoverDocTable"]') with timeout=10000
[00:28:37]             │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:28:37]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=2500
[00:28:37]             └- ✓ pass  (2.6s) "discover app indexpattern without timefield should display a timepicker after switching to an index pattern with timefield"
[00:28:37]           └-> should switch between with and without timefield using the browser back button
[00:28:37]             └-> "before each" hook: global before each for "should switch between with and without timefield using the browser back button"
[00:28:37]             │ debg TestSubjects.click(indexPattern-switch-link)
[00:28:37]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:37]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:37]             │ debg Find.setValue('[data-test-subj="indexPattern-switcher"] input', 'without-timefield')
[00:28:37]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] input') with timeout=10000
[00:28:37]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switcher"] [title="without-timefield"]') with timeout=10000
[00:28:37]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] [title="without-timefield"]') with timeout=10000
[00:28:37]             │ debg isGlobalLoadingIndicatorVisible
[00:28:37]             │ debg TestSubjects.exists(globalLoadingIndicator)
[00:28:37]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:28:39]             │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:28:39]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:28:39]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:28:39]             │ debg Find.waitForAttributeToChange('[data-test-subj="discoverDocTable"]', 'data-render-complete', 'true')
[00:28:39]             │ debg Waiting up to 20000ms for data-render-complete to equal "true"...
[00:28:39]             │ debg Find.findByCssSelector('[data-test-subj="discoverDocTable"]') with timeout=10000
[00:28:39]             │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:28:39]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=2500
[00:28:42]             │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerToggleQuickMenuButton"] is not displayed
[00:28:42]             │ debg TestSubjects.click(indexPattern-switch-link)
[00:28:42]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:42]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:42]             │ debg Find.setValue('[data-test-subj="indexPattern-switcher"] input', 'with-timefield')
[00:28:42]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] input') with timeout=10000
[00:28:43]             │ debg Find.clickByCssSelector('[data-test-subj="indexPattern-switcher"] [title="with-timefield"]') with timeout=10000
[00:28:43]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switcher"] [title="with-timefield"]') with timeout=10000
[00:28:43]             │ debg isGlobalLoadingIndicatorVisible
[00:28:43]             │ debg TestSubjects.exists(globalLoadingIndicator)
[00:28:43]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:28:44]             │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:28:45]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:28:45]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:28:45]             │ debg Find.waitForAttributeToChange('[data-test-subj="discoverDocTable"]', 'data-render-complete', 'true')
[00:28:45]             │ debg Waiting up to 20000ms for data-render-complete to equal "true"...
[00:28:45]             │ debg Find.findByCssSelector('[data-test-subj="discoverDocTable"]') with timeout=10000
[00:28:45]             │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:28:45]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=2500
[00:28:45]             │ debg Find.waitForAttributeToChange('[data-test-subj="discoverDocTable"]', 'data-render-complete', 'true')
[00:28:45]             │ debg Waiting up to 20000ms for data-render-complete to equal "true"...
[00:28:45]             │ debg Find.findByCssSelector('[data-test-subj="discoverDocTable"]') with timeout=10000
[00:28:45]             │ debg Waiting up to 5000ms for index pattern to have been switched back to "without-timefield"...
[00:28:45]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:45]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:45]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:45]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:45]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:45]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:46]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:46]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:46]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:47]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:47]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:47]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:47]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:47]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:47]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:48]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:48]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:48]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:48]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:48]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:48]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:49]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:49]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:49]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:49]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:49]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:49]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:50]             │ debg TestSubjects.getVisibleText(indexPattern-switch-link)
[00:28:50]             │ debg TestSubjects.find(indexPattern-switch-link)
[00:28:50]             │ debg Find.findByCssSelector('[data-test-subj="indexPattern-switch-link"]') with timeout=10000
[00:28:50]             │ info Taking screenshot "/dev/shm/workspace/parallel/11/kibana/test/functional/screenshots/failure/discover app indexpattern without timefield should switch between with and without timefield using the browser back button.png"
[00:28:50]             │ info Current URL is: http://localhost:61111/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:%272019-01-18T19:37:13.000Z%27,to:now))&_a=(columns:!(),filters:!(),index:without-timefield,interval:auto,query:(language:kuery,query:%27%27),sort:!())
[00:28:50]             │ info Saving page source to: /dev/shm/workspace/parallel/11/kibana/test/functional/failure_debug/html/discover app indexpattern without timefield should switch between with and without timefield using the browser back button.html
[00:28:50]             └- ✖ fail: discover app indexpattern without timefield should switch between with and without timefield using the browser back button
[00:28:50]             │      Error: timed out waiting for index pattern to have been switched back to "without-timefield"
[00:28:50]             │       at onFailure (test/common/services/retry/retry_for_truthy.ts:39:13)
[00:28:50]             │       at retryForSuccess (test/common/services/retry/retry_for_success.ts:59:13)
[00:28:50]             │       at retryForTruthy (test/common/services/retry/retry_for_truthy.ts:27:3)
[00:28:50]             │       at RetryService.waitForWithTimeout (test/common/services/retry/retry.ts:45:5)
[00:28:50]             │       at Context.<anonymous> (test/functional/apps/discover/_indexpattern_without_timefield.ts:80:7)
[00:28:50]             │       at Object.apply (node_modules/@kbn/test/target_node/functional_test_runner/lib/mocha/wrap_function.js:87:16)
[00:28:50]             │ 
[00:28:50]             │ 

Stack Trace

Error: timed out waiting for index pattern to have been switched back to "without-timefield"
    at onFailure (test/common/services/retry/retry_for_truthy.ts:39:13)
    at retryForSuccess (test/common/services/retry/retry_for_success.ts:59:13)
    at retryForTruthy (test/common/services/retry/retry_for_truthy.ts:27:3)
    at RetryService.waitForWithTimeout (test/common/services/retry/retry.ts:45:5)
    at Context.<anonymous> (test/functional/apps/discover/_indexpattern_without_timefield.ts:80:7)
    at Object.apply (node_modules/@kbn/test/target_node/functional_test_runner/lib/mocha/wrap_function.js:87:16)

Metrics [docs]

✅ unchanged

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@jloleysens jloleysens merged commit 45e07af into elastic:master Oct 13, 2021
@jloleysens jloleysens deleted the reporting/add-new-data-render-error-attribute branch October 13, 2021 12:55
jloleysens added a commit to jloleysens/kibana that referenced this pull request Oct 13, 2021
* added new data-render-error attribute, read it and store it on job object

* added data-render-error to the example app

* added jest test

* address pr feedback

- make renderErrors optional in interfaces
- create separate selectors for data render error selector/attr
- Tidy up mergeMap behaviour

* fix observable.test.ts snapshots and browser driver mock

* updated jest snapshots

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
jloleysens added a commit to jloleysens/kibana that referenced this pull request Oct 13, 2021
…ide-users-to-saving-ux

* 'master' of github.com:elastic/kibana: (133 commits)
  [DOCS] Indicate reports are a subscription feature (elastic#114653)
  Update namespace for indices (elastic#114612)
  [DOCS] Adds Logstash pipeline settings (elastic#114648)
  Bump EPR snapshot version used for tests (elastic#114529)
  [Security Solution] [Endpoint] Fleet summary card adjustments (elastic#114291)
  skip flaky suite (elastic#68400)
  [Visualizations] fix usage of optional dependencies (elastic#114286)
  [Security Solution] [Detections] Improves custom query rule upgrade test (elastic#114454)
  [fleet] Add Integration Preference selector (elastic#114432)
  [Reporting] Add new `data-render-error` attribute (elastic#114472)
  Replace EuiCodeEditor with CodeEditor in app-services code (elastic#114316)
  [data views] add getDefaultDataView method  (elastic#113891)
  [Security Solution] [Endpoint] Event filters uses the new card design (elastic#114126)
  [fleet] Tweak Header UI (elastic#114704)
  [APM] Filter on tx metrics for instance stats (elastic#114758)
  [APM] Fix typo in linting docs (elastic#114764)
  [Discover] Removing SavedObject usage for savedSearch (elastic#112983)
  [Fleet] Add Integration Policy Page Improvements (elastic#114556)
  [Lens] Keep the custom label when transitioning to/from Formula (elastic#114270)
  [Security Solution][Endpoint] Host Isolation API changes (elastic#113621)
  ...
jloleysens added a commit that referenced this pull request Oct 13, 2021
* added new data-render-error attribute, read it and store it on job object

* added data-render-error to the example app

* added jest test

* address pr feedback

- make renderErrors optional in interfaces
- create separate selectors for data render error selector/attr
- Tidy up mergeMap behaviour

* fix observable.test.ts snapshots and browser driver mock

* updated jest snapshots

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
artem-shelkovnikov pushed a commit to artem-shelkovnikov/kibana that referenced this pull request Oct 20, 2021
* added new data-render-error attribute, read it and store it on job object

* added data-render-error to the example app

* added jest test

* address pr feedback

- make renderErrors optional in interfaces
- create separate selectors for data render error selector/attr
- Tidy up mergeMap behaviour

* fix observable.test.ts snapshots and browser driver mock

* updated jest snapshots

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
(Deprecated) Feature:Reporting Use Reporting:Screenshot, Reporting:CSV, or Reporting:Framework instead release_note:skip Skip the PR/issue when compiling release notes v7.16.0 v8.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants