|
7 | 7 |
|
8 | 8 | import { expect } from '@kbn/scout-oblt'; |
9 | 9 | import { test, testData } from '../../fixtures'; |
| 10 | +import { EXTENDED_TIMEOUT } from '../../fixtures/constants'; |
| 11 | + |
| 12 | +const specialServiceName = 'service 1 / ? # [ ] @ ! $ & ( ) * + , ; = < > % {} | ^ ` <>'; |
10 | 13 |
|
11 | 14 | test.describe('Service overview - header filters', { tag: ['@ess', '@svlOblt'] }, () => { |
12 | 15 | test.beforeEach(async ({ browserAuth }) => { |
@@ -42,52 +45,52 @@ test.describe('Service overview - header filters', { tag: ['@ess', '@svlOblt'] } |
42 | 45 | }); |
43 | 46 | }); |
44 | 47 |
|
45 | | - test('Filtering by searchbar - filters by transaction.name', async ({ |
| 48 | + test('Filtering by searchbar - filters by service.name with special characters', async ({ |
46 | 49 | page, |
47 | 50 | pageObjects: { serviceDetailsPage }, |
48 | 51 | }) => { |
49 | | - await test.step('Navigate to opbeans-java service overview', async () => { |
| 52 | + await test.step('Navigate to special service overview', async () => { |
50 | 53 | await serviceDetailsPage.overviewTab.goToTab({ |
51 | | - serviceName: testData.SERVICE_OPBEANS_JAVA, |
| 54 | + serviceName: testData.SERVICE_OPBEANS_NODE, |
52 | 55 | rangeFrom: testData.START_DATE, |
53 | 56 | rangeTo: testData.END_DATE, |
54 | 57 | }); |
55 | 58 | }); |
56 | 59 |
|
57 | 60 | await test.step('Verify service name is visible', async () => { |
58 | | - await expect(page.getByTestId('apmMainTemplateHeaderServiceName')).toHaveText('opbeans-java'); |
| 61 | + await expect(page.getByTestId('apmMainTemplateHeaderServiceName')).toHaveText( |
| 62 | + testData.SERVICE_OPBEANS_NODE |
| 63 | + ); |
| 64 | + await expect(page.getByTestId('instanceActionsButton_opbeans-node-prod-1')).toBeVisible({ |
| 65 | + timeout: EXTENDED_TIMEOUT, |
| 66 | + }); |
59 | 67 | }); |
60 | 68 |
|
61 | | - await test.step('Type transaction.n in searchbar and select autocomplete', async () => { |
| 69 | + await test.step('Filter by service.name with special characters', async () => { |
62 | 70 | const searchBar = page.getByTestId('apmUnifiedSearchBar'); |
63 | | - await searchBar.fill('transaction.n'); |
64 | | - await expect(page.getByText('transaction.name', { exact: true })).toBeVisible(); |
65 | | - await page.getByTestId('autocompleteSuggestion-field-transaction.name-').click(); |
| 71 | + await expect(searchBar).toBeVisible({ timeout: EXTENDED_TIMEOUT }); |
| 72 | + await expect(searchBar).toHaveValue(''); |
| 73 | + await searchBar.fill(`service.name: "${specialServiceName}"`); |
| 74 | + await expect(searchBar).toHaveValue(`service.name: "${specialServiceName}"`); |
| 75 | + await expect(page.getByTestId('querySubmitButton')).toHaveText('Update'); |
| 76 | + await searchBar.press('Enter'); |
66 | 77 | }); |
67 | 78 |
|
68 | | - await test.step('Type colon and wait for suggestions', async () => { |
69 | | - const searchBar = page.getByTestId('apmUnifiedSearchBar'); |
70 | | - await searchBar.type(':'); |
71 | | - |
72 | | - // Wait for suggestions API call |
73 | | - await page.waitForResponse((response) => |
74 | | - response.url().includes('/internal/kibana/suggestions/values/') |
75 | | - ); |
76 | | - }); |
| 79 | + await test.step('Verify URL contains special service name', async () => { |
| 80 | + await expect(page.getByTestId('querySubmitButton')).toHaveText('Refresh'); |
77 | 81 |
|
78 | | - await test.step('Verify autocomplete suggestions and select value', async () => { |
79 | | - await expect(page.getByTestId('autoCompleteSuggestionText')).toHaveCount(1); |
80 | | - await page.getByTestId('autocompleteSuggestion-value-"GET-/api/product"-').click(); |
81 | | - }); |
| 82 | + await expect(page.getByTestId('transactionBreakdownChart')).toHaveText('No data to display', { |
| 83 | + timeout: EXTENDED_TIMEOUT, |
| 84 | + }); |
82 | 85 |
|
83 | | - await test.step('Submit search and verify URL contains kuery', async () => { |
84 | | - const searchBar = page.getByTestId('apmUnifiedSearchBar'); |
85 | | - await searchBar.press('Escape'); |
86 | | - await searchBar.press('Enter'); |
| 86 | + await page.waitForURL( |
| 87 | + (url) => { |
| 88 | + return url.toString().includes(encodeURIComponent(specialServiceName)); |
| 89 | + }, |
| 90 | + { timeout: EXTENDED_TIMEOUT } |
| 91 | + ); |
87 | 92 |
|
88 | | - // Wait for URL to update with kuery parameter |
89 | | - await page.waitForURL(/kuery=transaction\.name/); |
90 | | - expect(page.url()).toContain('&kuery=transaction.name%20:%22GET%20%2Fapi%2Fproduct%22%20'); |
| 93 | + expect(page.url()).toContain(encodeURIComponent(specialServiceName)); |
91 | 94 | }); |
92 | 95 | }); |
93 | 96 | }); |
0 commit comments