Skip to content

Commit eee57e0

Browse files
m3hranshJenkins
authored andcommitted
OTel: Custom Services empty state and Add creation entry point
* Add empty-state to the Custom Services page (icon, message, Add button) * Add "Add custom service" page-menu shortcut * Add empty ModeCreateCustomService (mode=create_otel_custom_service) and register it * Extend E2E: page object for the creation page; test follows the Add flow CMK-36035 Change-Id: Ibdfbc9041d9b8810b1a7af2ba4be8af2daf0ba48
1 parent 3bbcc78 commit eee57e0

2 files changed

Lines changed: 47 additions & 1 deletion

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/env python3
2+
# Copyright (C) 2026 Checkmk GmbH - License: GNU General Public License v2
3+
# This file is part of Checkmk (https://checkmk.com). It is subject to the terms and
4+
# conditions defined in the file COPYING, which is part of this source code package.
5+
import logging
6+
import re
7+
from typing import override
8+
9+
from tests.system.gui.testlib.playwright.helpers import DropdownListNameToID
10+
from tests.system.gui.testlib.playwright.pom.page import CmkPage
11+
from tests.system.gui.testlib.playwright.pom.setup.otel.custom_services import CustomServices
12+
13+
logger = logging.getLogger(__name__)
14+
15+
16+
class AddCustomService(CmkPage):
17+
"""Represent the page `Setup -> Telemetry -> Custom Services -> Add custom service`.
18+
19+
Empty for now (CMK-36035) — only the navigation into the creation flow exists.
20+
"""
21+
22+
page_title = "Add custom service"
23+
24+
@override
25+
def navigate(self) -> None:
26+
logger.info("Navigate to '%s' page", self.page_title)
27+
custom_services_page = CustomServices(self.page)
28+
self.click_and_wait_for_navigation(
29+
custom_services_page.add_custom_service_button,
30+
frame_url=re.compile("mode=create_otel_custom_service"),
31+
)
32+
self.validate_page()
33+
34+
@override
35+
def validate_page(self) -> None:
36+
logger.info("Validate that current page is '%s' page", self.page_title)
37+
self.main_area.check_page_title(self.page_title)
38+
39+
@override
40+
def _dropdown_list_name_to_id(self) -> DropdownListNameToID:
41+
return DropdownListNameToID()

tests/system/gui/testlib/playwright/pom/setup/otel/custom_services.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import re
77
from typing import override
88

9-
from playwright.sync_api import Locator
9+
from playwright.sync_api import expect, Locator
1010

1111
from tests.system.gui.testlib.playwright.helpers import DropdownListNameToID
1212
from tests.system.gui.testlib.playwright.pom.page import CmkPage
@@ -34,6 +34,7 @@ def navigate(self) -> None:
3434
def validate_page(self) -> None:
3535
logger.info("Validate that current page is '%s' page", self.page_title)
3636
self.main_area.check_page_title(self.page_title)
37+
expect(self.add_custom_service_button).to_be_visible()
3738

3839
@override
3940
def _dropdown_list_name_to_id(self) -> DropdownListNameToID:
@@ -42,3 +43,7 @@ def _dropdown_list_name_to_id(self) -> DropdownListNameToID:
4243
@property
4344
def empty_state(self) -> Locator:
4445
return self.main_area.locator("div.no-config-bundles")
46+
47+
@property
48+
def add_custom_service_button(self) -> Locator:
49+
return self.main_area.get_suggestion("Add custom service")

0 commit comments

Comments
 (0)