gather-content-ui
Version:
GatherContent UI Library
54 lines (53 loc) • 2.22 kB
JavaScript
;
var _vitest = require("vitest");
var _react = _interopRequireDefault(require("react"));
var _react2 = require("@testing-library/react");
var _ = require("..");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
(0, _vitest.describe)("ExpandingTextArea", function () {
var originalscrollHeight = Object.getOwnPropertyDescriptor(Element.prototype, "scrollHeight");
afterAll(function () {
_vitest.vi.restoreAllMocks();
Object.defineProperty(Element.prototype, "scrollHeight", originalscrollHeight);
});
(0, _vitest.it)("renders a textarea hooked up to event handler props", function () {
var handleOnChange = _vitest.vi.fn();
var handleOnFocus = _vitest.vi.fn();
var handleOnBlur = _vitest.vi.fn();
(0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_.ExpandingTextArea, {
handleOnChange: handleOnChange,
handleOnFocus: handleOnFocus,
handleOnBlur: handleOnBlur
}));
(0, _vitest.expect)(_react2.screen.getByRole("textbox").getAttribute("rows")).toEqual("1");
_react2.fireEvent.focus(_react2.screen.getByRole("textbox"));
(0, _vitest.expect)(handleOnFocus).toHaveBeenCalled();
_react2.fireEvent.change(_react2.screen.getByRole("textbox"), {
target: {
value: "well hi!"
}
});
(0, _vitest.expect)(handleOnChange).toHaveBeenCalled();
_react2.fireEvent.blur(_react2.screen.getByRole("textbox"));
(0, _vitest.expect)(handleOnBlur).toHaveBeenCalled();
});
(0, _vitest.it)("calculates the row height", function () {
Object.defineProperty(Element.prototype, "scrollHeight", {
configurable: true,
value: 500
});
_vitest.vi.spyOn(window, "getComputedStyle").mockImplementation(function () {
return {
paddingTop: 5,
paddingBottom: 5,
lineHeight: 16
};
});
(0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_.ExpandingTextArea, {
handleOnChange: function handleOnChange() {},
value: "beep"
}));
(0, _vitest.expect)(_react2.screen.getByRole("textbox").getAttribute("rows")).toEqual("30");
});
});
//# sourceMappingURL=ExpandingTextArea.spec.js.map