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

[Curation] Add Result Manually flyout/search #94887

Merged
merged 6 commits into from
Mar 18, 2021

Conversation

cee-chen
Copy link
Contributor

@cee-chen cee-chen commented Mar 18, 2021

Summary

The final Curation feature PR! 🎉 This adds in the 'Add result manually' functionality. This was previously a separate page in the standalone UI and is moving to a flyout for improved UX.

Screencaps

screencap

QA

  • Promoted documents
    • Click the Add Result Manually button, confirm the flyout appears
    • Promote a non-promoted document
    • Confirm the star icon is now filled and indicates a demote action (via title hover)
    • Close the flyout and confirm the document now appears in the promoted documents section
    • Re-open the flyout and demote the document. Confirm the icon changes again and the document has been removed from the section
  • Hidden documents
    • Click the Add Result Manually button, confirm the flyout appears
    • Hide a non-hidden document (should have a red close eye icon)
    • Confirm the eye icon is now blue and open and indicates a show action (via title hover)
    • Close the flyout and confirm the document now appears in the hidden documents section
    • Re-open the flyout and show the document. Confirm the icon changes again and the document has been removed from the section

Checklist

- not really sure which API endpoint to use, hedging my bets
- fairly simple, mostly concerned with flyout behavior & search query
- could likely be reused (or replaced with??) query tester logic in the future
@cee-chen cee-chen added Feature:Plugins release_note:skip Skip the PR/issue when compiling release notes v7.13.0 auto-backport Deprecated - use backport:version if exact versions are needed labels Mar 18, 2021
@cee-chen cee-chen requested a review from a team March 18, 2021 04:13

router.get(
{
path: '/api/app_search/engines/{engineName}/curation_search',
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have no idea if this is a good API route name, sorry y'all 😬 Def feel free to give suggestions, I was worried curations/search made it seem like you're searching for curations rather than searching for documents 😕

onSearch({ results }: { results: Result[] }): { results: Result[] };
}

export const AddResultLogic = kea<MakeLogicType<AddResultValues, AddResultActions>>({
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This new logic file is pretty simple - I'm thinking we could reuse it for the query tester flyout which is super similar, or potentially just straight up convert the AddResultFlyout into the QueryTesterFlyout (just passing custom actions)


expect(http.get).toHaveBeenCalledWith(
'/api/app_search/engines/some-engine/curation_search',
{ query: { query: 'hello world' } }
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This made me double take initially but it's legit lol. The first query is the payload format our server wants, and the 2nd query is param key we use for searching

Comment on lines +86 to +94
it('sets searchResults & dataLoading to false', () => {
mount({ searchResults: [], dataLoading: true });

AddResultLogic.actions.onSearch(MOCK_SEARCH_RESPONSE);

expect(AddResultLogic.values).toEqual({
...DEFAULT_VALUES,
searchResults: MOCK_SEARCH_RESPONSE.results,
dataLoading: false,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Curse you @JasonStoltz, I really want the helper you described in #94769 (comment) now 😆

searchQuery: [
'',
{
search: (_, { query }) => query,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh yeah, one more question for y'all!! I was wondering about this when I was recording the screen capture for the PR, but should I be resetting the search query back to '' whenever the flyout opens/closes? 🤔 Was it weird that the search input persisted...? Or was it cool?... maaybe??...

Copy link
Member

Choose a reason for hiding this comment

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

I think as a user I typically expect state to reset whenever I close a modal, fwiw.

You know, as I started thinking about this, I saw the following and had a thought...

{isFlyoutOpen && <AddResultFlyout />}

I'm used to modals having their state reset automatically whenever they're closed because they are unmounted whenever isFlyoutOpen is false.

That's because the modal state is usually local to the modal component. I guess because the AddResultLogic state is higher in the component tree than AddResultFlyout, it never unmounts.

I don't have an opinion about whether or not this would be better or worse, but you could lift the isFlyoutOpen state up a level and push the logic down to be contained in AddResultFlyout.

That's just an open ended thought to consider.

Copy link
Contributor Author

@cee-chen cee-chen Mar 18, 2021

Choose a reason for hiding this comment

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

👍 to clearing state on modal open/close!

I guess because the AddResultLogic state is higher in the component tree than AddResultFlyout, it never unmounts

FWIW even if we removed {isFlyoutOpen && <AddResultFlyout />} from Curation.tsx, state would still be preserved on close. This is because we're calling const { flyoutOpen } = useActions(AddResultLogic) in PromotedDocuments & HiddenDocuments, and AddResultLogic being present in those views preserves the logic file and keeps it from unmounting. 🤷

EDIT: I think I misread your comment about changing where isFlyoutOpen is located, sorry 🤔 Not totally sure if that change is better or worse either personally. I think I like it where it is for unit testing - just IMO, it's slightly nicer to check conditionally for the presence of AddResultFlyout rather than checking for an empty render. And it prevents an extra level of indenting/nesting in AddResultFlyout, which is kinda nicer too. Not a big deal either way though like you said

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Commit that resets the search query: 6c559ac

@JasonStoltz JasonStoltz self-assigned this Mar 18, 2021
Copy link
Member

@JasonStoltz JasonStoltz left a comment

Choose a reason for hiding this comment

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

Great work, as always


import { AddResultLogic } from './';

describe('AddResultLogic', () => {
Copy link
Member

Choose a reason for hiding this comment

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

Good call putting this in it's own logic

searchQuery: [
'',
{
search: (_, { query }) => query,
Copy link
Member

Choose a reason for hiding this comment

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

I think as a user I typically expect state to reset whenever I close a modal, fwiw.

You know, as I started thinking about this, I saw the following and had a thought...

{isFlyoutOpen && <AddResultFlyout />}

I'm used to modals having their state reset automatically whenever they're closed because they are unmounted whenever isFlyoutOpen is false.

That's because the modal state is usually local to the modal component. I guess because the AddResultLogic state is higher in the component tree than AddResultFlyout, it never unmounts.

I don't have an opinion about whether or not this would be better or worse, but you could lift the isFlyoutOpen state up a level and push the logic down to be contained in AddResultFlyout.

That's just an open ended thought to consider.

@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky


Test Failures

Kibana Pipeline / general / Firefox XPack UI Functional Tests.x-pack/test/functional/apps/grok_debugger/grok_debugger·js.logstash grok debugger app "before all" hook in "grok debugger app"

Link to Jenkins

Standard Out

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

[00:00:00]       │
[00:02:30]         └-: logstash
[00:02:30]           └-> "before all" hook in "logstash"
[00:02:30]           └-: grok debugger app
[00:02:30]             └-> "before all" hook in "grok debugger app"
[00:02:30]             └-> "before all" hook in "grok debugger app"
[00:02:30]               │ info [empty_kibana] Loading "mappings.json"
[00:02:30]               │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_task_manager_8.0.0_001/ZkPIvifpQcuddezQZgHvvg] deleting index
[00:02:30]               │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_8.0.0_001/9WYITVYPT_GXtmOSoGC4sA] deleting index
[00:02:30]               │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_pre6.5.0_001/lhMi1O3cQjKQOL1hyVseXQ] deleting index
[00:02:30]               │ info [empty_kibana] Deleted existing index ".kibana_8.0.0_001"
[00:02:30]               │ info [empty_kibana] Deleted existing index ".kibana_task_manager_8.0.0_001"
[00:02:30]               │ info [empty_kibana] Deleted existing index ".kibana_pre6.5.0_001"
[00:02:30]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana] creating index, cause [api], templates [], shards [1]/[1]
[00:02:30]               │ info [empty_kibana] Created index ".kibana"
[00:02:30]               │ debg [empty_kibana] ".kibana" settings {"index":{"number_of_replicas":"1","number_of_shards":"1"}}
[00:02:30]               │ debg Migrating saved objects
[00:02:30]               │ proc [kibana]   log   [19:15:00.150] [info][savedobjects-service] [.kibana_task_manager] INIT -> CREATE_NEW_TARGET
[00:02:30]               │ proc [kibana]   log   [19:15:00.158] [info][savedobjects-service] [.kibana] INIT -> LEGACY_SET_WRITE_BLOCK
[00:02:30]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_task_manager_8.0.0_001] creating index, cause [api], templates [], shards [1]/[1]
[00:02:30]               │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] updating number_of_replicas to [0] for indices [.kibana_task_manager_8.0.0_001]
[00:02:30]               │ info [o.e.c.m.MetadataIndexStateService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] adding block write to indices [[.kibana/ufQ8qw0qT-2_ZtZWYFy14g]]
[00:02:30]               │ info [o.e.c.m.MetadataIndexStateService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] completed adding block write to indices [.kibana]
[00:02:30]               │ proc [kibana]   log   [19:15:00.246] [info][savedobjects-service] [.kibana_task_manager] CREATE_NEW_TARGET -> MARK_VERSION_INDEX_READY
[00:02:30]               │ proc [kibana]   log   [19:15:00.270] [info][savedobjects-service] [.kibana] LEGACY_SET_WRITE_BLOCK -> LEGACY_CREATE_REINDEX_TARGET
[00:02:30]               │ proc [kibana]   log   [19:15:00.290] [info][savedobjects-service] [.kibana_task_manager] MARK_VERSION_INDEX_READY -> DONE
[00:02:30]               │ proc [kibana]   log   [19:15:00.291] [info][savedobjects-service] [.kibana_task_manager] Migration completed after 146ms
[00:02:30]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_pre6.5.0_001] creating index, cause [api], templates [], shards [1]/[1]
[00:02:30]               │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] updating number_of_replicas to [0] for indices [.kibana_pre6.5.0_001]
[00:02:31]               │ proc [kibana]   log   [19:15:00.360] [info][savedobjects-service] [.kibana] LEGACY_CREATE_REINDEX_TARGET -> LEGACY_REINDEX
[00:02:31]               │ proc [kibana]   log   [19:15:00.368] [info][savedobjects-service] [.kibana] LEGACY_REINDEX -> LEGACY_REINDEX_WAIT_FOR_TASK
[00:02:31]               │ info [o.e.t.LoggingTaskListener] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] 6898 finished with response BulkByScrollResponse[took=2.8ms,timed_out=false,sliceId=null,updated=0,created=0,deleted=0,batches=0,versionConflicts=0,noops=0,retries=0,throttledUntil=0s,bulk_failures=[],search_failures=[]]
[00:02:31]               │ proc [kibana]   log   [19:15:00.375] [info][savedobjects-service] [.kibana] LEGACY_REINDEX_WAIT_FOR_TASK -> LEGACY_DELETE
[00:02:31]               │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana/ufQ8qw0qT-2_ZtZWYFy14g] deleting index
[00:02:31]               │ proc [kibana]   log   [19:15:00.422] [info][savedobjects-service] [.kibana] LEGACY_DELETE -> SET_SOURCE_WRITE_BLOCK
[00:02:31]               │ info [o.e.c.m.MetadataIndexStateService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] adding block write to indices [[.kibana_pre6.5.0_001/ay6AiB0VSHSj9UkLIh3ipg]]
[00:02:31]               │ info [o.e.c.m.MetadataIndexStateService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] completed adding block write to indices [.kibana_pre6.5.0_001]
[00:02:31]               │ proc [kibana]   log   [19:15:00.471] [info][savedobjects-service] [.kibana] SET_SOURCE_WRITE_BLOCK -> CREATE_REINDEX_TEMP
[00:02:31]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_8.0.0_reindex_temp] creating index, cause [api], templates [], shards [1]/[1]
[00:02:31]               │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] updating number_of_replicas to [0] for indices [.kibana_8.0.0_reindex_temp]
[00:02:31]               │ proc [kibana]   log   [19:15:00.544] [info][savedobjects-service] [.kibana] CREATE_REINDEX_TEMP -> REINDEX_SOURCE_TO_TEMP
[00:02:31]               │ info [o.e.t.LoggingTaskListener] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] 6930 finished with response BulkByScrollResponse[took=2.5ms,timed_out=false,sliceId=null,updated=0,created=0,deleted=0,batches=0,versionConflicts=0,noops=0,retries=0,throttledUntil=0s,bulk_failures=[],search_failures=[]]
[00:02:31]               │ proc [kibana]   log   [19:15:00.552] [info][savedobjects-service] [.kibana] REINDEX_SOURCE_TO_TEMP -> REINDEX_SOURCE_TO_TEMP_WAIT_FOR_TASK
[00:02:31]               │ proc [kibana]   log   [19:15:00.562] [info][savedobjects-service] [.kibana] REINDEX_SOURCE_TO_TEMP_WAIT_FOR_TASK -> SET_TEMP_WRITE_BLOCK
[00:02:31]               │ info [o.e.c.m.MetadataIndexStateService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] adding block write to indices [[.kibana_8.0.0_reindex_temp/JSA9pk30QCuTBKrkIJyaoA]]
[00:02:31]               │ info [o.e.c.m.MetadataIndexStateService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] completed adding block write to indices [.kibana_8.0.0_reindex_temp]
[00:02:31]               │ proc [kibana]   log   [19:15:00.618] [info][savedobjects-service] [.kibana] SET_TEMP_WRITE_BLOCK -> CLONE_TEMP_TO_TARGET
[00:02:31]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] applying create index request using existing index [.kibana_8.0.0_reindex_temp] metadata
[00:02:31]               │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_8.0.0_001] creating index, cause [clone_index], templates [], shards [1]/[1]
[00:02:31]               │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] updating number_of_replicas to [0] for indices [.kibana_8.0.0_001]
[00:02:31]               │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_8.0.0_001/FHMNmJlHS0m5YEKXbfQLEw] create_mapping
[00:02:31]               │ proc [kibana]   log   [19:15:00.742] [info][savedobjects-service] [.kibana] CLONE_TEMP_TO_TARGET -> OUTDATED_DOCUMENTS_SEARCH
[00:02:31]               │ proc [kibana]   log   [19:15:00.754] [info][savedobjects-service] [.kibana] OUTDATED_DOCUMENTS_SEARCH -> UPDATE_TARGET_MAPPINGS
[00:02:31]               │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_8.0.0_001/FHMNmJlHS0m5YEKXbfQLEw] update_mapping [_doc]
[00:02:31]               │ info [o.e.t.LoggingTaskListener] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] 6966 finished with response BulkByScrollResponse[took=2.4ms,timed_out=false,sliceId=null,updated=0,created=0,deleted=0,batches=0,versionConflicts=0,noops=0,retries=0,throttledUntil=0s,bulk_failures=[],search_failures=[]]
[00:02:31]               │ proc [kibana]   log   [19:15:00.824] [info][savedobjects-service] [.kibana] UPDATE_TARGET_MAPPINGS -> UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK
[00:02:31]               │ proc [kibana]   log   [19:15:00.832] [info][savedobjects-service] [.kibana] UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK -> MARK_VERSION_INDEX_READY
[00:02:31]               │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_8.0.0_reindex_temp/JSA9pk30QCuTBKrkIJyaoA] deleting index
[00:02:31]               │ proc [kibana]   log   [19:15:00.882] [info][savedobjects-service] [.kibana] MARK_VERSION_INDEX_READY -> DONE
[00:02:31]               │ proc [kibana]   log   [19:15:00.882] [info][savedobjects-service] [.kibana] Migration completed after 739ms
[00:02:31]               │ debg [empty_kibana] Migrated Kibana index after loading Kibana data
[00:02:31]               │ debg [empty_kibana] Ensured that default space exists in .kibana
[00:02:31]               │ debg applying update to kibana config: {"accessibility:disableAnimations":true,"dateFormat:tz":"UTC","visualization:visualize:legacyChartsLibrary":true}
[00:02:31]               │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-16-tests-xxl-1616092437690325475] [.kibana_8.0.0_001/FHMNmJlHS0m5YEKXbfQLEw] update_mapping [_doc]
[00:02:33]               │ debg navigating to grokDebugger url: http://localhost:61241/app/dev_tools#/grokdebugger
[00:02:33]               │ debg navigate to: http://localhost:61241/app/dev_tools#/grokdebugger
[00:02:33]               │ proc [kibana]   log   [19:15:02.734] [error][data][data][indexPatterns][plugins] ResponseError: security_exception
[00:02:33]               │ proc [kibana]     at onBody (/dev/shm/workspace/kibana-build-xpack-24/node_modules/@elastic/elasticsearch/lib/Transport.js:333:23)
[00:02:33]               │ proc [kibana]     at IncomingMessage.onEnd (/dev/shm/workspace/kibana-build-xpack-24/node_modules/@elastic/elasticsearch/lib/Transport.js:260:11)
[00:02:33]               │ proc [kibana]     at IncomingMessage.emit (events.js:327:22)
[00:02:33]               │ proc [kibana]     at endReadableNT (internal/streams/readable.js:1327:12)
[00:02:33]               │ proc [kibana]     at processTicksAndRejections (internal/process/task_queues.js:80:21) {
[00:02:33]               │ proc [kibana]   meta: {
[00:02:33]               │ proc [kibana]     body: { error: [Object], status: 401 },
[00:02:33]               │ proc [kibana]     statusCode: 401,
[00:02:33]               │ proc [kibana]     headers: {
[00:02:33]               │ proc [kibana]       'x-opaque-id': 'ee85f04b-3760-40b8-a9dc-e98a9390af08',
[00:02:33]               │ proc [kibana]       'www-authenticate': 'Basic realm="security" charset="UTF-8", ApiKey',
[00:02:33]               │ proc [kibana]       'content-type': 'application/json;charset=utf-8',
[00:02:33]               │ proc [kibana]       'content-length': '463'
[00:02:33]               │ proc [kibana]     },
[00:02:33]               │ proc [kibana]     meta: {
[00:02:33]               │ proc [kibana]       context: null,
[00:02:33]               │ proc [kibana]       request: [Object],
[00:02:33]               │ proc [kibana]       name: 'elasticsearch-js',
[00:02:33]               │ proc [kibana]       connection: [Object],
[00:02:33]               │ proc [kibana]       attempts: 0,
[00:02:33]               │ proc [kibana]       aborted: false
[00:02:33]               │ proc [kibana]     }
[00:02:33]               │ proc [kibana]   },
[00:02:33]               │ proc [kibana]   isBoom: true,
[00:02:33]               │ proc [kibana]   isServer: true,
[00:02:33]               │ proc [kibana]   data: null,
[00:02:33]               │ proc [kibana]   output: {
[00:02:33]               │ proc [kibana]     statusCode: 500,
[00:02:33]               │ proc [kibana]     payload: {
[00:02:33]               │ proc [kibana]       statusCode: 500,
[00:02:33]               │ proc [kibana]       error: 'Internal Server Error',
[00:02:33]               │ proc [kibana]       message: 'An internal server error occurred'
[00:02:33]               │ proc [kibana]     },
[00:02:33]               │ proc [kibana]     headers: {}
[00:02:33]               │ proc [kibana]   },
[00:02:33]               │ proc [kibana]   [Symbol(SavedObjectsClientErrorCode)]: 'SavedObjectsClient/generalError'
[00:02:33]               │ proc [kibana] }
[00:02:33]               │ debg browser[log] "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:33]               │ debg ... sleep(700) start
[00:02:34]               │ debg ... sleep(700) end
[00:02:34]               │ debg returned from get, calling refresh
[00:02:34]               │ proc [kibana]   log   [19:15:04.111] [error][data][data][indexPatterns][plugins] ResponseError: security_exception
[00:02:34]               │ proc [kibana]     at onBody (/dev/shm/workspace/kibana-build-xpack-24/node_modules/@elastic/elasticsearch/lib/Transport.js:333:23)
[00:02:34]               │ proc [kibana]     at IncomingMessage.onEnd (/dev/shm/workspace/kibana-build-xpack-24/node_modules/@elastic/elasticsearch/lib/Transport.js:260:11)
[00:02:34]               │ proc [kibana]     at IncomingMessage.emit (events.js:327:22)
[00:02:34]               │ proc [kibana]     at endReadableNT (internal/streams/readable.js:1327:12)
[00:02:34]               │ proc [kibana]     at processTicksAndRejections (internal/process/task_queues.js:80:21) {
[00:02:34]               │ proc [kibana]   meta: {
[00:02:34]               │ proc [kibana]     body: { error: [Object], status: 401 },
[00:02:34]               │ proc [kibana]     statusCode: 401,
[00:02:34]               │ proc [kibana]     headers: {
[00:02:34]               │ proc [kibana]       'x-opaque-id': 'a7b2836f-b9d9-4395-9b0c-8a2aa9e6874f',
[00:02:34]               │ proc [kibana]       'www-authenticate': 'Basic realm="security" charset="UTF-8", ApiKey',
[00:02:34]               │ proc [kibana]       'content-type': 'application/json;charset=utf-8',
[00:02:34]               │ proc [kibana]       'content-length': '463'
[00:02:34]               │ proc [kibana]     },
[00:02:34]               │ proc [kibana]     meta: {
[00:02:34]               │ proc [kibana]       context: null,
[00:02:34]               │ proc [kibana]       request: [Object],
[00:02:34]               │ proc [kibana]       name: 'elasticsearch-js',
[00:02:34]               │ proc [kibana]       connection: [Object],
[00:02:34]               │ proc [kibana]       attempts: 0,
[00:02:34]               │ proc [kibana]       aborted: false
[00:02:34]               │ proc [kibana]     }
[00:02:34]               │ proc [kibana]   },
[00:02:34]               │ proc [kibana]   isBoom: true,
[00:02:34]               │ proc [kibana]   isServer: true,
[00:02:34]               │ proc [kibana]   data: null,
[00:02:34]               │ proc [kibana]   output: {
[00:02:34]               │ proc [kibana]     statusCode: 500,
[00:02:34]               │ proc [kibana]     payload: {
[00:02:34]               │ proc [kibana]       statusCode: 500,
[00:02:34]               │ proc [kibana]       error: 'Internal Server Error',
[00:02:34]               │ proc [kibana]       message: 'An internal server error occurred'
[00:02:34]               │ proc [kibana]     },
[00:02:34]               │ proc [kibana]     headers: {}
[00:02:34]               │ proc [kibana]   },
[00:02:34]               │ proc [kibana]   [Symbol(SavedObjectsClientErrorCode)]: 'SavedObjectsClient/generalError'
[00:02:34]               │ proc [kibana] }
[00:02:35]               │ debg browser[log] "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:35]               │ debg currentUrl = http://localhost:61241/login?next=%2Fapp%2Fdev_tools%3F_t%3D1616094902703#/grokdebugger
[00:02:35]               │          appUrl = http://localhost:61241/app/dev_tools#/grokdebugger
[00:02:35]               │ debg TestSubjects.find(kibanaChrome)
[00:02:35]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:02:36]               │ debg Found login page
[00:02:36]               │ debg TestSubjects.setValue(loginUsername, test_user)
[00:02:36]               │ debg TestSubjects.click(loginUsername)
[00:02:36]               │ debg Find.clickByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:02:36]               │ debg Find.findByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:02:36]               │ debg browser[log] "Detected an unhandled Promise rejection.
[00:02:36]               │      Error: Unauthorized"
[00:02:36]               │ proc [kibana]   log   [19:15:06.218] [error][data][data][indexPatterns][plugins] ResponseError: security_exception
[00:02:36]               │ proc [kibana]     at onBody (/dev/shm/workspace/kibana-build-xpack-24/node_modules/@elastic/elasticsearch/lib/Transport.js:333:23)
[00:02:36]               │ proc [kibana]     at IncomingMessage.onEnd (/dev/shm/workspace/kibana-build-xpack-24/node_modules/@elastic/elasticsearch/lib/Transport.js:260:11)
[00:02:36]               │ proc [kibana]     at IncomingMessage.emit (events.js:327:22)
[00:02:36]               │ proc [kibana]     at endReadableNT (internal/streams/readable.js:1327:12)
[00:02:36]               │ proc [kibana]     at processTicksAndRejections (internal/process/task_queues.js:80:21) {
[00:02:36]               │ proc [kibana]   meta: {
[00:02:36]               │ proc [kibana]     body: { error: [Object], status: 401 },
[00:02:36]               │ proc [kibana]     statusCode: 401,
[00:02:36]               │ proc [kibana]     headers: {
[00:02:36]               │ proc [kibana]       'x-opaque-id': '85edd127-0444-4ddb-8d6b-38a88781245f',
[00:02:36]               │ proc [kibana]       'www-authenticate': 'Basic realm="security" charset="UTF-8", ApiKey',
[00:02:36]               │ proc [kibana]       'content-type': 'application/json;charset=utf-8',
[00:02:36]               │ proc [kibana]       'content-length': '463'
[00:02:36]               │ proc [kibana]     },
[00:02:36]               │ proc [kibana]     meta: {
[00:02:36]               │ proc [kibana]       context: null,
[00:02:36]               │ proc [kibana]       request: [Object],
[00:02:36]               │ proc [kibana]       name: 'elasticsearch-js',
[00:02:36]               │ proc [kibana]       connection: [Object],
[00:02:36]               │ proc [kibana]       attempts: 0,
[00:02:36]               │ proc [kibana]       aborted: false
[00:02:36]               │ proc [kibana]     }
[00:02:36]               │ proc [kibana]   },
[00:02:36]               │ proc [kibana]   isBoom: true,
[00:02:36]               │ proc [kibana]   isServer: true,
[00:02:36]               │ proc [kibana]   data: null,
[00:02:36]               │ proc [kibana]   output: {
[00:02:36]               │ proc [kibana]     statusCode: 500,
[00:02:36]               │ proc [kibana]     payload: {
[00:02:36]               │ proc [kibana]       statusCode: 500,
[00:02:36]               │ proc [kibana]       error: 'Internal Server Error',
[00:02:36]               │ proc [kibana]       message: 'An internal server error occurred'
[00:02:36]               │ proc [kibana]     },
[00:02:36]               │ proc [kibana]     headers: {}
[00:02:36]               │ proc [kibana]   },
[00:02:36]               │ proc [kibana]   [Symbol(SavedObjectsClientErrorCode)]: 'SavedObjectsClient/generalError'
[00:02:36]               │ proc [kibana] }
[00:02:37]               │ debg TestSubjects.setValue(loginPassword, changeme)
[00:02:37]               │ debg TestSubjects.click(loginPassword)
[00:02:37]               │ debg Find.clickByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:02:37]               │ debg Find.findByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:02:37]               │ debg TestSubjects.click(loginSubmit)
[00:02:37]               │ debg Find.clickByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:02:37]               │ debg Find.findByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:02:37]               │ proc [kibana]   log   [19:15:06.968] [error][data][data][indexPatterns][plugins] ResponseError: security_exception
[00:02:37]               │ proc [kibana]     at onBody (/dev/shm/workspace/kibana-build-xpack-24/node_modules/@elastic/elasticsearch/lib/Transport.js:333:23)
[00:02:37]               │ proc [kibana]     at IncomingMessage.onEnd (/dev/shm/workspace/kibana-build-xpack-24/node_modules/@elastic/elasticsearch/lib/Transport.js:260:11)
[00:02:37]               │ proc [kibana]     at IncomingMessage.emit (events.js:327:22)
[00:02:37]               │ proc [kibana]     at endReadableNT (internal/streams/readable.js:1327:12)
[00:02:37]               │ proc [kibana]     at processTicksAndRejections (internal/process/task_queues.js:80:21) {
[00:02:37]               │ proc [kibana]   meta: {
[00:02:37]               │ proc [kibana]     body: { error: [Object], status: 401 },
[00:02:37]               │ proc [kibana]     statusCode: 401,
[00:02:37]               │ proc [kibana]     headers: {
[00:02:37]               │ proc [kibana]       'x-opaque-id': 'fd9745f8-ea70-4f71-800d-90f59ec80d80',
[00:02:37]               │ proc [kibana]       'www-authenticate': 'Basic realm="security" charset="UTF-8", ApiKey',
[00:02:37]               │ proc [kibana]       'content-type': 'application/json;charset=utf-8',
[00:02:37]               │ proc [kibana]       'content-length': '463'
[00:02:37]               │ proc [kibana]     },
[00:02:37]               │ proc [kibana]     meta: {
[00:02:37]               │ proc [kibana]       context: null,
[00:02:37]               │ proc [kibana]       request: [Object],
[00:02:37]               │ proc [kibana]       name: 'elasticsearch-js',
[00:02:37]               │ proc [kibana]       connection: [Object],
[00:02:37]               │ proc [kibana]       attempts: 0,
[00:02:37]               │ proc [kibana]       aborted: false
[00:02:37]               │ proc [kibana]     }
[00:02:37]               │ proc [kibana]   },
[00:02:37]               │ proc [kibana]   isBoom: true,
[00:02:37]               │ proc [kibana]   isServer: true,
[00:02:37]               │ proc [kibana]   data: null,
[00:02:37]               │ proc [kibana]   output: {
[00:02:37]               │ proc [kibana]     statusCode: 500,
[00:02:37]               │ proc [kibana]     payload: {
[00:02:37]               │ proc [kibana]       statusCode: 500,
[00:02:37]               │ proc [kibana]       error: 'Internal Server Error',
[00:02:37]               │ proc [kibana]       message: 'An internal server error occurred'
[00:02:37]               │ proc [kibana]     },
[00:02:37]               │ proc [kibana]     headers: {}
[00:02:37]               │ proc [kibana]   },
[00:02:37]               │ proc [kibana]   [Symbol(SavedObjectsClientErrorCode)]: 'SavedObjectsClient/generalError'
[00:02:37]               │ proc [kibana] }
[00:02:37]               │ proc [kibana]   log   [19:15:06.970] [info][plugins][routes][security] Logging in with provider "basic" (basic)
[00:02:37]               │ debg Find.waitForDeletedByCssSelector('.kibanaWelcomeLogo') with timeout=10000
[00:02:38]               │ debg browser[log] "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:38]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:02:39]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"] nav:not(.ng-hide)') with timeout=60000
[00:02:40]               │ debg Finished login process currentUrl = http://localhost:61241/app/dev_tools#/grokdebugger
[00:02:40]               │ debg ... sleep(501) start
[00:02:40]               │ debg browser[log] "^ A single error about an inline script not firing due to content security policy is expected!"
[00:02:40]               │ debg ... sleep(501) end
[00:02:40]               │ debg in navigateTo url = http://localhost:61241/app/dev_tools#/grokdebugger
[00:02:40]               │ debg TestSubjects.exists(statusPageContainer)
[00:02:40]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:02:43]               │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:02:44]               │ debg Waiting up to 20000ms for Grok Debugger to exist...
[00:02:44]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:02:44]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:02:46]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:02:47]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:02:47]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:02:50]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:02:51]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:02:51]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:02:53]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:02:54]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:02:54]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:02:57]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:02:58]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:02:58]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:00]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:01]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:01]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:04]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:05]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:05]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:07]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:08]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:08]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:11]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:12]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:12]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:14]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:15]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:15]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:18]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:19]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:19]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:21]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:22]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:22]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:25]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:26]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:26]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:28]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:29]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:29]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:35]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:36]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:36]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:39]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:40]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:40]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:42]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:43]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:43]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:46]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:47]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:47]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:49]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:50]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:50]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:53]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:54]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:54]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:03:56]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:03:57]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:03:57]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:00]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:01]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:01]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:03]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:04]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:04]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:07]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:08]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:08]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:10]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:11]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:11]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:14]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:15]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:15]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:18]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:19]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:19]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:21]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:22]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:22]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:25]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:26]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:26]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:28]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:29]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:29]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:32]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:33]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:33]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:35]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:36]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:36]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:39]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:40]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:40]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:42]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:43]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:43]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:46]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:47]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:47]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:49]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:50]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:50]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:53]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:54]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:54]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:04:56]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:04:57]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:04:57]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:00]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:01]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:01]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:03]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:04]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:04]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:07]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:08]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:08]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:10]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:11]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:11]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:14]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:15]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:15]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:17]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:18]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:18]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:21]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:22]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:22]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:24]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:25]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:25]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:28]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:29]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:29]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:32]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:33]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:33]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:35]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:36]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:36]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:39]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:40]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:40]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:42]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:43]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:43]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:46]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:47]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:47]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:49]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:50]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:50]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:53]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:54]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:54]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:05:56]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:05:57]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:05:57]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:00]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:01]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:01]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:03]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:04]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:04]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:07]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:08]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:08]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:10]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:11]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:11]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:14]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:15]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:15]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:17]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:18]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:18]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:21]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:22]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:22]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:24]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:25]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:25]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:28]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:29]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:29]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:31]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:32]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:32]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:35]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:36]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:36]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:38]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:39]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:39]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:42]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:43]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:43]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:46]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:47]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:47]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:49]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:50]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:50]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:53]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:54]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:54]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:06:56]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:06:57]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:06:57]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:00]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:01]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:01]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:03]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:04]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:04]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:07]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:08]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:08]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:10]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:11]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:11]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:14]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:15]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:15]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:17]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:18]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:18]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:21]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:22]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:22]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:24]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:25]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:25]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:28]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:29]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:29]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:31]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:32]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:32]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:35]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:36]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:36]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:38]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:39]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:39]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:42]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:43]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:43]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:45]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:46]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:46]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:49]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:50]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:50]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:52]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:53]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:53]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:07:56]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:07:57]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:07:57]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:00]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:08:01]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:08:01]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:03]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:08:04]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:08:04]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:07]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:08:08]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:08:08]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:10]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:08:11]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:08:11]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:14]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:08:15]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:08:15]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:17]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:08:18]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:08:18]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:21]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:08:22]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:08:22]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:24]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:08:25]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:08:25]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:28]               │ debg --- retry.tryForTime error: [data-test-subj="grokDebuggerContainer"] is not displayed
[00:08:29]               │ debg TestSubjects.exists(grokDebuggerContainer)
[00:08:29]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="grokDebuggerContainer"]') with timeout=2500
[00:08:30]               └- ✖ fail: logstash grok debugger app "before all" hook in "grok debugger app"
[00:08:30]               │      Error: Timeout of 360000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/apps/grok_debugger/grok_debugger.js)
[00:08:30]               │       at listOnTimeout (internal/timers.js:554:17)
[00:08:30]               │       at processTimers (internal/timers.js:497:7)
[00:08:30]               │ 
[00:08:30]               │ 

Stack Trace

Error: Timeout of 360000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/apps/grok_debugger/grok_debugger.js)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
enterpriseSearch 1279 1281 +2

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
enterpriseSearch 2.1MB 2.1MB +4.1KB

History

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

cc @JasonStoltz

@cee-chen cee-chen merged commit ab0f45c into elastic:master Mar 18, 2021
@cee-chen cee-chen deleted the curation-4 branch March 18, 2021 21:53
kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Mar 18, 2021
* Set up curation search server route

- not really sure which API endpoint to use, hedging my bets

* Set up AddResultLogic

- fairly simple, mostly concerned with flyout behavior & search query
- could likely be reused (or replaced with??) query tester logic in the future

* Add main AddResultFlyout component

- with custom isPromoted / isHidden logic & actions

* Update AddResultButton to open flyout

* Update Curation page to render the flyout

* PR feedback: reset search query on flyout re-open
@kibanamachine
Copy link
Contributor

💚 Backport successful

7.x / #94991

This backport PR will be merged automatically after passing CI.

kibanamachine added a commit that referenced this pull request Mar 19, 2021
* Set up curation search server route

- not really sure which API endpoint to use, hedging my bets

* Set up AddResultLogic

- fairly simple, mostly concerned with flyout behavior & search query
- could likely be reused (or replaced with??) query tester logic in the future

* Add main AddResultFlyout component

- with custom isPromoted / isHidden logic & actions

* Update AddResultButton to open flyout

* Update Curation page to render the flyout

* PR feedback: reset search query on flyout re-open

Co-authored-by: Constance <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-backport Deprecated - use backport:version if exact versions are needed Feature:Plugins release_note:skip Skip the PR/issue when compiling release notes v7.13.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants