Home Reference Source

src/PDFBuilder.spec.js

import FormBuilder from './FormBuilder';

describe('Formio PDF Form Builder tests', () => {
  it('Should emit change event when component position changed', (done) => {
    const form = {
      'type': 'form',
      'components': [
        {
          'input': true,
          'label': 'Text',
          'key': 'text',
          'type': 'textfield',
          'overlay': {
            'top': 135,
            'left': 211.516,
            'height': 20,
            'width': 100,
            'page': 1
          }
        },
        {
          'input': true,
          'label': 'Submit',
          'key': 'submit',
          'action': 'submit',
          'type': 'button'
        }
      ],
      'display': 'pdf',
      'name': 'testPdfForm'
    };
    const element = document.createElement('div');
    document.body.appendChild(element);
    const builder = new FormBuilder(element, form, {});
    builder.ready
      .then(function(builder) {
        let isPfdFormInitilized = false;
        builder.on('change', function() {
          if (isPfdFormInitilized) { //ignore any change events fired before initialized event
            //remove builder elements from DOM
            builder.destroy();
            try {
              document.body.removeChild(element);
            }
            catch (err) {
              console.warn(err);
            }
            done();
          }
          else {
            done();
          }
        });
        builder.pdfForm.on('initialized', () => {
          isPfdFormInitilized = true;
          const component = Object.assign({}, builder.pdfForm.getComponent('text').component);
          component.overlay = { 'top': 225, 'left': 405.516, 'height': 20, 'width': 100, 'page': 1 };
          builder.pdfForm.emit('iframe-componentUpdate', component);
        });
      });
  });
});