Skip to content

Commit 2a47c7a

Browse files
Refactor to work on both serverless and stateful
1 parent 471203f commit 2a47c7a

4 files changed

Lines changed: 61 additions & 18 deletions

File tree

x-pack/solutions/security/packages/kbn-scout-security/src/playwright/fixtures/parallel_run_fixtures.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,15 @@ export const spaceTest = securityParallelFixtures.extend<
3434
{
3535
pageObjects,
3636
page,
37+
config,
3738
}: {
3839
pageObjects: SecurityParallelTestFixtures['pageObjects'];
3940
page: SecurityParallelTestFixtures['page'];
41+
config: SecurityParallelWorkerFixtures['config'];
4042
},
4143
use: (pageObjects: SecurityParallelTestFixtures['pageObjects']) => Promise<void>
4244
) => {
43-
const extendedPageObjects = extendPageObjects(pageObjects, page);
45+
const extendedPageObjects = extendPageObjects(pageObjects, page, config);
4446
await use(extendedPageObjects);
4547
},
4648
apiServices: [

x-pack/solutions/security/packages/kbn-scout-security/src/playwright/fixtures/single_thread_fixtures.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,15 @@ export const test = securityFixtures.extend<SecurityTestFixtures, SecurityWorker
2727
{
2828
pageObjects,
2929
page,
30-
}: { pageObjects: SecurityTestFixtures['pageObjects']; page: SecurityTestFixtures['page'] },
30+
config,
31+
}: {
32+
pageObjects: SecurityTestFixtures['pageObjects'];
33+
page: SecurityTestFixtures['page'];
34+
config: SecurityWorkerFixtures['config'];
35+
},
3136
use: (pageObjects: SecurityTestFixtures['pageObjects']) => Promise<void>
3237
) => {
33-
const extendedPageObjects = extendPageObjects(pageObjects, page);
38+
const extendedPageObjects = extendPageObjects(pageObjects, page, config);
3439
await use(extendedPageObjects);
3540
},
3641
apiServices: [

x-pack/solutions/security/packages/kbn-scout-security/src/playwright/fixtures/test/page_objects/detections_attack_discovery.ts

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,19 @@
55
* 2.0.
66
*/
77

8-
import type { Locator, ScoutPage } from '@kbn/scout';
8+
import type { Locator, ScoutPage, ScoutTestConfig } from '@kbn/scout';
99

1010
const PAGE_URL = 'securitySolutionUI';
11-
const ALERTS_NAV_ITEM_SELECTOR = 'solutionSideNavItemLink-alerts';
12-
const DETECTIONS_NAV_ITEM_SELECTOR = 'solutionSideNavItemLink-alert_detections';
13-
const DETECTIONS_NAV_ITEM_BUTTON_SELECTOR = 'solutionSideNavItemButton-alert_detections';
14-
const ATTACKS_NAV_PANEL_ITEM_SELECTOR = 'solutionSideNavPanelLink-attacks';
15-
const ALERTS_NAV_PANEL_ITEM_SELECTOR = 'solutionSideNavPanelLink-alerts';
11+
const STATEFUL_ALERTS_NAV_ITEM_SELECTOR = 'solutionSideNavItemLink-alerts';
12+
const STATEFUL_DETECTIONS_NAV_ITEM_SELECTOR = 'solutionSideNavItemLink-alert_detections';
13+
const STATEFUL_DETECTIONS_NAV_ITEM_BUTTON_SELECTOR = 'solutionSideNavItemButton-alert_detections';
14+
const STATEFUL_ATTACKS_NAV_PANEL_ITEM_SELECTOR = 'solutionSideNavPanelLink-attacks';
15+
const STATEFUL_ALERTS_NAV_PANEL_ITEM_SELECTOR = 'solutionSideNavPanelLink-alerts';
16+
17+
const SERVERLESS_ALERTS_NAV_ITEM_DEEP_LINK_ID = 'securitySolutionUI:alerts';
18+
const SERVERLESS_DETECTIONS_NAV_ITEM_ID = 'securityGroup:alertDetections';
19+
const SERVERLESS_ATTACKS_NAV_PANEL_ITEM_DEEP_LINK_ID = 'securitySolutionUI:attacks';
20+
const SERVERLESS_ALERTS_NAV_PANEL_ITEM_DEEP_LINK_ID = 'securitySolutionUI:alerts';
1621

1722
export class DetectionsAttackDiscoveryPage {
1823
public standaloneAlertsNavItem: Locator;
@@ -21,14 +26,37 @@ export class DetectionsAttackDiscoveryPage {
2126
public detectionsPanelAttacksNavItem: Locator;
2227
public detectionsNavItemButton: Locator;
2328

24-
constructor(private readonly page: ScoutPage) {
25-
this.standaloneAlertsNavItem = this.page.testSubj.locator(ALERTS_NAV_ITEM_SELECTOR);
26-
this.detectionsNavItem = this.page.testSubj.locator(DETECTIONS_NAV_ITEM_SELECTOR);
27-
this.detectionsPanelAlertsNavItem = this.page.testSubj.locator(ALERTS_NAV_PANEL_ITEM_SELECTOR);
29+
constructor(private readonly page: ScoutPage, _config: ScoutTestConfig) {
30+
if (_config.serverless) {
31+
this.standaloneAlertsNavItem = this.page.testSubj.locator(
32+
`~nav-item-deepLinkId-${SERVERLESS_ALERTS_NAV_ITEM_DEEP_LINK_ID}`
33+
);
34+
this.detectionsNavItem = this.page.testSubj.locator(
35+
`~nav-item-id-${SERVERLESS_DETECTIONS_NAV_ITEM_ID}`
36+
);
37+
this.detectionsPanelAlertsNavItem = this.page.testSubj.locator(
38+
`~nav-item-deepLinkId-${SERVERLESS_ALERTS_NAV_PANEL_ITEM_DEEP_LINK_ID}`
39+
);
40+
this.detectionsPanelAttacksNavItem = this.page.testSubj.locator(
41+
`~nav-item-deepLinkId-${SERVERLESS_ATTACKS_NAV_PANEL_ITEM_DEEP_LINK_ID}`
42+
);
43+
this.detectionsNavItemButton = this.page.testSubj.locator(
44+
`~nav-item-id-${SERVERLESS_DETECTIONS_NAV_ITEM_ID}`
45+
);
46+
return;
47+
}
48+
49+
this.standaloneAlertsNavItem = this.page.testSubj.locator(STATEFUL_ALERTS_NAV_ITEM_SELECTOR);
50+
this.detectionsNavItem = this.page.testSubj.locator(STATEFUL_DETECTIONS_NAV_ITEM_SELECTOR);
51+
this.detectionsPanelAlertsNavItem = this.page.testSubj.locator(
52+
STATEFUL_ALERTS_NAV_PANEL_ITEM_SELECTOR
53+
);
2854
this.detectionsPanelAttacksNavItem = this.page.testSubj.locator(
29-
ATTACKS_NAV_PANEL_ITEM_SELECTOR
55+
STATEFUL_ATTACKS_NAV_PANEL_ITEM_SELECTOR
56+
);
57+
this.detectionsNavItemButton = this.page.testSubj.locator(
58+
STATEFUL_DETECTIONS_NAV_ITEM_BUTTON_SELECTOR
3059
);
31-
this.detectionsNavItemButton = this.page.testSubj.locator(DETECTIONS_NAV_ITEM_BUTTON_SELECTOR);
3260
}
3361

3462
async navigate() {

x-pack/solutions/security/packages/kbn-scout-security/src/playwright/fixtures/test/page_objects/index.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* 2.0.
66
*/
77

8-
import type { PageObjects, ScoutPage } from '@kbn/scout';
8+
import type { PageObjects, ScoutPage, ScoutTestConfig } from '@kbn/scout';
99
import { createLazyPageObject } from '@kbn/scout';
1010
import { AlertsTablePage } from './alerts_table';
1111
import { AlertDetailsRightPanelPage } from './alert_details_right_panel';
@@ -23,14 +23,22 @@ export interface SecurityPageObjects extends PageObjects {
2323
detectionsAttackDiscoveryPage: DetectionsAttackDiscoveryPage;
2424
}
2525

26-
export function extendPageObjects(pageObjects: PageObjects, page: ScoutPage): SecurityPageObjects {
26+
export function extendPageObjects(
27+
pageObjects: PageObjects,
28+
page: ScoutPage,
29+
config: ScoutTestConfig
30+
): SecurityPageObjects {
2731
return {
2832
...pageObjects,
2933
alertsTablePage: createLazyPageObject(AlertsTablePage, page),
3034
alertDetailsRightPanelPage: createLazyPageObject(AlertDetailsRightPanelPage, page),
3135
entityAnalyticsDashboardsPage: createLazyPageObject(EntityAnalyticsDashboardsPage, page),
3236
cspmIntegrationPage: createLazyPageObject(CspmIntegrationPage, page),
3337
timelinePage: createLazyPageObject(TimelinePage, page),
34-
detectionsAttackDiscoveryPage: createLazyPageObject(DetectionsAttackDiscoveryPage, page),
38+
detectionsAttackDiscoveryPage: createLazyPageObject(
39+
DetectionsAttackDiscoveryPage,
40+
page,
41+
config
42+
),
3543
};
3644
}

0 commit comments

Comments
 (0)