UNPKG

element-react-codish

Version:
169 lines (130 loc) 6.26 kB
'use strict'; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _enzyme = require('enzyme'); var _sinon = require('sinon'); var _sinon2 = _interopRequireDefault(_sinon); var _ = require('../'); var _2 = _interopRequireDefault(_); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var options = [{ value: 'zhinan', label: '指南', children: [{ value: 'shejiyuanze', label: '设计原则', children: [{ value: 'yizhi', label: '一致' }] }] }]; test('basic usage', function () { var component = (0, _enzyme.mount)(_react2.default.createElement(_2.default, { options: options, popperClass: 'popper-class', placeholder: 'enter', size: 'large' })); // placeholder expect(component.find('.el-input__inner').first().prop('placeholder')).toBe('enter'); // size为large expect(component.hasClass('el-cascader--large')).toBeTruthy(); expect(component.find('.el-input').first().hasClass('el-input--large')).toBeTruthy(); // 点击时展开菜单 expect(component.find('.el-cascader-menus').first().prop('style').display).toBe('none'); component.childAt(0).simulate('click'); expect(component.find('.el-cascader-menus').first().prop('style').display).toBeUndefined(); expect(component.find('.el-cascader-menus').first().hasClass('popper-class')).toBeTruthy(); // 菜单元素数量及内容 expect(component.find('.el-cascader-menu').children()).toHaveLength(1); expect(component.find('.el-cascader-menu').childAt(0).text()).toBe('指南'); // 点击选项时展开子菜单,该选项被选中 component.find('.el-cascader-menu').childAt(0).simulate('click'); expect(component.find('.el-cascader-menu').at(1).exists()).toBeTruthy(); expect(component.find('.el-cascader-menu').first().childAt(0).hasClass('is-active')).toBeTruthy(); }); test('hover expand', function () { var component = (0, _enzyme.mount)(_react2.default.createElement(_2.default, { options: options, expandTrigger: 'hover' })); component.childAt(0).simulate('click'); component.find('.el-cascader-menu').childAt(0).simulate('mouseEnter'); expect(component.find('.el-cascader-menu').at(1).exists()).toBeTruthy(); expect(component.find('.el-cascader-menu').first().childAt(0).hasClass('is-active')).toBeTruthy(); }); test('disabled', function () { var options = [{ value: 'zhinan', label: '指南', disabled: true, children: [{ value: 'shejiyuanze', label: '设计原则', children: [{ value: 'yizhi', label: '一致' }] }] }]; var component = (0, _enzyme.mount)(_react2.default.createElement(_2.default, { options: options })); component.childAt(0).simulate('click'); expect(component.find('.el-cascader-menu').first().childAt(0).hasClass('is-disabled')).toBeTruthy(); component.find('.el-cascader-menu').first().childAt(0).simulate('click'); expect(component.find('.el-cascader-menu').at(1).exists()).toBeFalsy(); }); test('value', function () { var component = (0, _enzyme.mount)(_react2.default.createElement(_2.default, { options: options, value: ['zhinan', 'shejiyuanze', 'yizhi'] })); component.childAt(0).simulate('click'); expect(component.find('.el-cascader-menu').at(0).childAt(0).hasClass('is-active')).toBeTruthy(); expect(component.find('.el-cascader-menu').at(1).childAt(0).hasClass('is-active')).toBeTruthy(); expect(component.find('.el-cascader-menu').at(2).childAt(0).hasClass('is-active')).toBeTruthy(); expect(component.find('.el-cascader__label').first().children()).toHaveLength(3); }); test('not show all levels', function () { var component = (0, _enzyme.mount)(_react2.default.createElement(_2.default, { options: options, value: ['zhinan', 'shejiyuanze', 'yizhi'], showAllLevels: false })); component.childAt(0).simulate('click'); component.find('.el-cascader-menu').at(0).childAt(0).simulate('click'); component.find('.el-cascader-menu').at(1).childAt(0).simulate('click'); component.find('.el-cascader-menu').at(2).childAt(0).simulate('click'); expect(component.find('.el-cascader__label').first().text()).toBe('一致'); }); test('clearable', function () { var cb = _sinon2.default.spy(); var component = (0, _enzyme.mount)(_react2.default.createElement(_2.default, { options: options, value: ['zhinan', 'shejiyuanze', 'yizhi'], clearable: true, onChange: cb })); component.childAt(0).simulate('mouseEnter'); component.find('.el-cascader__clearIcon').first().simulate('click'); expect(component.find('.el-cascader__label').first().prop('style').display).toBe('none'); expect(cb.callCount).toBe(1); }); test('change', function () { var cb = _sinon2.default.spy(); var component = (0, _enzyme.mount)(_react2.default.createElement(_2.default, { options: options, onChange: cb })); component.childAt(0).simulate('click'); component.find('.el-cascader-menu').at(0).childAt(0).simulate('click'); component.find('.el-cascader-menu').at(1).childAt(0).simulate('click'); component.find('.el-cascader-menu').at(2).childAt(0).simulate('click'); expect(cb.callCount).toBe(1); }); test('change on select', function () { var cb = _sinon2.default.spy(); var component = (0, _enzyme.mount)(_react2.default.createElement(_2.default, { options: options, onChange: cb, changeOnSelect: true })); component.childAt(0).simulate('click'); component.find('.el-cascader-menu').at(0).childAt(0).simulate('click'); component.find('.el-cascader-menu').at(1).childAt(0).simulate('click'); component.find('.el-cascader-menu').at(2).childAt(0).simulate('click'); expect(cb.callCount).toBe(3); }); test('active item change', function () { var cb = _sinon2.default.spy(); var component = (0, _enzyme.mount)(_react2.default.createElement(_2.default, { options: options, activeItemChange: cb })); component.childAt(0).simulate('click'); component.find('.el-cascader-menu').at(0).childAt(0).simulate('click'); expect(cb.callCount).toBe(1); }); ; var _temp = function () { if (typeof __REACT_HOT_LOADER__ === 'undefined') { return; } __REACT_HOT_LOADER__.register(options, 'options', 'src/cascader/__test__/Cascader_test.jsx'); }(); ;