1- import { mount } from 'enzyme '
1+ import { render , screen , cleanup } from '@testing-library/react '
22import { Route } from 'react-router'
33import mockLedger from './storedLedger.json'
44import i18n from '../../../i18n/testConfig'
@@ -20,127 +20,117 @@ jest.mock('../../../rippled', () => {
2020const mockedGetLedger = getLedger
2121
2222describe ( 'Ledger container' , ( ) => {
23- const createWrapper = ( identifier = 38079857 ) =>
24- mount (
23+ const renderComponent = ( identifier = 38079857 ) =>
24+ render (
2525 < QuickHarness i18n = { i18n } initialEntries = { [ `/ledgers/${ identifier } ` ] } >
2626 < Route path = "/ledgers/:identifier" element = { < Ledger /> } />
2727 </ QuickHarness > ,
2828 )
2929
3030 afterEach ( ( ) => {
31+ cleanup ( )
3132 mockedGetLedger . mockReset ( )
3233 } )
3334
3435 it ( 'renders without crashing' , ( ) => {
35- const wrapper = createWrapper ( )
36- wrapper . unmount ( )
36+ renderComponent ( )
3737 } )
3838
3939 it ( 'renders loading' , ( ) => {
40- const wrapper = createWrapper ( )
41- expect ( wrapper . find ( '.loader' ) . length ) . toBe ( 1 )
42- wrapper . unmount ( )
40+ renderComponent ( )
41+ expect ( screen . queryAllByTestId ( 'loader' ) ) . toBeDefined ( )
4342 } )
4443
4544 it ( 'renders ledger navbar' , async ( ) => {
4645 mockedGetLedger . mockImplementation ( ( ) => Promise . resolve ( mockLedger ) )
4746
48- const wrapper = createWrapper ( )
47+ renderComponent ( )
4948 await flushPromises ( )
50- wrapper . update ( )
5149
52- const header = wrapper . find ( '.ledger-header' )
53- expect ( header . length ) . toBe ( 1 )
54- expect ( header . find ( '.ledger-nav' ) . length ) . toBe ( 1 )
55- expect ( header . find ( '.ledger-nav a' ) . length ) . toBe ( 2 )
56- wrapper . unmount ( )
50+ const header = screen . queryAllByTestId ( 'ledger-header' )
51+ expect ( header ) . toBeDefined ( )
52+ expect ( header . queryByTestId ( 'ledger-nav' ) ) . toBeDefined ( )
53+ expect ( header . queryByTestId ( 'ledger-nav a' ) ) . toHaveLength ( 2 )
5754 } )
5855
5956 it ( 'renders ledger summary' , async ( ) => {
6057 mockedGetLedger . mockImplementation ( ( ) => Promise . resolve ( mockLedger ) )
6158
62- const wrapper = createWrapper ( )
59+ renderComponent ( )
6360 await flushPromises ( )
64- wrapper . update ( )
6561
66- const summary = wrapper . find ( '.ledger-header . ledger-info')
62+ const summary = screen . queryAllByTestId ( ' ledger-info')
6763
68- expect ( summary . length ) . toBe ( 1 )
69- expect ( summary . find ( '.ledger-cols' ) . length ) . toBe ( 1 )
70- expect ( summary . find ( '.ledger-col' ) . length ) . toBe ( 3 )
71- expect ( summary . find ( '.ledger-index' ) . length ) . toBe ( 1 )
72- expect ( summary . find ( '.closed-date' ) . length ) . toBe ( 1 )
73- expect ( summary . find ( '.ledger-hash' ) . length ) . toBe ( 1 )
74-
75- wrapper . unmount ( )
64+ expect ( summary ) . toBeDefined ( )
65+ expect ( summary . queryByTestId ( 'ledger-cols' ) ) . toBeDefined ( )
66+ expect ( summary . queryByTestId ( 'ledger-col' ) ) . toHaveLength ( 3 )
67+ expect ( summary . queryByTestId ( 'ledger-index' ) ) . toBeDefined ( )
68+ expect ( summary . queryByTestId ( 'closed-date' ) ) . toBeDefined ( )
69+ expect ( summary . queryByTestId ( 'ledger-hash' ) ) . toBeDefined ( )
7670 } )
7771
7872 it ( 'renders transaction table header' , async ( ) => {
7973 mockedGetLedger . mockImplementation ( ( ) => Promise . resolve ( mockLedger ) )
8074
81- const wrapper = createWrapper ( )
75+ renderComponent ( )
8276 await flushPromises ( )
83- wrapper . update ( )
84-
85- const table = wrapper . find ( '.transaction-table' )
86- expect ( table . length ) . toBe ( 1 )
87- expect ( table . find ( '.transaction-li-header' ) . length ) . toBe ( 1 )
88- expect ( table . find ( '.transaction-li-header .col-type' ) . length ) . toBe ( 1 )
89- expect ( table . find ( '.transaction-li-header .col-account' ) . length ) . toBe ( 1 )
90- wrapper . unmount ( )
77+
78+ const table = screen . queryByTitle ( 'transaction-table' )
79+ expect ( table ) . toBeDefined ( )
80+ expect ( table . queryByTestId ( 'transaction-li-header' ) ) . toBeDefined ( )
81+ expect ( table . queryByTestId ( 'transaction-li-header .col-type' ) ) . toHaveLength (
82+ 1 ,
83+ )
84+ expect (
85+ table . queryByTestId ( 'transaction-li-header .col-account' ) ,
86+ ) . toBeDefined ( )
9187 } )
9288
9389 it ( 'renders all transactions' , async ( ) => {
9490 mockedGetLedger . mockImplementation ( ( ) => Promise . resolve ( mockLedger ) )
9591
96- const wrapper = createWrapper ( )
92+ renderComponent ( )
9793 await flushPromises ( )
98- wrapper . update ( )
9994
100- const table = wrapper . find ( '. transaction-table')
101- expect ( table . length ) . toBe ( 1 )
102- expect ( table . find ( '. transaction-li') . length ) . toBe (
95+ const table = screen . queryByTitle ( ' transaction-table')
96+ expect ( table ) . toBeDefined ( )
97+ expect ( table . queryByTestId ( ' transaction-li') ) . toHaveLength (
10398 mockLedger . transactions . length + 1 , // include the header
10499 )
105- wrapper . unmount ( )
106100 } )
107101
108102 it ( 'renders 404 page on no match' , async ( ) => {
109103 mockedGetLedger . mockImplementation ( ( ) =>
110104 Promise . reject ( new RippledError ( 'ledger not found' , 404 ) ) ,
111105 )
112106
113- const wrapper = createWrapper ( )
107+ renderComponent ( )
114108 await flushPromises ( )
115- wrapper . update ( )
116109
117- expect ( wrapper . find ( '.no-match .title' ) . text ( ) ) . toEqual ( 'ledger_not_found' )
118- wrapper . unmount ( )
110+ expect ( screen . queryByTitle ( 'no-match' ) ) . toHaveTextContent (
111+ 'ledger_not_found' ,
112+ )
119113 } )
120114
121115 it ( 'renders server error' , async ( ) => {
122116 mockedGetLedger . mockImplementation ( ( ) =>
123117 Promise . reject ( new RippledError ( 'ledger failed' , 500 ) ) ,
124118 )
125119
126- const wrapper = createWrapper ( )
120+ renderComponent ( )
127121 await flushPromises ( )
128- wrapper . update ( )
129122
130- expect ( wrapper . find ( '.no-match .title' ) . text ( ) ) . toEqual ( 'generic_error' )
131- wrapper . unmount ( )
123+ expect ( screen . getByTitle ( 'no-match' ) ) . toHaveTextContent ( 'generic_error' )
132124 } )
133125
134126 it ( 'renders invalid id error' , async ( ) => {
135127 mockedGetLedger . mockImplementation ( ( ) =>
136128 Promise . reject ( new RippledError ( 'invalid ledger index/hash' , 400 ) ) ,
137129 )
138130
139- const wrapper = createWrapper ( 'aaaa' )
131+ renderComponent ( 'aaaa' )
140132 await flushPromises ( )
141- wrapper . update ( )
142133
143- expect ( wrapper . find ( '.no-match .title' ) . text ( ) ) . toEqual ( 'invalid_ledger_id' )
144- wrapper . unmount ( )
134+ expect ( screen . getByTitle ( 'no-match' ) ) . toHaveTextContent ( 'invalid_ledger_id' )
145135 } )
146136} )
0 commit comments