vimo-dt
Version:
A Vue2.x UI Project For Mobile & HyBrid
133 lines (106 loc) • 4.01 kB
JavaScript
;
var _vueTestUtils = require('vue-test-utils');
var _index = require('../index');
var _index2 = _interopRequireDefault(_index);
var _deepAssign = require('deep-assign');
var _deepAssign2 = _interopRequireDefault(_deepAssign);
var _lodash = require('lodash.clonedeep');
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var opts = {
slots: {
default: '<span>Name</span>'
}
};
describe('App', function () {
it('@base: renders the correct markup', function () {
var wrapper = (0, _vueTestUtils.mount)(_index2.default, opts);
var result = '<article id="ios" class="ion-app ios app-ios platform-ios"><section class="app-root"><span>Name</span></section> <aside id="modalPortal"></aside> <aside id="sheetPortal"></aside> <aside id="alertPortal"></aside> <aside id="loadingPortal"></aside> <aside id="toastPortal"></aside> <aside class="click-block"></aside> </article>';
expect(wrapper.html()).toEqual(result);
});
it('@base: component must have a name', function () {
var wrapper = (0, _vueTestUtils.mount)(_index2.default, opts);
expect(wrapper.name()).toEqual('App');
});
it('@base: renders the correct text', function () {
var wrapper = (0, _vueTestUtils.mount)(_index2.default, opts);
expect(wrapper.text().trim()).toEqual('Name');
});
it('@props: mode', function () {
var wrapper = (0, _vueTestUtils.mount)(_index2.default, (0, _deepAssign2.default)((0, _lodash2.default)(opts), {
propsData: {
mode: 'md'
}
}));
expect(wrapper.hasClass('platform-md')).toBeTruthy();
expect(wrapper.hasClass('md')).toBeTruthy();
});
it('setEnabled(false)', function (cb) {
var wrapper = (0, _vueTestUtils.mount)(_index2.default);
wrapper.vm.setEnabled(false, 10);
expect(wrapper.vm.isEnabled).toBeFalsy();
setTimeout(function () {
expect(wrapper.vm.isEnabled).toBeTruthy();
cb();
}, 1000);
});
it('setEnabled(true)', function (cb) {
var wrapper = (0, _vueTestUtils.mount)(_index2.default);
wrapper.vm.setEnabled(true);
setTimeout(function () {
expect(wrapper.vm.isEnabled).toBeTruthy();
cb();
}, 1000);
});
it('setDisableScroll(false)', function () {
var wrapper = (0, _vueTestUtils.mount)(_index2.default);
wrapper.vm.setDisableScroll(false);
expect(wrapper.vm.isScrollDisabled).toBeFalsy();
});
it('setDisableScroll(true)', function (cb) {
var wrapper = (0, _vueTestUtils.mount)(_index2.default);
wrapper.vm.setDisableScroll(true, 90);
expect(wrapper.vm.isScrollDisabled).toBeTruthy();
setTimeout(function () {
expect(wrapper.vm.isScrollDisabled).toBeFalsy();
cb();
}, 100);
});
it('setClass()', function () {
var wrapper = (0, _vueTestUtils.mount)(_index2.default);
wrapper.vm.setClass('test123', true);
expect(wrapper.hasClass('test123')).toBeTruthy();
});
it('setDocTitle()', function (cb) {
var wrapper = (0, _vueTestUtils.mount)(_index2.default);
wrapper.vm.setDocTitle('title123');
setTimeout(function () {
expect(document.title).toEqual('title123');
cb();
}, 100);
});
it('$on(onScrollStart)', function (cb) {
var wrapper = (0, _vueTestUtils.mount)(_index2.default);
wrapper.vm.$root.$emit('onScrollStart');
setTimeout(function () {
expect(wrapper.vm.isScrolling).toBeTruthy();
cb();
}, 0);
});
it('$on(onScroll)', function (cb) {
var wrapper = (0, _vueTestUtils.mount)(_index2.default);
wrapper.vm.$root.$emit('onScroll');
setTimeout(function () {
expect(wrapper.vm.isScrolling).toBeTruthy();
cb();
}, 0);
});
it('$on(onScrollEnd)', function (cb) {
var wrapper = (0, _vueTestUtils.mount)(_index2.default);
wrapper.vm.$root.$emit('onScrollEnd');
setTimeout(function () {
expect(wrapper.vm.isScrolling).toBeFalsy();
cb();
}, 0);
});
});