написать случай модуля для event.preventDefault, используя jest - PullRequest
0 голосов
/ 03 апреля 2020

Я новичок в jest, мне нужна помощь для написания юнит-случая для event.preventDefault с использованием jest в реагировать, ниже мой код,

export const removeValuesFromTextAreaEvent = ({ removeValuesFromTextArea }) => (
  event,
  rows
) => {
  event.preventDefault();

  removeValuesFromTextArea({ rowID: rows });
};

Я получаю

TypeError: Невозможно прочитать свойство 'protectDefault' из неопределенного.

Тест

describe("removeValuesFromTextAreaEvent", () => {
  it("returns a function that calls removeValuesFromTextAreaEvent with rows", () => {
    const removeValuesFromTextArea = jest.fn();
    const rowID = 1;
    const event = { preventDefault: jest.fn() };
    removeValuesFromTextAreaEvent({ removeValuesFromTextArea })(event);
    expect(event.preventDefault).toHaveBeenCalled();
    removeValuesFromTextAreaEvent({ rowID, removeValuesFromTextArea })();
    expect(removeValuesFromTextArea).toHaveBeenCalledWith({ rowID });
  });
});

1 Ответ

0 голосов
/ 07 апреля 2020

Вот решение для модульного теста:

index.js:

export const removeValuesFromTextAreaEvent = ({ removeValuesFromTextArea }) => (event, rows) => {
  event.preventDefault();
  removeValuesFromTextArea({ rowID: rows });
};

index.test.js:

import { removeValuesFromTextAreaEvent } from './';

describe('removeValuesFromTextAreaEvent', () => {
  it('returns a function that calls removeValuesFromTextAreaEvent with rows', () => {
    const removeValuesFromTextArea = jest.fn();
    const rowID = 1;
    const event = { preventDefault: jest.fn() };
    removeValuesFromTextAreaEvent({ removeValuesFromTextArea })(event, rowID);
    expect(event.preventDefault).toHaveBeenCalled();
    expect(removeValuesFromTextArea).toHaveBeenCalledWith({ rowID });
  });
});

Результаты модульного теста со 100% покрытием:

 PASS  stackoverflow/61014741/index.test.js (8.616s)
  removeValuesFromTextAreaEvent
    ✓ returns a function that calls removeValuesFromTextAreaEvent with rows (3ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |     100 |      100 |     100 |     100 |                   
 index.js |     100 |      100 |     100 |     100 |                   
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        10.24s
...