stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
127 lines • 4.22 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("react-native");
var _reactNative2 = require("@testing-library/react-native");
var _renderText = require("./renderText");
var _jsxRuntime = require("react/jsx-runtime");
var _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Message/MessageItemView/utils/renderText.test.tsx";
describe('list', () => {
var createNode = ({
amount,
ordered = false,
start = 1
}) => ({
items: Array.from(Array(amount).keys()),
ordered,
start,
type: 'text'
});
var mockOutput = node => (0, _jsxRuntime.jsx)(_reactNative.Text, {
children: JSON.stringify(node)
});
var MockText = ({
node,
output,
state
}) => (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
children: (0, _jsxRuntime.jsx)(_renderText.ListOutput, {
node: node,
output: output,
state: state,
styles: {}
})
});
it('renders numbered items', () => {
var node = createNode({
amount: 3,
ordered: true,
start: 1
});
var _render = (0, _reactNative2.render)((0, _jsxRuntime.jsx)(MockText, {
node: node,
output: mockOutput,
state: {}
})),
root = _render.root;
var textInstances = root.children;
textInstances.forEach(function () {
var _ref = (0, _asyncToGenerator2.default)(function* (instance, index) {
var text = `${index + node.start}. `;
yield (0, _reactNative2.waitFor)(() => expect((0, _reactNative2.within)(instance).getByText(text)).toBeTruthy());
});
return function (_x, _x2) {
return _ref.apply(this, arguments);
};
}());
});
it('renders numbered items from a start index', () => {
var node = createNode({
amount: 3,
ordered: true,
start: 3
});
var _render2 = (0, _reactNative2.render)((0, _jsxRuntime.jsx)(MockText, {
node: node,
output: mockOutput,
state: {}
})),
root = _render2.root;
var textInstances = root.children;
textInstances.forEach(function () {
var _ref2 = (0, _asyncToGenerator2.default)(function* (instance, index) {
var text = `${index + node.start}. `;
yield (0, _reactNative2.waitFor)(() => expect((0, _reactNative2.within)(instance).getByText(text)).toBeTruthy());
});
return function (_x3, _x4) {
return _ref2.apply(this, arguments);
};
}());
});
it('does not throw an error if an item is empty', () => {
var node = {
...createNode({
amount: 3,
ordered: true
}),
items: ['Not empty', null, 'Not empty']
};
var _render3 = (0, _reactNative2.render)((0, _jsxRuntime.jsx)(MockText, {
node: node,
output: mockOutput,
state: {}
})),
root = _render3.root;
var textInstances = root.children;
textInstances.forEach(function () {
var _ref3 = (0, _asyncToGenerator2.default)(function* (instance, index) {
var text = `${index + 1}. `;
yield (0, _reactNative2.waitFor)(() => expect((0, _reactNative2.within)(instance).getByText(text)).toBeTruthy());
});
return function (_x5, _x6) {
return _ref3.apply(this, arguments);
};
}());
});
it('renders an unordered list', () => {
var node = createNode({
amount: 3
});
var _render4 = (0, _reactNative2.render)((0, _jsxRuntime.jsx)(MockText, {
node: node,
output: mockOutput,
state: {}
})),
root = _render4.root;
var textInstances = root.children;
textInstances.forEach(function () {
var _ref4 = (0, _asyncToGenerator2.default)(function* (instance) {
yield (0, _reactNative2.waitFor)(() => expect((0, _reactNative2.within)(instance).getByText('\u2022 ')).toBeTruthy());
});
return function (_x7) {
return _ref4.apply(this, arguments);
};
}());
});
});
//# sourceMappingURL=renderText.test.js.map