@enact/sandstone
Version:
Large-screen/TV support library for Enact, containing a variety of UI components.
108 lines (107 loc) • 3.97 kB
JavaScript
;
require("@testing-library/jest-dom");
var _react = require("@testing-library/react");
var _Item = require("../Item");
var _jsxRuntime = require("react/jsx-runtime");
describe('Item Specs', function () {
test('should support adding text as a child', function () {
var expected = 'Hello Item';
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
children: expected
}));
var actual = _react.screen.getByText(expected);
expect(actual).toHaveTextContent(expected);
});
test('should support adding a `label`', function () {
var expected = 'Example Label';
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
label: expected,
children: "Hello Item"
}));
var label = _react.screen.getByText(expected);
expect(label).toBeInTheDocument();
});
test('should support label with 0', function () {
var expected = '0';
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
label: expected,
children: "Hello Item"
}));
var label = _react.screen.getByText(expected);
expect(label).toBeInTheDocument();
});
test('should support adding text as a child when a label is also set', function () {
var expected = 'Hello Item';
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
label: "Example Label",
children: expected
}));
var actual = _react.screen.getByText(expected);
expect(actual).toBeInTheDocument();
});
test('should support `slotBefore`', function () {
var expected = 'slot before';
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
slotBefore: expected,
children: "Hello Item"
}));
var actual = _react.screen.getByText(expected);
expect(actual).toBeInTheDocument();
});
test('should support `slotAfter`', function () {
var expected = 'slot after';
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
slotAfter: expected,
children: "Hello Item"
}));
var actual = _react.screen.getByText(expected);
expect(actual).toBeInTheDocument();
});
test('should support repositioning of the label', function () {
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
"data-testid": "item",
labelPosition: "above",
label: "my label",
children: "Hello Item"
}));
var itemLabel = _react.screen.getByTestId('item').children.item(1);
expect(itemLabel).toHaveClass('labelAbove');
});
test('should not include the selected class when not selected', function () {
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
"data-testid": "item",
children: "Hello Item"
}));
var expected = 'selected';
var actual = _react.screen.getByTestId('item');
expect(actual).not.toHaveClass(expected);
});
test('should add the selected class when given the selected prop', function () {
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
"data-testid": "item",
selected: true,
children: "Hello Item"
}));
var expected = 'selected';
var actual = _react.screen.getByTestId('item');
expect(actual).toHaveClass(expected);
});
test('should have apply small class when small', function () {
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
"data-testid": "item",
size: "small"
}));
var expected = 'small';
var actual = _react.screen.getByTestId('item');
expect(actual).toHaveClass(expected);
});
test('should support RTL text', function () {
var text = 'Hello מצב תמונה';
(0, _react.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Item.ItemBase, {
children: text
}));
var expected = 'rtl';
var actual = _react.screen.getByText(text).style;
expect(actual).toHaveProperty('direction', expected);
});
});