UNPKG

formiojs

Version:

Common js library for client side interaction with <form.io>

196 lines (156 loc) • 7.37 kB
"use strict"; require("core-js/modules/es.object.to-string.js"); require("core-js/modules/web.dom-collections.for-each.js"); require("core-js/modules/es.array.concat.js"); require("core-js/modules/es.function.name.js"); require("core-js/modules/es.string.trim.js"); var _powerAssert = _interopRequireDefault(require("power-assert")); var _harness = _interopRequireDefault(require("../../../test/harness")); var _File = _interopRequireDefault(require("./File")); var _fixtures = require("./fixtures"); var _Formio = _interopRequireDefault(require("./../../Formio")); var _lodash = _interopRequireDefault(require("lodash")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('File Component', function () { it('Should create a File Component', function () { return _harness.default.testCreate(_File.default, _fixtures.comp1).then(function (component) { var parentNode = document.createElement('div'); var element = document.createElement('div'); parentNode.appendChild(element); component.build(element); _harness.default.testElements(component, 'ul.list-group-striped li.list-group-header', 1); _harness.default.testElements(component, 'ul.list-group-striped li.list-group-item', 1); _harness.default.testElements(component, 'a.browse', 1); (0, _powerAssert.default)(component.checkValidity(component.getValue()), 'Item should be valid'); component.setValue([{ storage: 'base64', name: 'IMG_5235-ce0abe18-5d3e-4ab4-84ca-b3e06684bc86.jpg', url: 'data:image/jpg;base64,AAAAIGZ0eXBoZWljAAAAAG1pZjF', size: 1159732, type: 'image/jpeg', originalName: 'IMG_5235.jpg' }, { storage: 'base64', name: 'IMG_5235-ce0abe18-5d3e-4ab4-84ca-b3e06684bc86.png', url: 'data:image/jpg;base64,AAAAIGZ0eXBoZWljAAAAAG1pZjF', size: 34533, type: 'image/png', originalName: 'IMG_5235.png' }]); _harness.default.testElements(component, 'ul.list-group-striped li.list-group-header', 1); _harness.default.testElements(component, 'ul.list-group-striped li.list-group-item', 3); _harness.default.testElements(component, 'a.browse', 0); (0, _powerAssert.default)(component.checkValidity(component.getValue()), 'Item should be valid'); }); }); it('Should create a multiple File Component', function () { _fixtures.comp1.multiple = true; return _harness.default.testCreate(_File.default, _fixtures.comp1).then(function (component) { var parentNode = document.createElement('div'); var element = document.createElement('div'); parentNode.appendChild(element); component.build(element); _harness.default.testElements(component, 'ul.list-group-striped li.list-group-header', 1); _harness.default.testElements(component, 'ul.list-group-striped li.list-group-item', 1); _harness.default.testElements(component, 'a.browse', 1); (0, _powerAssert.default)(component.checkValidity(component.getValue()), 'Item should be valid'); component.setValue([{ storage: 'base64', name: 'IMG_5235-ce0abe18-5d3e-4ab4-84ca-b3e06684bc86.jpg', url: 'data:image/jpg;base64,AAAAIGZ0eXBoZWljAAAAAG1pZjF', size: 1159732, type: 'image/jpeg', originalName: 'IMG_5235.jpg' }, { storage: 'base64', name: 'IMG_5235-ce0abe18-5d3e-4ab4-84ca-b3e06684bc86.png', url: 'data:image/jpg;base64,AAAAIGZ0eXBoZWljAAAAAG1pZjF', size: 34533, type: 'image/png', originalName: 'IMG_5235.png' }]); _harness.default.testElements(component, 'ul.list-group-striped li.list-group-header', 1); _harness.default.testElements(component, 'ul.list-group-striped li.list-group-item', 3); _harness.default.testElements(component, 'a.browse', 1); (0, _powerAssert.default)(component.checkValidity(component.getValue()), 'Item should be valid'); }); }); it('Should validate uploaded file according to the pattern', function (done) { _harness.default.testCreate(_File.default, _fixtures.comp1).then(function (component) { var validFiles = [{ name: 'test.jpg', size: 27401, type: 'image/jpeg' }, { name: 'TypeScript.pdf', size: 203123, type: 'application/pdf' }, { name: 'build with dist.png', size: 137321, type: 'image/png' }]; var invalidFiles = [{ name: 'eventsList.xlsx', size: 16022, type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }, { name: 'lazy load.mp4', size: 9083622, type: 'video/mp4' }]; var pattern = ' .jpg, .png, .exe, .pdf '; var checkValidatePattern = function checkValidatePattern(files, valid) { files.forEach(function (file) { _powerAssert.default.equal(component.validatePattern(file, pattern), valid, "File ".concat(file.name, " should ").concat(valid ? '' : 'not', " correspond to the pattern")); }); }; checkValidatePattern(validFiles, true); checkValidatePattern(invalidFiles, false); done(); }); }); it('Should display uploaded file in file component only after saving', function (done) { var form = _lodash.default.cloneDeep(_fixtures.comp2); var element = document.createElement('div'); _Formio.default.createForm(element, form).then(function (form) { var value = [{ storage: 'base64', name: '33-0ae897b9-c808-4832-a5e1-4e5d0c725f1b.jpg', url: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD…CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//2Q==', size: 102691, type: 'image/jpeg', originalName: '33.jpg' }]; var file = form.getComponent('file'); var openModalButton = file.componentModal.refs.openModal; var clickEvent = new Event('click'); openModalButton.dispatchEvent(clickEvent); setTimeout(function () { _powerAssert.default.equal(file.componentModal.isOpened, true); file.dataValue = value; file.redraw(); setTimeout(function () { _powerAssert.default.equal(file.refs.fileLink.length, 1); var modalOverlayButton = file.componentModal.refs.modalOverlay; modalOverlayButton.dispatchEvent(clickEvent); setTimeout(function () { _powerAssert.default.equal(!!file.componentModal.dialogElement, true); var dialogYesButton = file.componentModal.dialogElement.refs.dialogYesButton; dialogYesButton.dispatchEvent(clickEvent); setTimeout(function () { _powerAssert.default.equal(!!file.componentModal.dialogElement, false); file.componentModal.closeModal(); setTimeout(function () { _powerAssert.default.equal(file.componentModal.isOpened, false); _powerAssert.default.equal(file.refs.fileLink.length, 0); _powerAssert.default.equal(file.componentModal.refs.openModal.textContent.trim(), 'Click to set value'); done(); }, 200); }, 200); }, 200); }, 200); }, 200); }).catch(done); }); });