11import { expect , mockData , mockRoutes , test } from "./fixtures" ;
22
3- test . describe ( "Agent Stats Tab" , ( ) => {
3+ test . describe ( "Agent Monitoring Tab" , ( ) => {
44 test . beforeEach ( async ( { mockedPage } ) => {
55 // Navigate to agent detail page
66 await mockedPage . goto ( "/agents/agent-1" ) ;
@@ -10,7 +10,7 @@ test.describe("Agent Stats Tab", () => {
1010
1111 test ( "should display stats tab and navigate to it" , async ( { mockedPage } ) => {
1212 // Stats tab should be visible
13- const statsTab = mockedPage . getByRole ( "tab" , { name : "Stats " } ) ;
13+ const statsTab = mockedPage . getByRole ( "tab" , { name : "Monitoring " } ) ;
1414 await expect ( statsTab ) . toBeVisible ( ) ;
1515
1616 // Click on stats tab
@@ -26,17 +26,17 @@ test.describe("Agent Stats Tab", () => {
2626 mockedPage,
2727 } ) => {
2828 // Navigate to stats tab
29- await mockedPage . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
29+ await mockedPage . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
3030
31- // Time range selector should be visible with default "Last 1 hour"
32- const timeRangeSelect = mockedPage . getByRole ( "textbox" , { name : "Time Range" } ) ;
33- await expect ( timeRangeSelect ) . toBeVisible ( ) ;
34- await expect ( timeRangeSelect ) . toHaveValue ( "Last 1 hour" ) ;
31+ // Time range selector should be visible (TimeRangeSwitch component)
32+ // Look for the component by finding the segment buttons or menu button
33+ const timeRangeSwitch = mockedPage . locator ( '[class*="TimeRangeSwitch"]' ) . first ( ) ;
34+ await expect ( timeRangeSwitch ) . toBeVisible ( ) ;
3535 } ) ;
3636
3737 test ( "should display summary statistics" , async ( { mockedPage } ) => {
3838 // Navigate to stats tab
39- await mockedPage . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
39+ await mockedPage . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
4040
4141 // Check total executions
4242 await expect (
@@ -51,7 +51,7 @@ test.describe("Agent Stats Tab", () => {
5151
5252 test ( "should display actions distribution section" , async ( { mockedPage } ) => {
5353 // Navigate to stats tab
54- await mockedPage . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
54+ await mockedPage . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
5555
5656 // Check actions distribution header
5757 await expect ( mockedPage . getByText ( "Actions Distribution" ) ) . toBeVisible ( ) ;
@@ -65,7 +65,7 @@ test.describe("Agent Stats Tab", () => {
6565
6666 test ( "should display per-control statistics table" , async ( { mockedPage } ) => {
6767 // Navigate to stats tab
68- await mockedPage . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
68+ await mockedPage . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
6969
7070 // Check table header
7171 await expect (
@@ -88,35 +88,36 @@ test.describe("Agent Stats Tab", () => {
8888
8989 test ( "should display control names in the table" , async ( { mockedPage } ) => {
9090 // Navigate to stats tab
91- await mockedPage . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
91+ await mockedPage . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
9292
9393 // Check control names from mock data - scope to Stats panel table
94- const statsTable = mockedPage . getByRole ( "tabpanel" , { name : / S t a t s / i } ) . getByRole ( "table" ) ;
94+ const statsTable = mockedPage . getByRole ( "tabpanel" , { name : / M o n i t o r i n g / i } ) . getByRole ( "table" ) ;
9595 for ( const stat of mockData . stats . stats ) {
9696 await expect ( statsTable . getByText ( stat . control_name ) ) . toBeVisible ( ) ;
9797 }
9898 } ) ;
9999
100100 test ( "should allow changing time range" , async ( { mockedPage } ) => {
101101 // Navigate to stats tab
102- await mockedPage . getByRole ( "tab" , { name : "Stats" } ) . click ( ) ;
103-
104- // Open time range selector
105- const timeRangeSelect = mockedPage . getByRole ( "textbox" , { name : "Time Range" } ) ;
106- await timeRangeSelect . click ( ) ;
107-
108- // Select a different time range
109- await mockedPage . getByRole ( "option" , { name : "Last 24 hours" } ) . click ( ) ;
110-
111- // Verify the selection changed
112- await expect ( timeRangeSelect ) . toHaveValue ( "Last 24 hours" ) ;
102+ await mockedPage . getByRole ( "tab" , { name : "Monitoring" } ) . click ( ) ;
103+
104+ // TimeRangeSwitch should be visible and allow changing time range
105+ // The component has segment buttons for quick selection
106+ const timeRangeSwitch = mockedPage . locator ( '[class*="TimeRangeSwitch"]' ) . first ( ) ;
107+ await expect ( timeRangeSwitch ) . toBeVisible ( ) ;
108+
109+ // Try clicking on a segment button (e.g., "1D" for 24 hours)
110+ const oneDayButton = mockedPage . getByRole ( "button" , { name : / 1 D / i } ) . first ( ) ;
111+ if ( await oneDayButton . isVisible ( ) ) {
112+ await oneDayButton . click ( ) ;
113+ }
113114 } ) ;
114115
115116 test ( "should show error badges for controls with errors" , async ( {
116117 mockedPage,
117118 } ) => {
118119 // Navigate to stats tab
119- await mockedPage . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
120+ await mockedPage . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
120121
121122 // SQL Injection Guard has 2 errors in mock data
122123 // Find the row and check for error count
@@ -128,7 +129,7 @@ test.describe("Agent Stats Tab", () => {
128129 mockedPage,
129130 } ) => {
130131 // Navigate to stats tab
131- await mockedPage . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
132+ await mockedPage . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
132133
133134 // Check that confidence percentages are displayed
134135 // PII Detection has 92% confidence
@@ -140,7 +141,7 @@ test.describe("Agent Stats Tab", () => {
140141 } ) ;
141142} ) ;
142143
143- test . describe ( "Agent Stats Tab - Empty State" , ( ) => {
144+ test . describe ( "Agent Monitoring Tab - Empty State" , ( ) => {
144145 test ( "should show empty state when no stats available" , async ( { page } ) => {
145146 // Set up mocks with empty stats
146147 await mockRoutes . agents ( page ) ;
@@ -152,10 +153,11 @@ test.describe("Agent Stats Tab - Empty State", () => {
152153 await expect ( page . getByText ( "Customer Support Bot" ) ) . toBeVisible ( ) ;
153154
154155 // Navigate to stats tab
155- await page . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
156+ await page . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
156157
157- // Time range selector should still be visible in empty state
158- await expect ( page . getByRole ( "textbox" , { name : "Time Range" } ) ) . toBeVisible ( ) ;
158+ // Time range selector should still be visible in empty state (TimeRangeSwitch)
159+ const timeRangeSwitch = page . locator ( '[class*="TimeRangeSwitch"]' ) . first ( ) ;
160+ await expect ( timeRangeSwitch ) . toBeVisible ( ) ;
159161
160162 // Should show empty state message
161163 await expect ( page . getByText ( "No stats available" ) ) . toBeVisible ( ) ;
@@ -165,7 +167,7 @@ test.describe("Agent Stats Tab - Empty State", () => {
165167 } ) ;
166168} ) ;
167169
168- test . describe ( "Agent Stats Tab - Refetch Flow" , ( ) => {
170+ test . describe ( "Agent Monitoring Tab - Refetch Flow" , ( ) => {
169171 test ( "should update values when data is refetched" , async ( { page } ) => {
170172 let requestCount = 0 ;
171173
@@ -232,7 +234,7 @@ test.describe("Agent Stats Tab - Refetch Flow", () => {
232234 await expect ( page . getByText ( "Customer Support Bot" ) ) . toBeVisible ( ) ;
233235
234236 // Navigate to stats tab
235- await page . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
237+ await page . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
236238
237239 // Verify initial values are displayed (use first() to get summary stat, not table cell)
238240 await expect ( page . getByText ( "100" , { exact : true } ) . first ( ) ) . toBeVisible ( ) ;
@@ -250,7 +252,7 @@ test.describe("Agent Stats Tab - Refetch Flow", () => {
250252 } ) ;
251253} ) ;
252254
253- test . describe ( "Agent Stats Tab - Error State" , ( ) => {
255+ test . describe ( "Agent Monitoring Tab - Error State" , ( ) => {
254256 test ( "should show error state when API fails" , async ( { page } ) => {
255257 // Set up mocks with failing stats endpoint
256258 await mockRoutes . agents ( page ) ;
@@ -262,7 +264,7 @@ test.describe("Agent Stats Tab - Error State", () => {
262264 await expect ( page . getByText ( "Customer Support Bot" ) ) . toBeVisible ( ) ;
263265
264266 // Navigate to stats tab
265- await page . getByRole ( "tab" , { name : "Stats " } ) . click ( ) ;
267+ await page . getByRole ( "tab" , { name : "Monitoring " } ) . click ( ) ;
266268
267269 // Should show error state
268270 await expect ( page . getByText ( "Failed to load stats" ) ) . toBeVisible ( ) ;
0 commit comments