Difference between revisions of "Jest"

From Wasya Wiki
Jump to: navigation, search
(mock router)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
  
<pre>
+
== does the element exist? ==
  
 +
    logg(w.find('.BackBtn').exists(), 'found?')
 +
 +
== dump the DOM ==
 +
 +
  render(<App />)
 +
  logg(document, 'screen')
 +
 +
== mock router ==
 +
<pre>
 
// const mockPush = jest.fn()
 
// const mockPush = jest.fn()
 
// jest.mock('react-router-dom', () => {
 
// jest.mock('react-router-dom', () => {
Line 13: Line 22:
 
//  }
 
//  }
 
// })
 
// })
 +
</pre>
 +
 +
From: https://stackoverflow.com/questions/58392815/how-to-mock-usehistory-hook-in-jest
 +
 +
<pre>
 +
jest.mock('react-router-dom', () => ({
 +
  ...jest.requireActual('react-router-dom'),
 +
  useHistory: () => ({
 +
    goBack: jest.fn()
 +
  })
 +
}));
 
</pre>
 
</pre>
  

Latest revision as of 18:02, 15 April 2025

does the element exist?

   logg(w.find('.BackBtn').exists(), 'found?')

dump the DOM

 render(<App />)
 logg(document, 'screen')

mock router

// const mockPush = jest.fn()
// jest.mock('react-router-dom', () => {
//   const originalModule = jest.requireActual('react-router-dom')
//   return {
//     __esModule: true,
//     ...originalModule,
//     useHistory: () => ({
//       push: mockPush,
//     }),
//   }
// })

From: https://stackoverflow.com/questions/58392815/how-to-mock-usehistory-hook-in-jest

jest.mock('react-router-dom', () => ({
  ...jest.requireActual('react-router-dom'),
  useHistory: () => ({
    goBack: jest.fn()
  })
}));

mock api

jest.mock('$shared/Api')
// jest.mock('$shared/Api', () => {
//   return {
//     __esModule: true,
//     default: () => {
//       return {
//         getCity: () => {
//           return new Promise((resolve, reject) => {
//             resolve({
//               data: {
//                 city: {
//                   newsitems: [{ name: 'report-name-2', item_type: 'Report' }]
//                 }
//               }
//             })
//           })
//         },
//       }
//     },
//   }
// })