diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2017-05-22 14:38:30 +0000 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2017-05-22 14:38:30 +0000 |
commit | d853d8211447ab7059fb906343b26341316f9cbe (patch) | |
tree | 23701877abcb6609f7086ce5b3443e429267ddcd /spec/javascripts/issue_show | |
parent | 3f996024cd2b7c30f8049e4b056a094100ece9f9 (diff) | |
parent | 21205d1e8537d965844c68af5b93ffa472144e9b (diff) | |
download | gitlab-ce-d853d8211447ab7059fb906343b26341316f9cbe.tar.gz |
Merge branch 'issue-edit-inline-description-template' into 'issue-edit-inline'
Issue edit inline description template
See merge request !11382
Diffstat (limited to 'spec/javascripts/issue_show')
-rw-r--r-- | spec/javascripts/issue_show/components/fields/description_template_spec.js | 49 | ||||
-rw-r--r-- | spec/javascripts/issue_show/components/form_spec.js | 23 |
2 files changed, 72 insertions, 0 deletions
diff --git a/spec/javascripts/issue_show/components/fields/description_template_spec.js b/spec/javascripts/issue_show/components/fields/description_template_spec.js new file mode 100644 index 00000000000..2b7ee65094b --- /dev/null +++ b/spec/javascripts/issue_show/components/fields/description_template_spec.js @@ -0,0 +1,49 @@ +import Vue from 'vue'; +import descriptionTemplate from '~/issue_show/components/fields/description_template.vue'; +import '~/templates/issuable_template_selector'; +import '~/templates/issuable_template_selectors'; + +describe('Issue description template component', () => { + let vm; + let formState; + + beforeEach((done) => { + const Component = Vue.extend(descriptionTemplate); + formState = { + description: 'test', + }; + + vm = new Component({ + propsData: { + formState, + issuableTemplates: [{ name: 'test' }], + projectPath: '/', + projectNamespace: '/', + }, + }).$mount(); + + Vue.nextTick(done); + }); + + it('renders templates as JSON array in data attribute', () => { + expect( + vm.$el.querySelector('.js-issuable-selector').getAttribute('data-data'), + ).toBe('[{"name":"test"}]'); + }); + + it('updates formState when changing template', () => { + vm.issuableTemplate.editor.setValue('test new template'); + + expect( + formState.description, + ).toBe('test new template'); + }); + + it('returns formState description with editor getValue', () => { + formState.description = 'testing new template'; + + expect( + vm.issuableTemplate.editor.getValue(), + ).toBe('testing new template'); + }); +}); diff --git a/spec/javascripts/issue_show/components/form_spec.js b/spec/javascripts/issue_show/components/form_spec.js index d91dc3ce1d0..9a85223208c 100644 --- a/spec/javascripts/issue_show/components/form_spec.js +++ b/spec/javascripts/issue_show/components/form_spec.js @@ -1,5 +1,7 @@ import Vue from 'vue'; import formComponent from '~/issue_show/components/form.vue'; +import '~/templates/issuable_template_selector'; +import '~/templates/issuable_template_selectors'; describe('Inline edit form component', () => { let vm; @@ -19,12 +21,33 @@ describe('Inline edit form component', () => { markdownPreviewUrl: '/', markdownDocs: '/', projectsAutocompleteUrl: '/', + projectPath: '/', + projectNamespace: '/', }, }).$mount(); Vue.nextTick(done); }); + it('does not render template selector if no templates exist', () => { + expect( + vm.$el.querySelector('.js-issuable-selector-wrap'), + ).toBeNull(); + }); + + it('renders template selector when templates exists', (done) => { + spyOn(gl, 'IssuableTemplateSelectors'); + vm.issuableTemplates = ['test']; + + Vue.nextTick(() => { + expect( + vm.$el.querySelector('.js-issuable-selector-wrap'), + ).not.toBeNull(); + + done(); + }); + }); + it('hides locked warning by default', () => { expect( vm.$el.querySelector('.alert'), |