Add i18n and update specs for UnresolvedDiscussions vue component
This commit is contained in:
parent
051e5e99df
commit
cc00f468b0
3 changed files with 34 additions and 35 deletions
|
@ -7,7 +7,10 @@ export default {
|
||||||
statusIcon,
|
statusIcon,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
mr: { type: Object, required: true },
|
mr: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -20,13 +23,14 @@ export default {
|
||||||
/>
|
/>
|
||||||
<div class="media-body space-children">
|
<div class="media-body space-children">
|
||||||
<span class="bold">
|
<span class="bold">
|
||||||
There are unresolved discussions. Please resolve these discussions
|
{{ s__("mrWidget|There are unresolved discussions. Please resolve these discussions") }}
|
||||||
</span>
|
</span>
|
||||||
<a
|
<a
|
||||||
v-if="mr.createIssueToResolveDiscussionsPath"
|
v-if="mr.createIssueToResolveDiscussionsPath"
|
||||||
:href="mr.createIssueToResolveDiscussionsPath"
|
:href="mr.createIssueToResolveDiscussionsPath"
|
||||||
class="btn btn-default btn-xs js-create-issue">
|
class="btn btn-default btn-xs js-create-issue"
|
||||||
Create an issue to resolve them later
|
>
|
||||||
|
{{ s__("mrWidget|Create an issue to resolve them later") }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Add i18n and update specs for UnresolvedDiscussions vue component
|
||||||
|
merge_request: 17866
|
||||||
|
author: George Tsiolis
|
||||||
|
type: performance
|
|
@ -1,47 +1,37 @@
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import UnresolvedDiscussions from '~/vue_merge_request_widget/components/states/unresolved_discussions.vue';
|
import UnresolvedDiscussions from '~/vue_merge_request_widget/components/states/unresolved_discussions.vue';
|
||||||
|
import mountComponent from 'spec/helpers/vue_mount_component_helper';
|
||||||
|
|
||||||
describe('UnresolvedDiscussions', () => {
|
describe('UnresolvedDiscussions', () => {
|
||||||
describe('props', () => {
|
const Component = Vue.extend(UnresolvedDiscussions);
|
||||||
it('should have props', () => {
|
let vm;
|
||||||
const { mr } = UnresolvedDiscussions.props;
|
|
||||||
|
|
||||||
expect(mr.type instanceof Object).toBeTruthy();
|
afterEach(() => {
|
||||||
expect(mr.required).toBeTruthy();
|
vm.$destroy();
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('template', () => {
|
describe('with discussions path', () => {
|
||||||
let el;
|
|
||||||
let vm;
|
|
||||||
const path = 'foo/bar';
|
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
const Component = Vue.extend(UnresolvedDiscussions);
|
vm = mountComponent(Component, { mr: {
|
||||||
const mr = {
|
createIssueToResolveDiscussionsPath: gl.TEST_HOST,
|
||||||
createIssueToResolveDiscussionsPath: path,
|
} });
|
||||||
};
|
|
||||||
vm = new Component({
|
|
||||||
el: document.createElement('div'),
|
|
||||||
propsData: { mr },
|
|
||||||
});
|
|
||||||
el = vm.$el;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should have correct elements', () => {
|
it('should have correct elements', () => {
|
||||||
expect(el.classList.contains('mr-widget-body')).toBeTruthy();
|
expect(vm.$el.innerText).toContain('There are unresolved discussions. Please resolve these discussions');
|
||||||
expect(el.innerText).toContain('There are unresolved discussions. Please resolve these discussions');
|
expect(vm.$el.innerText).toContain('Create an issue to resolve them later');
|
||||||
expect(el.innerText).toContain('Create an issue to resolve them later');
|
expect(vm.$el.querySelector('.js-create-issue').getAttribute('href')).toEqual(gl.TEST_HOST);
|
||||||
expect(el.querySelector('.js-create-issue').getAttribute('href')).toEqual(path);
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('without discussions path', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
vm = mountComponent(Component, { mr: {} });
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not show create issue button if user cannot create issue', (done) => {
|
it('should not show create issue link if user cannot create issue', () => {
|
||||||
vm.mr.createIssueToResolveDiscussionsPath = '';
|
expect(vm.$el.innerText).toContain('There are unresolved discussions. Please resolve these discussions');
|
||||||
|
expect(vm.$el.querySelector('.js-create-issue')).toEqual(null);
|
||||||
Vue.nextTick(() => {
|
|
||||||
expect(el.querySelector('.js-create-issue')).toEqual(null);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue