react-native-mask-text
Version:
A React Native and Expo library to mask text
98 lines (88 loc) • 3.62 kB
JavaScript
"use strict";
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("@testing-library/react-native");
var _MaskedTextInput = require("./MaskedTextInput");
var _reactNative2 = require("react-native");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('<MaskedTextInput />', () => {
const mockedOnChangeText = jest.fn();
test('should renders correctly with custom mask', () => {
const container = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_MaskedTextInput.MaskedTextInput, {
mask: "AAA-999",
onChangeText: mockedOnChangeText
}));
expect(container).toMatchSnapshot();
});
test('should renders correctly with custom mask default value', () => {
const container = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_MaskedTextInput.MaskedTextInput, {
mask: "AAA-999",
onChangeText: mockedOnChangeText,
defaultValue: "ABC-123"
}));
expect(container.getByDisplayValue('ABC-123')).toBeTruthy();
});
test('should renders correctly with currency mask', () => {
const container = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_MaskedTextInput.MaskedTextInput, {
type: "currency",
options: {
prefix: '$',
decimalSeparator: '.',
groupSeparator: ',',
precision: 2
},
onChangeText: mockedOnChangeText
}));
expect(container).toMatchSnapshot();
});
test('should mask input text with custom mask', async () => {
const container = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_MaskedTextInput.MaskedTextInput, {
mask: "AAA-999",
onChangeText: mockedOnChangeText,
testID: "masked-text-input"
}));
_reactNative.fireEvent.changeText(container.getByTestId('masked-text-input'), 'RCT777');
await (0, _reactNative.waitFor)(() => {
expect(container.getByDisplayValue('RCT-777')).toBeTruthy();
});
});
test('should mask input text with currency mask', async () => {
const container = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_MaskedTextInput.MaskedTextInput, {
type: "currency",
options: {
prefix: '$',
decimalSeparator: '.',
groupSeparator: ',',
precision: 2
},
onChangeText: mockedOnChangeText,
testID: "masked-text-input"
}));
_reactNative.fireEvent.changeText(container.getByTestId('masked-text-input'), '5999');
await (0, _reactNative.waitFor)(() => {
expect(container.getByDisplayValue('$59.99')).toBeTruthy();
});
});
test('should renders correctly with an accessory view', () => {
const container = (0, _reactNative.render)( /*#__PURE__*/_react.default.createElement(_MaskedTextInput.MaskedTextInput, {
type: "currency",
options: {
prefix: '$',
decimalSeparator: '.',
groupSeparator: ',',
precision: 2
},
onChangeText: mockedOnChangeText,
inputAccessoryViewID: "Done",
inputAccessoryView: /*#__PURE__*/_react.default.createElement(_reactNative2.InputAccessoryView, {
nativeID: "Done"
}, /*#__PURE__*/_react.default.createElement(_reactNative2.Button, {
onPress: () => _reactNative2.Keyboard.dismiss(),
title: "Clear text"
}))
}));
const tree = container.toJSON();
expect(tree[0].props.inputAccessoryViewID).toBe('Done');
expect(tree[1].props.nativeID).toBe('Done');
});
});
//# sourceMappingURL=MaskedTextInput.test.js.map