summaryrefslogtreecommitdiff
path: root/spec/javascripts/issue_show
diff options
context:
space:
mode:
authorRegis <boudinot.regis@yahoo.com>2017-05-02 15:01:23 -0600
committerRegis <boudinot.regis@yahoo.com>2017-05-02 15:01:23 -0600
commitf6df135717a09b7598f274a1c9d877ffcb59be26 (patch)
tree2a3d14e6cc9a9414187e212c86a69525a0f8e648 /spec/javascripts/issue_show
parent290cba5b23118bd40d64e5c6187afc820a6a0e38 (diff)
downloadgitlab-ce-f6df135717a09b7598f274a1c9d877ffcb59be26.tar.gz
test realtime changes and hit more branches
Diffstat (limited to 'spec/javascripts/issue_show')
-rw-r--r--spec/javascripts/issue_show/issue_title_description_spec.js41
-rw-r--r--spec/javascripts/issue_show/mock_data.js22
2 files changed, 37 insertions, 26 deletions
diff --git a/spec/javascripts/issue_show/issue_title_description_spec.js b/spec/javascripts/issue_show/issue_title_description_spec.js
index 4c7d4748693..e1d0f51f9cb 100644
--- a/spec/javascripts/issue_show/issue_title_description_spec.js
+++ b/spec/javascripts/issue_show/issue_title_description_spec.js
@@ -7,9 +7,12 @@ import issueShowData from './mock_data';
window.$ = $;
-const issueShowInterceptor = (request, next) => {
- next(request.respondWith(JSON.stringify(issueShowData), {
+const issueShowInterceptor = data => (request, next) => {
+ next(request.respondWith(JSON.stringify(data), {
status: 200,
+ headers: {
+ 'POLL-INTERVAL': 1,
+ },
}));
};
@@ -22,16 +25,15 @@ describe('Issue Title', () => {
beforeEach(() => {
comps.IssueTitleComponent = Vue.extend(issueTitle);
- Vue.http.interceptors.push(issueShowInterceptor);
});
afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, issueShowInterceptor,
- );
+ Vue.http.interceptors = _.without(Vue.http.interceptors, issueShowInterceptor);
});
- it('should render a title', (done) => {
+ it('should render a title/description and update title/description on update', (done) => {
+ Vue.http.interceptors.push(issueShowInterceptor(issueShowData.initialRequest));
+
const issueShowComponent = new comps.IssueTitleComponent({
propsData: {
candescription: '.css-stuff',
@@ -41,22 +43,21 @@ describe('Issue Title', () => {
// need setTimeout because actual setTimeout in code :P
setTimeout(() => {
- expect(document.querySelector('title').innerText)
- .toContain('this is a title (#1)');
-
- expect(issueShowComponent.$el.querySelector('.title').innerHTML)
- .toContain('<p>this is a title</p>');
-
- expect(issueShowComponent.$el.querySelector('.wiki').innerHTML)
- .toContain('<p>this is a description!</p>');
+ expect(document.querySelector('title').innerText).toContain('this is a title (#1)');
+ expect(issueShowComponent.$el.querySelector('.title').innerHTML).toContain('<p>this is a title</p>');
+ expect(issueShowComponent.$el.querySelector('.wiki').innerHTML).toContain('<p>this is a description!</p>');
+ expect(issueShowComponent.$el.querySelector('.js-task-list-field').innerText).toContain('this is a description');
- const hiddenText = issueShowComponent.$el
- .querySelector('.js-task-list-field').innerText;
+ Vue.http.interceptors.push(issueShowInterceptor(issueShowData.secondRequest));
- expect(hiddenText)
- .toContain('this is a description');
+ setTimeout(() => {
+ expect(document.querySelector('title').innerText).toContain('2 (#1)');
+ expect(issueShowComponent.$el.querySelector('.title').innerHTML).toContain('<p>2</p>');
+ expect(issueShowComponent.$el.querySelector('.wiki').innerHTML).toContain('<p>42</p>');
+ expect(issueShowComponent.$el.querySelector('.js-task-list-field').innerText).toContain('42');
- done();
+ done();
+ }, 10);
}, 10);
// 10ms is just long enough for the update hook to fire
});
diff --git a/spec/javascripts/issue_show/mock_data.js b/spec/javascripts/issue_show/mock_data.js
index b7b01391a18..5d234ebf254 100644
--- a/spec/javascripts/issue_show/mock_data.js
+++ b/spec/javascripts/issue_show/mock_data.js
@@ -1,8 +1,18 @@
export default {
- title: '<p>this is a title</p>',
- title_text: 'this is a title',
- description: '<p>this is a description!</p>',
- description_text: 'this is a description',
- issue_number: 1,
- task_status: '2/4 completed',
+ initialRequest: {
+ title: '<p>this is a title</p>',
+ title_text: 'this is a title',
+ description: '<p>this is a description!</p>',
+ description_text: 'this is a description',
+ issue_number: 1,
+ task_status: '2 of 4 completed',
+ },
+ secondRequest: {
+ title: '<p>2</p>',
+ title_text: '2',
+ description: '<p>42</p>',
+ description_text: '42',
+ issue_number: 1,
+ task_status: '0 of 0 completed',
+ },
};