summaryrefslogtreecommitdiff
path: root/spec/javascripts/issue_show
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2017-05-22 14:38:30 +0000
committerFilipa Lacerda <filipa@gitlab.com>2017-05-22 14:38:30 +0000
commitd853d8211447ab7059fb906343b26341316f9cbe (patch)
tree23701877abcb6609f7086ce5b3443e429267ddcd /spec/javascripts/issue_show
parent3f996024cd2b7c30f8049e4b056a094100ece9f9 (diff)
parent21205d1e8537d965844c68af5b93ffa472144e9b (diff)
downloadgitlab-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.js49
-rw-r--r--spec/javascripts/issue_show/components/form_spec.js23
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'),