zoukankan      html  css  js  c++  java
  • [React Testing] Test Drive Assertions with Dates in React

    Just make sure the date is in a range then it is fine

    import React from 'react'
    import {render, fireEvent, waitFor} from '@testing-library/react'
    import {Redirect as MockRedirect} from 'react-router'
    import {savePost as mockSavePost} from '../api'
    import {Editor} from '../post-editor-05-dates'
    
    jest.mock('react-router', () => {
      return {
        Redirect: jest.fn(() => null),
      }
    })
    
    jest.mock('../api')
    
    afterEach(() => {
      jest.clearAllMocks()
    })
    
    test('renders a form with title, content, tags, and a submit button', async () => {
      mockSavePost.mockResolvedValueOnce()
      const fakeUser = {id: 'user-1'}
      const {getByLabelText, getByText} = render(<Editor user={fakeUser} />)
      const fakePost = {
        title: 'Test Title',
        content: 'Test content',
        tags: ['tag1', 'tag2'],
      }
      const preDate = new Date().getTime()
    
      getByLabelText(/title/i).value = fakePost.title
      getByLabelText(/content/i).value = fakePost.content
      getByLabelText(/tags/i).value = fakePost.tags.join(', ')
      const submitButton = getByText(/submit/i)
    
      fireEvent.click(submitButton)
    
      expect(submitButton).toBeDisabled()
    
      expect(mockSavePost).toHaveBeenCalledWith({
        ...fakePost,
        date: expect.any(String),
        authorId: fakeUser.id,
      })
      expect(mockSavePost).toHaveBeenCalledTimes(1)
    
      const postDate = new Date().getTime()
      const date = new Date(mockSavePost.mock.calls[0][0].date).getTime()
      expect(date).toBeGreaterThanOrEqual(preDate)
      expect(date).toBeLessThanOrEqual(postDate)
    
      await waitFor(() => expect(MockRedirect).toHaveBeenCalledWith({to: '/'}, {}))
    })
  • 相关阅读:
    linux下mysql命令大全
    Linux 随记
    Linux服务器部署系列之八—Sendmail篇
    Linux服务器部署系列之六—远程管理篇
    ubuntu简易教程(如何使用noi linux)
    51nod1254 最大子段和 V2 DP
    [HAOI2007]理想的正方形 st表 || 单调队列
    [LG1886]滑动窗口 单调队列
    [51nod1791] 合法括号子段 DP
    [51nod1503]猪和回文 DP
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12819224.html
Copyright © 2011-2022 走看看