diff options
author | Regis <boudinot.regis@yahoo.com> | 2017-04-25 10:31:15 -0600 |
---|---|---|
committer | Regis <boudinot.regis@yahoo.com> | 2017-04-25 10:31:15 -0600 |
commit | b4e2f9f1a711b5c4103d56752f7d968d009b51a5 (patch) | |
tree | 9132d876bf63ebe790bf9ba59abcdd92b94b9cfd /spec/javascripts/issue_show | |
parent | 3417e97c18bcf28fbe9f7061e9d9036c29931969 (diff) | |
download | gitlab-ce-b4e2f9f1a711b5c4103d56752f7d968d009b51a5.tar.gz |
test async nature of issue show
Diffstat (limited to 'spec/javascripts/issue_show')
-rw-r--r-- | spec/javascripts/issue_show/issue_title_description_spec.js | 41 | ||||
-rw-r--r-- | spec/javascripts/issue_show/mock_data.js | 5 |
2 files changed, 39 insertions, 7 deletions
diff --git a/spec/javascripts/issue_show/issue_title_description_spec.js b/spec/javascripts/issue_show/issue_title_description_spec.js index f351ca7d8e6..2f81660aeb1 100644 --- a/spec/javascripts/issue_show/issue_title_description_spec.js +++ b/spec/javascripts/issue_show/issue_title_description_spec.js @@ -1,22 +1,49 @@ import Vue from 'vue'; +import $ from 'jquery'; +import '~/render_math'; +import '~/render_gfm'; import issueTitle from '~/issue_show/issue_title_description.vue'; +import issueShowData from './mock_data'; + +window.$ = $; + +const issueShowInterceptor = (request, next) => { + console.log(issueShowData); + next(request.respondWith(JSON.stringify(issueShowData), { + status: 200, + })); +}; describe('Issue Title', () => { - let IssueTitleComponent; + const comps = { + IssueTitleComponent: {}, + }; beforeEach(() => { - IssueTitleComponent = Vue.extend(issueTitle); + comps.IssueTitleComponent = Vue.extend(issueTitle); + Vue.http.interceptors.push(issueShowInterceptor); + }); + + afterEach(() => { + Vue.http.interceptors = _.without( + Vue.http.interceptors, issueShowInterceptor, + ); }); - it('should render a title', () => { - const component = new IssueTitleComponent({ + it('should render a title', (done) => { + const issueShowComponent = new comps.IssueTitleComponent({ propsData: { - initialTitle: 'wow', + candescription: '.css-stuff', endpoint: '/gitlab-org/gitlab-shell/issues/9/rendered_title', }, }).$mount(); - expect(component.$el.classList).toContain('title'); - expect(component.$el.innerHTML).toContain('wow'); + // need setTimeout because actual setTimeout in code :P + setTimeout(() => { + expect(issueShowComponent.$el.querySelector('.title').innerHTML) + .toContain('this is a title'); + done(); + }, 300); + // 300 is just three times the Vue comps setTimeout to ensure pass }); }); diff --git a/spec/javascripts/issue_show/mock_data.js b/spec/javascripts/issue_show/mock_data.js new file mode 100644 index 00000000000..37e86cfe33d --- /dev/null +++ b/spec/javascripts/issue_show/mock_data.js @@ -0,0 +1,5 @@ +export default { + title: '<p>this is a title</p>', + description: '<p>this is a description!</p>', + description_text: 'this is a description', +}; |