From 70b23463ba48dd63015ee188e3585cced3d4730a Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Mon, 21 Aug 2023 14:09:25 -0700 Subject: [PATCH 01/17] Remove current URL check when navigating to Canvas --- x-pack/test/accessibility/apps/canvas.ts | 4 +-- .../functional/apps/canvas/custom_elements.ts | 4 +-- .../test/functional/apps/canvas/datasource.ts | 4 +-- .../apps/canvas/embeddables/lens.ts | 2 +- .../apps/canvas/embeddables/maps.ts | 4 +-- .../apps/canvas/embeddables/saved_search.ts | 6 ++-- .../apps/canvas/embeddables/visualization.ts | 4 +-- x-pack/test/functional/apps/canvas/reports.ts | 4 +-- .../test/functional/apps/canvas/smoke_test.js | 4 +-- .../functional/page_objects/canvas_page.ts | 28 +++++++++++++++++-- .../services/scenarios.ts | 2 +- 11 files changed, 43 insertions(+), 23 deletions(-) diff --git a/x-pack/test/accessibility/apps/canvas.ts b/x-pack/test/accessibility/apps/canvas.ts index d9508e75bdf276..231bd1c161fde5 100644 --- a/x-pack/test/accessibility/apps/canvas.ts +++ b/x-pack/test/accessibility/apps/canvas.ts @@ -12,12 +12,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const esArchiver = getService('esArchiver'); const retry = getService('retry'); - const { common } = getPageObjects(['common']); + const { canvas } = getPageObjects(['canvas']); describe('Canvas Accessibility', () => { before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/canvas/default'); - await common.navigateToApp('canvas'); + await canvas.goToListingPage(); }); it('loads workpads', async function () { diff --git a/x-pack/test/functional/apps/canvas/custom_elements.ts b/x-pack/test/functional/apps/canvas/custom_elements.ts index bf9317373b9096..065ea771179b99 100644 --- a/x-pack/test/functional/apps/canvas/custom_elements.ts +++ b/x-pack/test/functional/apps/canvas/custom_elements.ts @@ -26,11 +26,9 @@ export default function canvasCustomElementTest({ before(async () => { await kibanaServer.importExport.load(archive); - // open canvas home - await PageObjects.common.navigateToApp('canvas'); // load test workpad await PageObjects.common.navigateToApp('canvas', { - hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', + path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', }); }); diff --git a/x-pack/test/functional/apps/canvas/datasource.ts b/x-pack/test/functional/apps/canvas/datasource.ts index c1cf907bc53424..5afda1a579cd03 100644 --- a/x-pack/test/functional/apps/canvas/datasource.ts +++ b/x-pack/test/functional/apps/canvas/datasource.ts @@ -11,7 +11,7 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function canvasExpressionTest({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); - const PageObjects = getPageObjects(['canvas', 'common']); + const PageObjects = getPageObjects(['canvas']); const esArchiver = getService('esArchiver'); const kibanaServer = getService('kibanaServer'); const monacoEditor = getService('monacoEditor'); @@ -35,7 +35,7 @@ export default function canvasExpressionTest({ getService, getPageObjects }: Ftr }); // create new test workpad - await PageObjects.common.navigateToApp('canvas'); + await PageObjects.canvas.goToListingPage(); await PageObjects.canvas.createNewWorkpad(); }); diff --git a/x-pack/test/functional/apps/canvas/embeddables/lens.ts b/x-pack/test/functional/apps/canvas/embeddables/lens.ts index de7a2eb7532048..74f29283344104 100644 --- a/x-pack/test/functional/apps/canvas/embeddables/lens.ts +++ b/x-pack/test/functional/apps/canvas/embeddables/lens.ts @@ -25,7 +25,7 @@ export default function canvasLensTest({ getService, getPageObjects }: FtrProvid await kibanaServer.savedObjects.cleanStandardList(); await kibanaServer.importExport.load(archives.kbn); await kibanaServer.uiSettings.replace({ defaultIndex: 'logstash-lens' }); - await PageObjects.common.navigateToApp('canvas'); + await PageObjects.canvas.goToListingPage(); await PageObjects.canvas.createNewWorkpad(); }); diff --git a/x-pack/test/functional/apps/canvas/embeddables/maps.ts b/x-pack/test/functional/apps/canvas/embeddables/maps.ts index 1cdcb644448a82..6cf23726846f12 100644 --- a/x-pack/test/functional/apps/canvas/embeddables/maps.ts +++ b/x-pack/test/functional/apps/canvas/embeddables/maps.ts @@ -9,7 +9,7 @@ import expect from '@kbn/expect'; import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { - const PageObjects = getPageObjects(['canvas', 'common', 'header', 'maps']); + const PageObjects = getPageObjects(['canvas', 'header', 'maps']); const dashboardPanelActions = getService('dashboardPanelActions'); const dashboardAddPanel = getService('dashboardAddPanel'); const testSubjects = getService('testSubjects'); @@ -19,7 +19,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { before(async () => { await kibanaServer.savedObjects.cleanStandardList(); // open canvas home - await PageObjects.common.navigateToApp('canvas'); + await PageObjects.canvas.goToListingPage(); // create new workpad await PageObjects.canvas.createNewWorkpad(); await PageObjects.canvas.setWorkpadName('maps tests'); diff --git a/x-pack/test/functional/apps/canvas/embeddables/saved_search.ts b/x-pack/test/functional/apps/canvas/embeddables/saved_search.ts index 6024b4114199a3..59285140672c65 100644 --- a/x-pack/test/functional/apps/canvas/embeddables/saved_search.ts +++ b/x-pack/test/functional/apps/canvas/embeddables/saved_search.ts @@ -8,7 +8,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { - const PageObjects = getPageObjects(['canvas', 'common', 'header', 'discover']); + const PageObjects = getPageObjects(['canvas', 'header', 'discover']); const testSubjects = getService('testSubjects'); const kibanaServer = getService('kibanaServer'); const dashboardAddPanel = getService('dashboardAddPanel'); @@ -21,7 +21,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'test/functional/fixtures/kbn_archiver/dashboard/current/kibana' ); // open canvas home - await PageObjects.common.navigateToApp('canvas'); + await PageObjects.canvas.goToListingPage(); // create new workpad await PageObjects.canvas.createNewWorkpad(); await PageObjects.canvas.setWorkpadName('saved search tests'); @@ -41,7 +41,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('edits saved search by-reference embeddable', async () => { await dashboardPanelActions.editPanelByTitle('Rendering Test: saved search'); await PageObjects.discover.saveSearch('Rendering Test: saved search v2'); - await PageObjects.common.navigateToApp('canvas'); + await PageObjects.canvas.goToListingPage(); await PageObjects.canvas.loadFirstWorkpad('saved search tests'); await testSubjects.existOrFail('embeddablePanelHeading-RenderingTest:savedsearchv2'); }); diff --git a/x-pack/test/functional/apps/canvas/embeddables/visualization.ts b/x-pack/test/functional/apps/canvas/embeddables/visualization.ts index 1296bd1e51c8fd..40328cbf3890d8 100644 --- a/x-pack/test/functional/apps/canvas/embeddables/visualization.ts +++ b/x-pack/test/functional/apps/canvas/embeddables/visualization.ts @@ -10,7 +10,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); - const PageObjects = getPageObjects(['canvas', 'common', 'header', 'visualize']); + const PageObjects = getPageObjects(['canvas', 'header', 'visualize']); const kibanaServer = getService('kibanaServer'); const testSubjects = getService('testSubjects'); const dashboardAddPanel = getService('dashboardAddPanel'); @@ -30,7 +30,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { ); // open canvas home - await PageObjects.common.navigateToApp('canvas'); + await PageObjects.canvas.goToListingPage(); // create new workpad await PageObjects.canvas.createNewWorkpad(); await PageObjects.canvas.setWorkpadName('visualization tests'); diff --git a/x-pack/test/functional/apps/canvas/reports.ts b/x-pack/test/functional/apps/canvas/reports.ts index 1a1550a62c8eb9..a0cb1029f35b31 100644 --- a/x-pack/test/functional/apps/canvas/reports.ts +++ b/x-pack/test/functional/apps/canvas/reports.ts @@ -15,7 +15,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const browser = getService('browser'); const log = getService('log'); const security = getService('security'); - const PageObjects = getPageObjects(['reporting', 'common', 'canvas']); + const PageObjects = getPageObjects(['reporting', 'canvas']); const archive = 'x-pack/test/functional/fixtures/kbn_archiver/canvas/reports'; describe('Canvas PDF Report Generation', () => { @@ -52,7 +52,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { // Generating and then comparing reports can take longer than the default 60s timeout this.timeout(180000); - await PageObjects.common.navigateToApp('canvas'); + await PageObjects.canvas.goToListingPage(); await PageObjects.canvas.loadFirstWorkpad('The Very Cool Workpad for PDF Tests'); await PageObjects.reporting.openPdfReportingPanel(); diff --git a/x-pack/test/functional/apps/canvas/smoke_test.js b/x-pack/test/functional/apps/canvas/smoke_test.js index bdad362d78532b..f251e34e8566d5 100644 --- a/x-pack/test/functional/apps/canvas/smoke_test.js +++ b/x-pack/test/functional/apps/canvas/smoke_test.js @@ -11,7 +11,7 @@ export default function canvasSmokeTest({ getService, getPageObjects }) { const testSubjects = getService('testSubjects'); const browser = getService('browser'); const retry = getService('retry'); - const PageObjects = getPageObjects(['common']); + const PageObjects = getPageObjects(['canvas']); const kibanaServer = getService('kibanaServer'); const config = getService('config'); const archive = { @@ -31,7 +31,7 @@ export default function canvasSmokeTest({ getService, getPageObjects }) { await kibanaServer.importExport.load(archive.local); } - await PageObjects.common.navigateToApp('canvas'); + await PageObjects.canvas.goToListingPage(); }); after(async () => { diff --git a/x-pack/test/functional/page_objects/canvas_page.ts b/x-pack/test/functional/page_objects/canvas_page.ts index e2a2c6438d1f3d..20f33c6096bc30 100644 --- a/x-pack/test/functional/page_objects/canvas_page.ts +++ b/x-pack/test/functional/page_objects/canvas_page.ts @@ -17,20 +17,32 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo const PageObjects = getPageObjects(['common']); return { + async goToListingPage() { + log.debug('CanvasPage.goToListingPage'); + // disabling the current url check because canvas moved away from + // hash router and redirects from /app/canvas#/ to /app/canvas/ + // but navigateToUrl includes hash in the url which causes test flakiness + PageObjects.common.navigateToUrl('canvas', '', { ensureCurrentUrl: false }); + }, + async enterFullscreen() { + log.debug('CanvasPage.enterFullscreen'); const elem = await find.byCssSelector('[aria-label="View fullscreen"]', 20000); await elem.click(); }, async exitFullscreen() { + log.debug('CanvasPage.exitFullscreen'); await browser.pressKeys(browser.keys.ESCAPE); }, async openExpressionEditor() { + log.debug('CanvasPage.openExpressionEditor'); await testSubjects.click('canvasExpressionEditorButton'); }, async waitForWorkpadElements() { + log.debug('CanvasPage.waitForWorkpadElements'); await testSubjects.findAll('canvasWorkpadPage > canvasWorkpadPageElementContent'); }, @@ -40,6 +52,7 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo * to load the workpad. Resolves once the workpad is in the DOM */ async loadFirstWorkpad(workpadName: string) { + log.debug('CanvasPage.loadFirstWorkpad', workpadName); const elem = await testSubjects.find('canvasWorkpadTableWorkpad'); const text = await elem.getVisibleText(); expect(text).to.be(workpadName); @@ -53,6 +66,7 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo }, async fillOutCustomElementForm(name: string, description: string) { + log.debug('CanvasPage.fillOutCustomElementForm', name); // Fill out the custom element form and submit it await testSubjects.setValue('canvasCustomElementForm-name', name, { clearWithKeyboard: true, @@ -65,35 +79,38 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo }, async expectCreateWorkpadButtonEnabled() { + log.debug('CanvasPage.expectCreateWorkpadButtonEnabled'); const button = await testSubjects.find('create-workpad-button', 20000); const disabledAttr = await button.getAttribute('disabled'); expect(disabledAttr).to.be(null); }, async expectCreateWorkpadButtonDisabled() { + log.debug('CanvasPage.expectCreateWorkpadButtonDisabled'); const button = await testSubjects.find('create-workpad-button', 20000); const disabledAttr = await button.getAttribute('disabled'); expect(disabledAttr).to.be('true'); }, async openAddElementMenu() { - log.debug('openAddElementsMenu'); + log.debug('CanvasPage.openAddElementsMenu'); await testSubjects.click('add-element-button'); }, async openAddChartMenu() { - log.debug('openAddChartMenu'); + log.debug('CanvasPage.openAddChartMenu'); await this.openAddElementMenu(); await testSubjects.click('canvasAddElementMenu__Chart'); }, async createNewDatatableElement() { - log.debug('createNewDatatableElement'); + log.debug('CanvasPage.createNewDatatableElement'); await this.openAddChartMenu(); await testSubjects.click('canvasAddElementMenu__table'); }, async openSavedElementsModal() { + log.debug('CanvasPage.openSavedElementsModal'); await testSubjects.click('add-element-button'); await testSubjects.click('saved-elements-menu-option'); @@ -101,14 +118,17 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo }, async closeSavedElementsModal() { + log.debug('CanvasPage.closeSavedElementsModal'); await testSubjects.click('saved-elements-modal-close-button'); }, async expectAddElementButton() { + log.debug('CanvasPage.expectAddElementButton'); await testSubjects.existOrFail('add-element-button'); }, async expectNoAddElementButton() { + log.debug('CanvasPage.expectNoAddElementButton'); // Ensure page is fully loaded first by waiting for the refresh button const refreshPopoverExists = await testSubjects.exists('canvas-refresh-control', { timeout: 20000, @@ -119,6 +139,7 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo }, async getTimeFiltersFromDebug() { + log.debug('CanvasPage.getTimeFiltersFromDebug'); await testSubjects.existOrFail('canvasDebug__content'); const contentElem = await testSubjects.find('canvasDebug__content'); @@ -130,6 +151,7 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo }, async getMatchFiltersFromDebug() { + log.debug('CanvasPage.getMatchFiltersFromDebug'); await testSubjects.existOrFail('canvasDebug__content'); const contentElem = await testSubjects.find('canvasDebug__content'); diff --git a/x-pack/test/reporting_functional/services/scenarios.ts b/x-pack/test/reporting_functional/services/scenarios.ts index f73bd7801b87a8..d1123cf2eab052 100644 --- a/x-pack/test/reporting_functional/services/scenarios.ts +++ b/x-pack/test/reporting_functional/services/scenarios.ts @@ -70,7 +70,7 @@ export function createScenarios( const openCanvasWorkpad = async (title: string) => { log.debug(`Opening saved canvas workpad: ${title}`); - await PageObjects.common.navigateToApp('canvas'); + await PageObjects.canvas.goToListingPage(); await PageObjects.canvas.loadFirstWorkpad(title); }; From 270434bce1f8aa008c7ab473dec849828b615c09 Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Mon, 21 Aug 2023 15:00:09 -0700 Subject: [PATCH 02/17] Fix canvas page objects --- .../canvas/public/components/home/home.component.tsx | 1 + x-pack/test/functional/apps/canvas/custom_elements.ts | 7 +++---- x-pack/test/functional/page_objects/canvas_page.ts | 7 +++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/canvas/public/components/home/home.component.tsx b/x-pack/plugins/canvas/public/components/home/home.component.tsx index c29713da70d115..00b018e6cee0ee 100644 --- a/x-pack/plugins/canvas/public/components/home/home.component.tsx +++ b/x-pack/plugins/canvas/public/components/home/home.component.tsx @@ -35,6 +35,7 @@ export const Home = ({ activeTab = 'workpads' }: Props) => { { label: strings.getMyWorkpadsTabLabel(), id: 'myWorkpads', + 'data-test-subj': 'workpadListing', isSelected: tab === 'workpads', onClick: () => setTab('workpads'), }, diff --git a/x-pack/test/functional/apps/canvas/custom_elements.ts b/x-pack/test/functional/apps/canvas/custom_elements.ts index 065ea771179b99..591d06a3afd504 100644 --- a/x-pack/test/functional/apps/canvas/custom_elements.ts +++ b/x-pack/test/functional/apps/canvas/custom_elements.ts @@ -21,15 +21,14 @@ export default function canvasCustomElementTest({ const kibanaServer = getService('kibanaServer'); const archive = 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'; - describe('custom elements', function () { + describe.only('custom elements', function () { this.tags('skipFirefox'); before(async () => { await kibanaServer.importExport.load(archive); // load test workpad - await PageObjects.common.navigateToApp('canvas', { - path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', - }); + await PageObjects.canvas.goToListingPage(); + await PageObjects.canvas.loadFirstWorkpad('Test Workpad'); }); after(async () => { diff --git a/x-pack/test/functional/page_objects/canvas_page.ts b/x-pack/test/functional/page_objects/canvas_page.ts index 20f33c6096bc30..d4f77effee1e8b 100644 --- a/x-pack/test/functional/page_objects/canvas_page.ts +++ b/x-pack/test/functional/page_objects/canvas_page.ts @@ -22,7 +22,10 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo // disabling the current url check because canvas moved away from // hash router and redirects from /app/canvas#/ to /app/canvas/ // but navigateToUrl includes hash in the url which causes test flakiness - PageObjects.common.navigateToUrl('canvas', '', { ensureCurrentUrl: false }); + await PageObjects.common.navigateToUrl('canvas', '', { + ensureCurrentUrl: false, + }); + await testSubjects.existOrFail('workpadListing'); }, async enterFullscreen() { @@ -114,7 +117,7 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo await testSubjects.click('add-element-button'); await testSubjects.click('saved-elements-menu-option'); - await PageObjects.common.sleep(1000); // give time for modal animation to complete + await await PageObjects.common.sleep(1000); // give time for modal animation to complete }, async closeSavedElementsModal() { From cdb4a6ea2a6cc7fcdbe240e0dae5dfebf4ad4984 Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Mon, 21 Aug 2023 15:05:34 -0700 Subject: [PATCH 03/17] Remove exclusive suite --- x-pack/test/functional/apps/canvas/custom_elements.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/canvas/custom_elements.ts b/x-pack/test/functional/apps/canvas/custom_elements.ts index 591d06a3afd504..2997320aaee47a 100644 --- a/x-pack/test/functional/apps/canvas/custom_elements.ts +++ b/x-pack/test/functional/apps/canvas/custom_elements.ts @@ -21,7 +21,7 @@ export default function canvasCustomElementTest({ const kibanaServer = getService('kibanaServer'); const archive = 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'; - describe.only('custom elements', function () { + describe('custom elements', function () { this.tags('skipFirefox'); before(async () => { From 053fd91e691d29841080ac2a4fd1b97de5ff74b0 Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Tue, 22 Aug 2023 10:09:32 -0700 Subject: [PATCH 04/17] Throw when passing canvas to navigateToApp --- test/functional/page_objects/common_page.ts | 8 ++++++++ x-pack/test/functional/apps/canvas/embeddables/lens.ts | 2 +- x-pack/test/functional/apps/canvas/expression.ts | 2 +- x-pack/test/functional/apps/canvas/filters.ts | 8 +++++--- .../test/functional/apps/canvas/saved_object_resolve.ts | 4 ++-- .../test/functional/apps/maps/group2/embeddable/canvas.ts | 2 +- 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/test/functional/page_objects/common_page.ts b/test/functional/page_objects/common_page.ts index 60b5b05904ac04..51831be4c1ac70 100644 --- a/test/functional/page_objects/common_page.ts +++ b/test/functional/page_objects/common_page.ts @@ -230,6 +230,14 @@ export class CommonPageObject extends FtrService { } = {} ) { let appUrl: string; + + // See https://github.com/elastic/kibana/pull/164376 + if (appName === 'canvas' && !path) { + throw new Error( + 'This causes flaky test failures. Use Canvas page object goToListingPage instead' + ); + } + if (this.config.has(['apps', appName])) { // Legacy applications const appConfig = this.config.get(['apps', appName]); diff --git a/x-pack/test/functional/apps/canvas/embeddables/lens.ts b/x-pack/test/functional/apps/canvas/embeddables/lens.ts index 74f29283344104..ab35e90496b3b5 100644 --- a/x-pack/test/functional/apps/canvas/embeddables/lens.ts +++ b/x-pack/test/functional/apps/canvas/embeddables/lens.ts @@ -50,7 +50,7 @@ export default function canvasLensTest({ getService, getPageObjects }: FtrProvid it('renders lens visualization using savedLens expression', async () => { // load test workpad await PageObjects.common.navigateToApp('canvas', { - hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', + path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', }); await PageObjects.header.waitUntilLoadingHasFinished(); diff --git a/x-pack/test/functional/apps/canvas/expression.ts b/x-pack/test/functional/apps/canvas/expression.ts index f41bea97743084..aeda88237fab1f 100644 --- a/x-pack/test/functional/apps/canvas/expression.ts +++ b/x-pack/test/functional/apps/canvas/expression.ts @@ -28,7 +28,7 @@ export default function canvasExpressionTest({ getService, getPageObjects }: Ftr // load test workpad await PageObjects.common.navigateToApp('canvas', { - hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', + path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', }); }); diff --git a/x-pack/test/functional/apps/canvas/filters.ts b/x-pack/test/functional/apps/canvas/filters.ts index ce8b319b9d53f6..cddd0df694f15e 100644 --- a/x-pack/test/functional/apps/canvas/filters.ts +++ b/x-pack/test/functional/apps/canvas/filters.ts @@ -24,9 +24,11 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro before(async () => { await kibanaServer.importExport.load(archive); // load test workpad - await PageObjects.common.navigateToApp('canvas', { - hash: '/workpad/workpad-b5618217-56d2-47fa-b756-1be2306cda68/page/1', - }); + await PageObjects.common.navigateToUrl( + 'canvas', + '/workpad/workpad-b5618217-56d2-47fa-b756-1be2306cda68/page/1', + { ensureCurrentUrl: false } + ); }); after(async () => { diff --git a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts index d0739c0d2f1b7e..512a48302d8ff7 100644 --- a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts +++ b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts @@ -84,7 +84,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro it('redirects an alias match', async () => { await PageObjects.common.navigateToApp('canvas', { basePath: '/s/custom_space', - hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-old-id/page/1', + path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-old-id/page/1', }); // Wait for the redirect toast @@ -113,7 +113,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro it('handles a conflict match', async () => { await PageObjects.common.navigateToApp('canvas', { basePath: '/s/custom_space', - hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', + path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', }); await testSubjects.click('legacy-url-conflict-go-to-other-button'); diff --git a/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts b/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts index d12d1bdce4ecfa..94e9764a2cd47c 100644 --- a/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts +++ b/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts @@ -15,7 +15,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { describe('Map embeddable in canvas', () => { before(async () => { await PageObjects.common.navigateToApp('canvas', { - hash: '/workpad/workpad-c74f9c27-a142-4664-bf8a-69bf782fc268/page/1', + path: '/workpad/workpad-c74f9c27-a142-4664-bf8a-69bf782fc268/page/1', }); }); From aa355d6e8a31891182f05fffff1b311517655585 Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Tue, 22 Aug 2023 10:12:25 -0700 Subject: [PATCH 05/17] Fix canvas page object --- x-pack/test/functional/page_objects/canvas_page.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/test/functional/page_objects/canvas_page.ts b/x-pack/test/functional/page_objects/canvas_page.ts index d4f77effee1e8b..02f94c540143bc 100644 --- a/x-pack/test/functional/page_objects/canvas_page.ts +++ b/x-pack/test/functional/page_objects/canvas_page.ts @@ -117,7 +117,7 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo await testSubjects.click('add-element-button'); await testSubjects.click('saved-elements-menu-option'); - await await PageObjects.common.sleep(1000); // give time for modal animation to complete + await PageObjects.common.sleep(1000); // give time for modal animation to complete }, async closeSavedElementsModal() { From ae64c2a7de0f2399a9a54be399b5a03905305ef7 Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Tue, 22 Aug 2023 11:03:13 -0700 Subject: [PATCH 06/17] Fix failing tests --- x-pack/test/functional/apps/canvas/embeddables/lens.ts | 2 +- x-pack/test/functional/apps/canvas/expression.ts | 2 +- x-pack/test/functional/apps/canvas/saved_object_resolve.ts | 4 ++-- x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/x-pack/test/functional/apps/canvas/embeddables/lens.ts b/x-pack/test/functional/apps/canvas/embeddables/lens.ts index ab35e90496b3b5..74f29283344104 100644 --- a/x-pack/test/functional/apps/canvas/embeddables/lens.ts +++ b/x-pack/test/functional/apps/canvas/embeddables/lens.ts @@ -50,7 +50,7 @@ export default function canvasLensTest({ getService, getPageObjects }: FtrProvid it('renders lens visualization using savedLens expression', async () => { // load test workpad await PageObjects.common.navigateToApp('canvas', { - path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', + hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', }); await PageObjects.header.waitUntilLoadingHasFinished(); diff --git a/x-pack/test/functional/apps/canvas/expression.ts b/x-pack/test/functional/apps/canvas/expression.ts index aeda88237fab1f..f41bea97743084 100644 --- a/x-pack/test/functional/apps/canvas/expression.ts +++ b/x-pack/test/functional/apps/canvas/expression.ts @@ -28,7 +28,7 @@ export default function canvasExpressionTest({ getService, getPageObjects }: Ftr // load test workpad await PageObjects.common.navigateToApp('canvas', { - path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', + hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', }); }); diff --git a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts index 512a48302d8ff7..d0739c0d2f1b7e 100644 --- a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts +++ b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts @@ -84,7 +84,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro it('redirects an alias match', async () => { await PageObjects.common.navigateToApp('canvas', { basePath: '/s/custom_space', - path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-old-id/page/1', + hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-old-id/page/1', }); // Wait for the redirect toast @@ -113,7 +113,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro it('handles a conflict match', async () => { await PageObjects.common.navigateToApp('canvas', { basePath: '/s/custom_space', - path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', + hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', }); await testSubjects.click('legacy-url-conflict-go-to-other-button'); diff --git a/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts b/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts index 94e9764a2cd47c..d12d1bdce4ecfa 100644 --- a/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts +++ b/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts @@ -15,7 +15,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { describe('Map embeddable in canvas', () => { before(async () => { await PageObjects.common.navigateToApp('canvas', { - path: '/workpad/workpad-c74f9c27-a142-4664-bf8a-69bf782fc268/page/1', + hash: '/workpad/workpad-c74f9c27-a142-4664-bf8a-69bf782fc268/page/1', }); }); From 47823dc585978ac439a77163cd7a9caca5d4eb1d Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Wed, 23 Aug 2023 11:39:47 -0700 Subject: [PATCH 07/17] Fix tests --- x-pack/test/functional/apps/canvas/embeddables/lens.ts | 5 ++--- x-pack/test/functional/apps/canvas/expression.ts | 3 +-- x-pack/test/functional/apps/canvas/saved_object_resolve.ts | 4 ++-- .../test/functional/apps/maps/group2/embeddable/canvas.ts | 7 ++++--- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/x-pack/test/functional/apps/canvas/embeddables/lens.ts b/x-pack/test/functional/apps/canvas/embeddables/lens.ts index 74f29283344104..3676e065caf17b 100644 --- a/x-pack/test/functional/apps/canvas/embeddables/lens.ts +++ b/x-pack/test/functional/apps/canvas/embeddables/lens.ts @@ -49,9 +49,8 @@ export default function canvasLensTest({ getService, getPageObjects }: FtrProvid it('renders lens visualization using savedLens expression', async () => { // load test workpad - await PageObjects.common.navigateToApp('canvas', { - hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', - }); + await PageObjects.canvas.goToLoadingPage(); + await PageObjects.canvas.loadFirstWorkpad('Test Workpad'); await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.lens.assertLegacyMetric('Maximum of bytes', '16,788'); diff --git a/x-pack/test/functional/apps/canvas/expression.ts b/x-pack/test/functional/apps/canvas/expression.ts index f41bea97743084..a8aef76d38dbe6 100644 --- a/x-pack/test/functional/apps/canvas/expression.ts +++ b/x-pack/test/functional/apps/canvas/expression.ts @@ -27,8 +27,7 @@ export default function canvasExpressionTest({ getService, getPageObjects }: Ftr await kibanaServer.importExport.load(archive); // load test workpad - await PageObjects.common.navigateToApp('canvas', { - hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', + await PageObjects.common.navigateToUrl('canvas','/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1',{ ensureCurrentUrl: false}); }); }); diff --git a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts index d0739c0d2f1b7e..512a48302d8ff7 100644 --- a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts +++ b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts @@ -84,7 +84,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro it('redirects an alias match', async () => { await PageObjects.common.navigateToApp('canvas', { basePath: '/s/custom_space', - hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-old-id/page/1', + path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-old-id/page/1', }); // Wait for the redirect toast @@ -113,7 +113,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro it('handles a conflict match', async () => { await PageObjects.common.navigateToApp('canvas', { basePath: '/s/custom_space', - hash: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', + path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', }); await testSubjects.click('legacy-url-conflict-go-to-other-button'); diff --git a/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts b/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts index d12d1bdce4ecfa..77bda5226d4949 100644 --- a/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts +++ b/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts @@ -14,9 +14,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { describe('Map embeddable in canvas', () => { before(async () => { - await PageObjects.common.navigateToApp('canvas', { - hash: '/workpad/workpad-c74f9c27-a142-4664-bf8a-69bf782fc268/page/1', - }); + await PageObjects.common.navigateToUrl( + 'canvas', + '/workpad/workpad-c74f9c27-a142-4664-bf8a-69bf782fc268/page/1' + ); }); it('should render map embeddable', async () => { From 4cc34e043e9b74b8563118a22ec4ecdaddb6794e Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Thu, 31 Aug 2023 14:27:04 -0700 Subject: [PATCH 08/17] Fix ts errors --- x-pack/test/functional/apps/canvas/expression.ts | 7 +++++-- .../test/functional/apps/maps/group2/embeddable/canvas.ts | 6 ++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/x-pack/test/functional/apps/canvas/expression.ts b/x-pack/test/functional/apps/canvas/expression.ts index a8aef76d38dbe6..4ec2549c2c2079 100644 --- a/x-pack/test/functional/apps/canvas/expression.ts +++ b/x-pack/test/functional/apps/canvas/expression.ts @@ -27,8 +27,11 @@ export default function canvasExpressionTest({ getService, getPageObjects }: Ftr await kibanaServer.importExport.load(archive); // load test workpad - await PageObjects.common.navigateToUrl('canvas','/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1',{ ensureCurrentUrl: false}); - }); + await PageObjects.common.navigateToUrl( + 'canvas', + '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', + { ensureCurrentUrl: false } + ); }); after(async () => { diff --git a/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts b/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts index 77bda5226d4949..8adab9fa86bb4e 100644 --- a/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts +++ b/x-pack/test/functional/apps/maps/group2/embeddable/canvas.ts @@ -14,10 +14,8 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { describe('Map embeddable in canvas', () => { before(async () => { - await PageObjects.common.navigateToUrl( - 'canvas', - '/workpad/workpad-c74f9c27-a142-4664-bf8a-69bf782fc268/page/1' - ); + await PageObjects.canvas.goToListingPage(); + await PageObjects.canvas.loadFirstWorkpad('Canvas with map'); }); it('should render map embeddable', async () => { From 93e8065ed5f088d18fa91e6d19d07e3eb32e6dee Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Thu, 31 Aug 2023 15:48:06 -0700 Subject: [PATCH 09/17] Fix canvas expression test --- x-pack/test/functional/apps/canvas/expression.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/x-pack/test/functional/apps/canvas/expression.ts b/x-pack/test/functional/apps/canvas/expression.ts index 4ec2549c2c2079..857bd3d0e3eba7 100644 --- a/x-pack/test/functional/apps/canvas/expression.ts +++ b/x-pack/test/functional/apps/canvas/expression.ts @@ -27,11 +27,8 @@ export default function canvasExpressionTest({ getService, getPageObjects }: Ftr await kibanaServer.importExport.load(archive); // load test workpad - await PageObjects.common.navigateToUrl( - 'canvas', - '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31/page/1', - { ensureCurrentUrl: false } - ); + await PageObjects.canvas.goToListingPage(); + await PageObjects.canvas.loadFirstWorkpad('Test Workpad'); }); after(async () => { From 679f2d3801c0faac6bdfded6d77739ecd579114d Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Thu, 31 Aug 2023 18:54:46 -0700 Subject: [PATCH 10/17] Fix canvas filters tests --- x-pack/test/functional/apps/canvas/custom_elements.ts | 2 +- x-pack/test/functional/apps/canvas/embeddables/lens.ts | 2 +- x-pack/test/functional/apps/canvas/expression.ts | 2 +- .../apps/canvas/feature_controls/canvas_security.ts | 2 +- x-pack/test/functional/apps/canvas/filters.ts | 9 +++------ .../test/functional/apps/canvas/migrations_smoke_test.ts | 2 +- 6 files changed, 8 insertions(+), 11 deletions(-) diff --git a/x-pack/test/functional/apps/canvas/custom_elements.ts b/x-pack/test/functional/apps/canvas/custom_elements.ts index 2997320aaee47a..7f079666325e35 100644 --- a/x-pack/test/functional/apps/canvas/custom_elements.ts +++ b/x-pack/test/functional/apps/canvas/custom_elements.ts @@ -16,7 +16,7 @@ export default function canvasCustomElementTest({ const testSubjects = getService('testSubjects'); const browser = getService('browser'); const retry = getService('retry'); - const PageObjects = getPageObjects(['canvas', 'common']); + const PageObjects = getPageObjects(['canvas']); const find = getService('find'); const kibanaServer = getService('kibanaServer'); const archive = 'x-pack/test/functional/fixtures/kbn_archiver/canvas/default'; diff --git a/x-pack/test/functional/apps/canvas/embeddables/lens.ts b/x-pack/test/functional/apps/canvas/embeddables/lens.ts index 3676e065caf17b..04ff7793e830ed 100644 --- a/x-pack/test/functional/apps/canvas/embeddables/lens.ts +++ b/x-pack/test/functional/apps/canvas/embeddables/lens.ts @@ -8,7 +8,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function canvasLensTest({ getService, getPageObjects }: FtrProviderContext) { - const PageObjects = getPageObjects(['canvas', 'common', 'header', 'lens']); + const PageObjects = getPageObjects(['canvas', 'header', 'lens']); const esArchiver = getService('esArchiver'); const dashboardAddPanel = getService('dashboardAddPanel'); const dashboardPanelActions = getService('dashboardPanelActions'); diff --git a/x-pack/test/functional/apps/canvas/expression.ts b/x-pack/test/functional/apps/canvas/expression.ts index 857bd3d0e3eba7..7e6c8720ffc437 100644 --- a/x-pack/test/functional/apps/canvas/expression.ts +++ b/x-pack/test/functional/apps/canvas/expression.ts @@ -15,7 +15,7 @@ export default function canvasExpressionTest({ getService, getPageObjects }: Ftr const find = getService('find'); const kibanaServer = getService('kibanaServer'); const monacoEditor = getService('monacoEditor'); - const PageObjects = getPageObjects(['canvas', 'common']); + const PageObjects = getPageObjects(['canvas']); const retry = getService('retry'); const testSubjects = getService('testSubjects'); diff --git a/x-pack/test/functional/apps/canvas/feature_controls/canvas_security.ts b/x-pack/test/functional/apps/canvas/feature_controls/canvas_security.ts index d1a500be98ff89..59e6d281fb174b 100644 --- a/x-pack/test/functional/apps/canvas/feature_controls/canvas_security.ts +++ b/x-pack/test/functional/apps/canvas/feature_controls/canvas_security.ts @@ -10,7 +10,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const security = getService('security'); - const PageObjects = getPageObjects(['common', 'canvas', 'error', 'security', 'spaceSelector']); + const PageObjects = getPageObjects(['canvas', 'error', 'security', 'spaceSelector']); const appsMenu = getService('appsMenu'); const globalNav = getService('globalNav'); const testSubjects = getService('testSubjects'); diff --git a/x-pack/test/functional/apps/canvas/filters.ts b/x-pack/test/functional/apps/canvas/filters.ts index cddd0df694f15e..36aad76262196d 100644 --- a/x-pack/test/functional/apps/canvas/filters.ts +++ b/x-pack/test/functional/apps/canvas/filters.ts @@ -12,7 +12,7 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function canvasFiltersTest({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const retry = getService('retry'); - const PageObjects = getPageObjects(['canvas', 'common']); + const PageObjects = getPageObjects(['canvas']); const find = getService('find'); const kibanaServer = getService('kibanaServer'); const archive = 'x-pack/test/functional/fixtures/kbn_archiver/canvas/filter'; @@ -24,11 +24,8 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro before(async () => { await kibanaServer.importExport.load(archive); // load test workpad - await PageObjects.common.navigateToUrl( - 'canvas', - '/workpad/workpad-b5618217-56d2-47fa-b756-1be2306cda68/page/1', - { ensureCurrentUrl: false } - ); + await PageObjects.canvas.goToLoadingPage(); + await PageObjects.canvas.loadFirstWorkpad('Filter Debug Workpad'); }); after(async () => { diff --git a/x-pack/test/functional/apps/canvas/migrations_smoke_test.ts b/x-pack/test/functional/apps/canvas/migrations_smoke_test.ts index 7577073a1004de..54f42e484734d2 100644 --- a/x-pack/test/functional/apps/canvas/migrations_smoke_test.ts +++ b/x-pack/test/functional/apps/canvas/migrations_smoke_test.ts @@ -9,7 +9,7 @@ import path from 'path'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getPageObjects, getService }: FtrProviderContext) { - const PageObjects = getPageObjects(['common', 'settings', 'savedObjects']); + const PageObjects = getPageObjects(['settings', 'savedObjects']); describe('migration smoke test', function () { it('imports an 8.2 workpad', async function () { From 206bf461274f17a07af07b3ecc40adc00e3dffc2 Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Fri, 1 Sep 2023 10:24:04 -0700 Subject: [PATCH 11/17] Fix page object --- x-pack/test/functional/apps/canvas/filters.ts | 2 +- x-pack/test/functional/page_objects/canvas_page.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/canvas/filters.ts b/x-pack/test/functional/apps/canvas/filters.ts index 36aad76262196d..d1e85aec2ae872 100644 --- a/x-pack/test/functional/apps/canvas/filters.ts +++ b/x-pack/test/functional/apps/canvas/filters.ts @@ -24,7 +24,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro before(async () => { await kibanaServer.importExport.load(archive); // load test workpad - await PageObjects.canvas.goToLoadingPage(); + await PageObjects.canvas.goToListingPage(); await PageObjects.canvas.loadFirstWorkpad('Filter Debug Workpad'); }); diff --git a/x-pack/test/functional/page_objects/canvas_page.ts b/x-pack/test/functional/page_objects/canvas_page.ts index 02f94c540143bc..d794b33d06dda1 100644 --- a/x-pack/test/functional/page_objects/canvas_page.ts +++ b/x-pack/test/functional/page_objects/canvas_page.ts @@ -24,6 +24,7 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo // but navigateToUrl includes hash in the url which causes test flakiness await PageObjects.common.navigateToUrl('canvas', '', { ensureCurrentUrl: false, + shouldLoginIfPrompted: true, }); await testSubjects.existOrFail('workpadListing'); }, From f2c78b2ab8682e34d0d2980d7626536cadf1905e Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Fri, 1 Sep 2023 12:30:24 -0700 Subject: [PATCH 12/17] Fix missing page object --- .../functional/apps/canvas/feature_controls/canvas_security.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/canvas/feature_controls/canvas_security.ts b/x-pack/test/functional/apps/canvas/feature_controls/canvas_security.ts index 59e6d281fb174b..d1a500be98ff89 100644 --- a/x-pack/test/functional/apps/canvas/feature_controls/canvas_security.ts +++ b/x-pack/test/functional/apps/canvas/feature_controls/canvas_security.ts @@ -10,7 +10,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const security = getService('security'); - const PageObjects = getPageObjects(['canvas', 'error', 'security', 'spaceSelector']); + const PageObjects = getPageObjects(['common', 'canvas', 'error', 'security', 'spaceSelector']); const appsMenu = getService('appsMenu'); const globalNav = getService('globalNav'); const testSubjects = getService('testSubjects'); From 85ab931fc906728aef5f3ae1405bc77d5383e0bd Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Fri, 1 Sep 2023 14:37:22 -0700 Subject: [PATCH 13/17] Fix page object --- x-pack/test/functional/apps/canvas/embeddables/lens.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/canvas/embeddables/lens.ts b/x-pack/test/functional/apps/canvas/embeddables/lens.ts index 04ff7793e830ed..1e7557cde4c8c3 100644 --- a/x-pack/test/functional/apps/canvas/embeddables/lens.ts +++ b/x-pack/test/functional/apps/canvas/embeddables/lens.ts @@ -49,7 +49,7 @@ export default function canvasLensTest({ getService, getPageObjects }: FtrProvid it('renders lens visualization using savedLens expression', async () => { // load test workpad - await PageObjects.canvas.goToLoadingPage(); + await PageObjects.canvas.goToListingPage(); await PageObjects.canvas.loadFirstWorkpad('Test Workpad'); await PageObjects.header.waitUntilLoadingHasFinished(); From 21b910a2e59c66c601fbeaf3c01bd0958fef9aea Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Mon, 18 Sep 2023 11:04:52 -0400 Subject: [PATCH 14/17] Filter workpads in loadFirstWorkpad --- x-pack/test/functional/page_objects/canvas_page.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/test/functional/page_objects/canvas_page.ts b/x-pack/test/functional/page_objects/canvas_page.ts index d794b33d06dda1..e27d2f8a3545c7 100644 --- a/x-pack/test/functional/page_objects/canvas_page.ts +++ b/x-pack/test/functional/page_objects/canvas_page.ts @@ -57,6 +57,7 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo */ async loadFirstWorkpad(workpadName: string) { log.debug('CanvasPage.loadFirstWorkpad', workpadName); + await testSubjects.setValue('tableListSearchBox', workpadName); const elem = await testSubjects.find('canvasWorkpadTableWorkpad'); const text = await elem.getVisibleText(); expect(text).to.be(workpadName); From 1e7dc0dd3251fa2ee23360f65e8b86e70cd8c3e1 Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Tue, 19 Sep 2023 10:06:42 -0400 Subject: [PATCH 15/17] Fix save object resolve test --- .../apps/canvas/saved_object_resolve.ts | 26 ++++++++++++------- .../functional/page_objects/canvas_page.ts | 2 +- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts index 512a48302d8ff7..1f2f5063ea5038 100644 --- a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts +++ b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts @@ -18,7 +18,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro const archive = 'x-pack/test/functional/fixtures/kbn_archiver/canvas/saved_object_resolve'; const browser = getService('browser'); - describe('filters', function () { + describe.only('filters', function () { // there is an issue with FF not properly clicking on workpad elements this.tags('skipFirefox'); @@ -82,10 +82,14 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro }); it('redirects an alias match', async () => { - await PageObjects.common.navigateToApp('canvas', { - basePath: '/s/custom_space', - path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-old-id/page/1', - }); + await PageObjects.common.navigateToUrl( + 'canvas', + 'workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-old-id/page/1', + { + basePath: '/s/custom_space', + shouldUseHashForSubUrl: false, + } + ); // Wait for the redirect toast await retry.try(async () => { @@ -111,10 +115,14 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro }); it('handles a conflict match', async () => { - await PageObjects.common.navigateToApp('canvas', { - basePath: '/s/custom_space', - path: '/workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', - }); + await PageObjects.common.navigateToUrl( + 'canvas', + 'workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', + { + basePath: '/s/custom_space', + shouldUseHashForSubUrl: false, + } + ); await testSubjects.click('legacy-url-conflict-go-to-other-button'); diff --git a/x-pack/test/functional/page_objects/canvas_page.ts b/x-pack/test/functional/page_objects/canvas_page.ts index e27d2f8a3545c7..a075466868bffd 100644 --- a/x-pack/test/functional/page_objects/canvas_page.ts +++ b/x-pack/test/functional/page_objects/canvas_page.ts @@ -24,7 +24,7 @@ export function CanvasPageProvider({ getService, getPageObjects }: FtrProviderCo // but navigateToUrl includes hash in the url which causes test flakiness await PageObjects.common.navigateToUrl('canvas', '', { ensureCurrentUrl: false, - shouldLoginIfPrompted: true, + shouldUseHashForSubUrl: false, }); await testSubjects.existOrFail('workpadListing'); }, From 56e8be991af125f729d4c1f89f104a267e405d15 Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Tue, 19 Sep 2023 10:09:21 -0400 Subject: [PATCH 16/17] Remove exclusive suite --- x-pack/test/functional/apps/canvas/saved_object_resolve.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts index 1f2f5063ea5038..61f19fb89c9079 100644 --- a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts +++ b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts @@ -18,7 +18,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro const archive = 'x-pack/test/functional/fixtures/kbn_archiver/canvas/saved_object_resolve'; const browser = getService('browser'); - describe.only('filters', function () { + describe('filters', function () { // there is an issue with FF not properly clicking on workpad elements this.tags('skipFirefox'); @@ -117,7 +117,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro it('handles a conflict match', async () => { await PageObjects.common.navigateToUrl( 'canvas', - 'workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', + 'savworkpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', { basePath: '/s/custom_space', shouldUseHashForSubUrl: false, From 6a92a427f2260b386f189b86c76ca4096befa4ae Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Tue, 19 Sep 2023 11:04:06 -0400 Subject: [PATCH 17/17] Fix typo --- x-pack/test/functional/apps/canvas/saved_object_resolve.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts index 61f19fb89c9079..c9b4074bc029ac 100644 --- a/x-pack/test/functional/apps/canvas/saved_object_resolve.ts +++ b/x-pack/test/functional/apps/canvas/saved_object_resolve.ts @@ -117,7 +117,7 @@ export default function canvasFiltersTest({ getService, getPageObjects }: FtrPro it('handles a conflict match', async () => { await PageObjects.common.navigateToUrl( 'canvas', - 'savworkpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', + 'workpad/workpad-1705f884-6224-47de-ba49-ca224fe6ec31-conflict-old/page/1', { basePath: '/s/custom_space', shouldUseHashForSubUrl: false,