summaryrefslogtreecommitdiff
path: root/spec/javascripts/helpers/vue_mount_component_helper.js
blob: a34a1add4e0e8b4ef9c76ae85c888e4f2621c07c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import Vue from 'vue';

const mountComponent = (Component, props = {}, el = null) => new Component({
  propsData: props,
}).$mount(el);

export const createComponentWithStore = (Component, store, propsData = {}) => new Component({
  store,
  propsData,
});

export const createComponentWithMixin = (mixins = [], state = {}, props = {}, template = '<div></div>') => {
  const Component = Vue.extend({
    template,
    mixins,
    data() {
      return props;
    },
  });

  return mountComponent(Component, props);
};

export const mountComponentWithStore = (Component, { el, props, store }) =>
  new Component({
    store,
    propsData: props || { },
  }).$mount(el);

export default mountComponent;