@netdata/netdata-ui
Version:
netdata UI kit
93 lines (92 loc) • 4.29 kB
JavaScript
var _react = _interopRequireDefault(require("react"));
var _testUtilities = require("testUtilities");
var _default = require("../../theme/default");
var _index = _interopRequireDefault(require("./index"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var getSelectors = function getSelectors(container) {
var input = container.querySelector("input");
var iconContainer = input.nextSibling;
var svg = container.querySelector("svg");
return {
input: input,
iconContainer: iconContainer,
svg: svg
};
};
it("renders", function () {
var _renderWithProviders = (0, _testUtilities.renderWithProviders)(/*#__PURE__*/_react["default"].createElement(_index["default"], null)),
container = _renderWithProviders.container;
var _getSelectors = getSelectors(container),
input = _getSelectors.input,
iconContainer = _getSelectors.iconContainer,
svg = _getSelectors.svg;
expect(input).not.toHaveAttribute("checked");
expect(iconContainer).toHaveStyleRule("border", "1px solid " + _default.DefaultTheme.colors.inputBorder);
expect(svg).toBe(null);
});
it("renders checked", function () {
var _renderWithProviders2 = (0, _testUtilities.renderWithProviders)(/*#__PURE__*/_react["default"].createElement(_index["default"], {
checked: true,
onChange: jest.fn()
})),
container = _renderWithProviders2.container;
var _getSelectors2 = getSelectors(container),
input = _getSelectors2.input,
iconContainer = _getSelectors2.iconContainer,
svg = _getSelectors2.svg;
expect(input).toHaveAttribute("checked");
expect(iconContainer).toHaveStyleRule("border", "1px solid " + _default.DefaultTheme.colors.inputBorder);
expect(svg).toHaveStyleRule("fill", _default.DefaultTheme.colors.primary);
});
it("renders disabled", function () {
var _renderWithProviders3 = (0, _testUtilities.renderWithProviders)(/*#__PURE__*/_react["default"].createElement(_index["default"], {
disabled: true
})),
container = _renderWithProviders3.container;
var _getSelectors3 = getSelectors(container),
input = _getSelectors3.input,
iconContainer = _getSelectors3.iconContainer,
svg = _getSelectors3.svg;
expect(input).not.toHaveAttribute("checked");
expect(input).toHaveAttribute("disabled");
expect(iconContainer).toHaveStyleRule("border", "1px solid " + _default.DefaultTheme.colors.disabled);
expect(svg).toBe(null);
});
it("renders disabled checked", function () {
var _renderWithProviders4 = (0, _testUtilities.renderWithProviders)(/*#__PURE__*/_react["default"].createElement(_index["default"], {
checked: true,
disabled: true,
onChange: jest.fn()
})),
container = _renderWithProviders4.container;
var _getSelectors4 = getSelectors(container),
input = _getSelectors4.input,
iconContainer = _getSelectors4.iconContainer,
svg = _getSelectors4.svg;
expect(input).toHaveAttribute("checked");
expect(input).toHaveAttribute("disabled");
expect(iconContainer).toHaveStyleRule("border", "1px solid " + _default.DefaultTheme.colors.inputBorder);
expect(svg).toHaveStyleRule("fill", _default.DefaultTheme.colors.disabled);
});
it("triggers change", function () {
var onChange = jest.fn();
var _renderWithProviders5 = (0, _testUtilities.renderWithProviders)(/*#__PURE__*/_react["default"].createElement(_index["default"], {
onChange: onChange
})),
container = _renderWithProviders5.container;
_testUtilities.fireEvent.click(container.firstChild);
expect(onChange).toBeCalledTimes(1);
});
it("renders label", function () {
var _renderWithProviders6 = (0, _testUtilities.renderWithProviders)(/*#__PURE__*/_react["default"].createElement(_index["default"], {
label: "my label"
})),
getByLabelText = _renderWithProviders6.getByLabelText;
expect(getByLabelText("my label")).toBeInTheDocument();
});
it("renders children", function () {
var _renderWithProviders7 = (0, _testUtilities.renderWithProviders)(/*#__PURE__*/_react["default"].createElement(_index["default"], null, /*#__PURE__*/_react["default"].createElement("span", null, "my content"))),
getByLabelText = _renderWithProviders7.getByLabelText;
expect(getByLabelText("my content")).toBeInTheDocument();
});
;