diff --git a/frontend/src/pages/__tests__/ProxyHosts-coverage.test.tsx b/frontend/src/pages/__tests__/ProxyHosts-coverage.test.tsx
index 59b1188d..da680637 100644
--- a/frontend/src/pages/__tests__/ProxyHosts-coverage.test.tsx
+++ b/frontend/src/pages/__tests__/ProxyHosts-coverage.test.tsx
@@ -438,7 +438,7 @@ describe('ProxyHosts - Coverage enhancements', () => {
renderWithProviders()
await waitFor(() => expect(screen.getByText('One')).toBeTruthy())
- const anchor = screen.getByRole('link', { name: /test1.example.com|example.com|One/i })
+ const anchor = screen.getByRole('link', { name: /(test1\.example\.com|example\.com|One)/i })
await userEvent.click(anchor)
expect(openSpy).toHaveBeenCalled()
openSpy.mockRestore()
@@ -453,7 +453,7 @@ describe('ProxyHosts - Coverage enhancements', () => {
renderWithProviders()
await waitFor(() => expect(screen.getByText('One')).toBeTruthy())
- const anchor = screen.getByRole('link', { name: /example.com|One/i })
+ const anchor = screen.getByRole('link', { name: /(example\.com|One)/i })
// Anchor should render with target _self when same_tab
expect(anchor.getAttribute('target')).toBe('_self')
})
@@ -502,11 +502,22 @@ describe('ProxyHosts - Coverage enhancements', () => {
renderWithProviders()
await waitFor(() => expect(screen.getByText('Multi')).toBeTruthy())
- // Check multiple domain anchors
+ // Check multiple domain anchors; parse anchor hrefs instead of substring checks
const anchors = screen.getAllByRole('link')
- expect(anchors.some(a => a.textContent?.includes('one.com'))).toBeTruthy()
- expect(anchors.some(a => a.textContent?.includes('two.com'))).toBeTruthy()
- expect(anchors.some(a => a.textContent?.includes('three.com'))).toBeTruthy()
+ const anchorHasHost = (el: Element | null, host: string) => {
+ if (!el) return false
+ const href = el.getAttribute('href') || ''
+ try {
+ // Use base to resolve relative URLs
+ const parsed = new URL(href, 'http://localhost')
+ return parsed.host === host
+ } catch {
+ return el.textContent?.includes(host) ?? false
+ }
+ }
+ expect(anchors.some(a => anchorHasHost(a, 'one.com'))).toBeTruthy()
+ expect(anchors.some(a => anchorHasHost(a, 'two.com'))).toBeTruthy()
+ expect(anchors.some(a => anchorHasHost(a, 'three.com'))).toBeTruthy()
// Check websocket label exists since websocket_support true
expect(screen.getByText('WS')).toBeTruthy()
})
diff --git a/frontend/src/pages/__tests__/ProxyHosts-progress.test.tsx b/frontend/src/pages/__tests__/ProxyHosts-progress.test.tsx
index e0c62238..2c513523 100644
--- a/frontend/src/pages/__tests__/ProxyHosts-progress.test.tsx
+++ b/frontend/src/pages/__tests__/ProxyHosts-progress.test.tsx
@@ -122,7 +122,7 @@ describe('ProxyHosts progress apply', () => {
renderWithProviders()
await waitFor(() => expect(screen.getByText('One')).toBeTruthy())
- const anchor = screen.getByRole('link', { name: /example.com/i })
+ const anchor = screen.getByRole('link', { name: /example\.com/i })
expect(anchor.getAttribute('target')).toBe('_self')
})
})