Не могу понять, почему похожий тест делает 1 проход, а не другой, не могу его определить - PullRequest
0 голосов
/ 17 февраля 2019

Это простой тест имитации комментария, существующего в textarea, в то время как первый тест проходит, следующий симулирует отправку текста из textarea, запускает handleSubmit (подключенный к моей форме на данный момент), который очищает текстовую область, но тест, указывающий, что комментарий являетсяожидается (указывает на => .toEqual ("");

  beforeEach(() => {
    wrapper.find("textarea").simulate("change", {
      target: { value: "new comment" }
    });


    wrapper.update();
  });

  it("has a text area that user can type into", () => {
    expect(wrapper.find("textarea").prop("value")).toEqual("new comment");
  });

  it("simulate button click (in real form submit) and clear textarea", () => {
    wrapper.update();
    wrapper.find("form").simulate("submit");
    wrapper.update();
    expect(wrapper.find("textarea").prop("value")).toEqual("");
  });
});

edit: here's the component I wanted to test...

    import React, { Component } from "react";
import { connect } from "react-redux";
import * as actions from "../actions";

class CommentBox extends Component {
  state = {
    comment: ""
  };

  handleChange = e => {
    e.preventDefault();
    this.setState({ comment: e.target.value });
  };

  handleSubmit = e => {
    e.preventDefault();
    this.props.saveComment(this.state.comment);
    this.setState({ comment: "" });
  };

  render() {
    return (
      <form onSubmit={this.handleSubumit}> <-------------- TYPO :(
        <h2>Add a comment:</h2>
        <textarea onChange={this.handleChange} value={this.state.comment} />
        <div>
          <button>Submit comment</button>
        </div>
      </form>
    );
  }
}

export default connect(
  null,
  actions
)(CommentBox);

1 Ответ

0 голосов
/ 17 февраля 2019

beforeEach(() => {
    wrapper.find("textarea").simulate("change", {
      target: { value: "new comment" }
    });


    wrapper.update();
  });

  it("has a text area that user can type into", () => {
    expect(wrapper.find("textarea").prop("value")).toEqual("new comment");
  });

  it("simulate button click (in real form submit) and clear textarea", () => {
    wrapper.find("form").simulate("submit");
    wrapper.update();
       expect(wrapped.find("textarea").prop("value").length).toEqual(0);

  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...