react-credit-card-primitives
Version:
React primitives for building credit card components
71 lines (56 loc) • 2.32 kB
JavaScript
;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var React = require('react');
var _require = require('enzyme'),
mount = _require.mount;
var Cvc = require('../cvc');
function setup() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _ref$render = _ref.render,
render = _ref$render === undefined ? function () {
return React.createElement('div', null);
} : _ref$render,
props = _objectWithoutProperties(_ref, ['render']);
var renderArg = void 0;
var renderSpy = jest.fn(function (arg) {
renderArg = arg;
return render(arg);
});
var wrapper = mount(React.createElement(Cvc, _extends({}, props, { render: renderSpy })));
return _extends({ renderSpy: renderSpy, wrapper: wrapper }, renderArg);
}
test('basic value', function () {
var _setup = setup(),
wrapper = _setup.wrapper,
setValue = _setup.setValue,
getInputProps = _setup.getInputProps;
setValue('222');
expect(getInputProps().value).toEqual('222');
setValue('3333');
expect(getInputProps().value).toEqual('3333');
});
test('props for visa and amex', function () {
var data1 = setup({
cardType: 'Visa'
});
expect(data1.getInputProps()).toMatchSnapshot('cvc visa');
expect(data1.getInputProps().maxLength).toEqual(3);
var data2 = setup({
cardType: 'American Express'
});
expect(data2.getInputProps()).toMatchSnapshot('cvc amex');
expect(data2.getInputProps().maxLength).toEqual(4);
var data3 = setup();
expect(data3.getInputProps()).toMatchSnapshot('cvc unknown');
});
test('defaultValue', function () {
var _setup2 = setup({
defaultValue: '333',
cardType: 'American Express'
}),
wrapper = _setup2.wrapper,
getInputProps = _setup2.getInputProps;
expect(wrapper.instance().isValid()).toBe(false);
expect(getInputProps().value).toBe('333');
});