Skip to content

Commit b66d6fb

Browse files
committed
fix failing CurrencyToggle test
1 parent b4644d6 commit b66d6fb

File tree

2 files changed

+43
-25
lines changed

2 files changed

+43
-25
lines changed

src/containers/Vault/VaultLoans/BrokerDetails.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
getCurrencySymbol,
1212
} from '../../shared/utils'
1313

14+
// TODO: Use types from xrpl.js instead of hand-writing it.
1415
interface LoanBrokerData {
1516
index: string
1617
Account: string

src/containers/Vault/test/CurrencyToggle.test.tsx

Lines changed: 42 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ describe('CurrencyToggle Component', () => {
7070
it('renders help icon', () => {
7171
const onToggle = jest.fn()
7272

73-
render(
73+
const { container } = render(
7474
<TestWrapper>
7575
<CurrencyToggle
7676
nativeCurrencyDisplay={<span>XRP</span>}
@@ -80,7 +80,9 @@ describe('CurrencyToggle Component', () => {
8080
</TestWrapper>,
8181
)
8282

83-
expect(screen.getByText('?')).toBeInTheDocument()
83+
expect(
84+
container.querySelector('.currency-toggle-wrapper > .hover'),
85+
).toBeInTheDocument()
8486
})
8587
})
8688

@@ -304,7 +306,7 @@ describe('CurrencyToggle Component', () => {
304306
it('shows unavailable tooltip on hover when USD is disabled', () => {
305307
const onToggle = jest.fn()
306308

307-
render(
309+
const { container } = render(
308310
<TestWrapper>
309311
<CurrencyToggle
310312
nativeCurrencyDisplay={<span>XRP</span>}
@@ -315,22 +317,26 @@ describe('CurrencyToggle Component', () => {
315317
</TestWrapper>,
316318
)
317319

318-
const usdButton = screen.getByText('USD')
319-
// Mouse events are on the wrapper span, not the disabled button
320-
const wrapper = usdButton.parentElement!
321-
fireEvent.mouseEnter(wrapper)
320+
const hoverIcon = container.querySelector(
321+
'.toggle-option-wrapper .hover',
322+
)!
323+
fireEvent.mouseOver(hoverIcon)
322324

323325
expect(mockShowTooltip).toHaveBeenCalledWith(
324326
'text',
325327
expect.any(Object),
326328
'USD conversion not available for this token',
329+
expect.objectContaining({
330+
x: expect.any(Number),
331+
y: expect.any(Number),
332+
}),
327333
)
328334
})
329335

330336
it('hides tooltip on mouse leave', () => {
331337
const onToggle = jest.fn()
332338

333-
render(
339+
const { container } = render(
334340
<TestWrapper>
335341
<CurrencyToggle
336342
nativeCurrencyDisplay={<span>XRP</span>}
@@ -341,11 +347,11 @@ describe('CurrencyToggle Component', () => {
341347
</TestWrapper>,
342348
)
343349

344-
const usdButton = screen.getByText('USD')
345-
// Mouse events are on the wrapper span, not the disabled button
346-
const wrapper = usdButton.parentElement!
347-
fireEvent.mouseEnter(wrapper)
348-
fireEvent.mouseLeave(wrapper)
350+
const hoverIcon = container.querySelector(
351+
'.toggle-option-wrapper .hover',
352+
)!
353+
fireEvent.mouseOver(hoverIcon)
354+
fireEvent.mouseLeave(hoverIcon)
349355

350356
expect(mockHideTooltip).toHaveBeenCalled()
351357
})
@@ -433,7 +439,7 @@ describe('CurrencyToggle Component', () => {
433439
it('shows loading tooltip on hover when loading', () => {
434440
const onToggle = jest.fn()
435441

436-
render(
442+
const { container } = render(
437443
<TestWrapper>
438444
<CurrencyToggle
439445
nativeCurrencyDisplay={<span>XRP</span>}
@@ -444,15 +450,19 @@ describe('CurrencyToggle Component', () => {
444450
</TestWrapper>,
445451
)
446452

447-
const loadingButton = screen.getByText('...')
448-
// Mouse events are on the wrapper span, not the disabled button
449-
const wrapper = loadingButton.parentElement!
450-
fireEvent.mouseEnter(wrapper)
453+
const hoverIcon = container.querySelector(
454+
'.toggle-option-wrapper .hover',
455+
)!
456+
fireEvent.mouseOver(hoverIcon)
451457

452458
expect(mockShowTooltip).toHaveBeenCalledWith(
453459
'text',
454460
expect.any(Object),
455461
'Loading USD conversion rate...',
462+
expect.objectContaining({
463+
x: expect.any(Number),
464+
y: expect.any(Number),
465+
}),
456466
)
457467
})
458468
})
@@ -467,7 +477,7 @@ describe('CurrencyToggle Component', () => {
467477
it('shows help tooltip on hover', () => {
468478
const onToggle = jest.fn()
469479

470-
render(
480+
const { container } = render(
471481
<TestWrapper>
472482
<CurrencyToggle
473483
nativeCurrencyDisplay={<span>EUR</span>}
@@ -477,21 +487,26 @@ describe('CurrencyToggle Component', () => {
477487
</TestWrapper>,
478488
)
479489

480-
const helpIcon = screen.getByText('?')
481-
fireEvent.mouseEnter(helpIcon)
490+
const helpIcon = container.querySelector(
491+
'.currency-toggle-wrapper > .hover',
492+
)!
493+
fireEvent.mouseOver(helpIcon)
482494

483-
// The tooltip text is a static i18n key
484495
expect(mockShowTooltip).toHaveBeenCalledWith(
485496
'text',
486497
expect.any(Object),
487498
'Toggle to view values in native-currency or USD',
499+
expect.objectContaining({
500+
x: expect.any(Number),
501+
y: expect.any(Number),
502+
}),
488503
)
489504
})
490505

491506
it('hides help tooltip on mouse leave', () => {
492507
const onToggle = jest.fn()
493508

494-
render(
509+
const { container } = render(
495510
<TestWrapper>
496511
<CurrencyToggle
497512
nativeCurrencyDisplay={<span>XRP</span>}
@@ -501,8 +516,10 @@ describe('CurrencyToggle Component', () => {
501516
</TestWrapper>,
502517
)
503518

504-
const helpIcon = screen.getByText('?')
505-
fireEvent.mouseEnter(helpIcon)
519+
const helpIcon = container.querySelector(
520+
'.currency-toggle-wrapper > .hover',
521+
)!
522+
fireEvent.mouseOver(helpIcon)
506523
fireEvent.mouseLeave(helpIcon)
507524

508525
expect(mockHideTooltip).toHaveBeenCalled()

0 commit comments

Comments
 (0)