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: '/'}, {}))
    })
  • 相关阅读:
    spring mvc EL ModelAndView的 Model 值 在jsp中不显示
    maven修改本地仓库,远程仓库与中央仓库
    Maven 手动添加 JAR 包到本地仓库
    Maven项目的结构分析
    Maven 构建配置文件
    SVN使用出现的问题及解决方案
    Eclipse中SVN的安装步骤(两种)和使用方法
    Eclipse SVN 使用教程
    svn使用教程总结
    eclipse下配置安装ssm图文教程(web版)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12819224.html
Copyright © 2011-2022 走看看