Jsdom: рд╕рдВрджрд░реНрдн рддреНрд░реБрдЯрд┐: рдмреНрд▓реЙрдм рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЕрдкреНрд░реИрд▓ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jsdom/jsdom

рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА:

  • Node.js рд╕рдВрд╕реНрдХрд░рдг: 6.12.3
  • jsdom рд╕рдВрд╕реНрдХрд░рдг: 11.6.2

рдиреНрдпреВрдирддрдо рдкреНрд░рдЬрдирди рдорд╛рдорд▓рд╛

  • рдкрд░реАрдХреНрд╖рдг
import { spy } from "sinon";
import SaveBtn from "../../../app/component/SaveBtn";

const onClickSpy = spy(SaveBtn.prototype, "onClick");

const SaveBtnTest = describe("Testing Submit Button component", function () {
    const SaveBtnElement = renderComponent(SaveBtn);
    ...
    it("should call the submit handler when clicked", function () {
        SaveBtnElement.find("button").simulate("click");
        assert(onClickSpy.calledOnce, true);
    });
});
  • рд╡рд┐рдиреНрдпрд╛рд╕
const jsdom      = new JSDOM("<!DOCTYPE HTML><html><body></body></html>");
global.window    = jsdom.window;
global.document  = jsdom.window.document;
global.navigator = {
    userAgent: "node.js"
};
...
  • рдЕрд╡рдпрд╡
...
onClick() {
    const blob = new Blob([ this.props.code ], {
        type: "text/plain;charset=ascii"
    });
    ...
}

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рджреЗрдЦреЗрдВ https://github.com/jsdom/jsdom/wiki/Don 't-stuff-jsdom-globals-onto-the-Node-globalред рдпрд╣ рд╡рд╣реА рд╕рдЯреАрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

@Sebmaster рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЙрддреНрд╕реБрдХ рдерд╛, рдХреНрдпрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ onClick рд╣реИрдВрдбрд▓рд░ рд╡рд┐рдзрд┐ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдпрд╛рдиреА, _fake рд╣реИрдВрдбрд▓рд░_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░?

рд╢рд╛рдпрдж рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рд╢реНрди рдпрд╣рд╛рдВ рд╕реЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕