Moves mr widget components into vue files
Adds i18n Improves test cases
This commit is contained in:
parent
dd8f56e862
commit
f7a565b9cf
|
@ -1,19 +0,0 @@
|
|||
import statusIcon from '../mr_widget_status_icon.vue';
|
||||
|
||||
export default {
|
||||
name: 'MRWidgetNotAllowed',
|
||||
components: {
|
||||
statusIcon,
|
||||
},
|
||||
template: `
|
||||
<div class="mr-widget-body media">
|
||||
<status-icon status="success" :show-disabled-button="true" />
|
||||
<div class="media-body space-children">
|
||||
<span class="bold">
|
||||
Ready to be merged automatically.
|
||||
Ask someone with write access to this repository to merge this request
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
`,
|
||||
};
|
|
@ -0,0 +1,25 @@
|
|||
<script>
|
||||
import StatusIcon from '../mr_widget_status_icon.vue';
|
||||
|
||||
export default {
|
||||
name: 'MRWidgetNotAllowed',
|
||||
components: {
|
||||
StatusIcon,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="mr-widget-body media">
|
||||
<status-icon
|
||||
status="success"
|
||||
:show-disabled-button="true"
|
||||
/>
|
||||
<div class="media-body space-children">
|
||||
<span class="bold">
|
||||
{{ s__(`mrWidget|Ready to be merged automatically.
|
||||
Ask someone with write access to this repository to merge this request`) }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
|
@ -1,18 +0,0 @@
|
|||
import statusIcon from '../mr_widget_status_icon.vue';
|
||||
|
||||
export default {
|
||||
name: 'MRWidgetPipelineBlocked',
|
||||
components: {
|
||||
statusIcon,
|
||||
},
|
||||
template: `
|
||||
<div class="mr-widget-body media">
|
||||
<status-icon status="warning" :show-disabled-button="true" />
|
||||
<div class="media-body space-children">
|
||||
<span class="bold">
|
||||
Pipeline blocked. The pipeline for this merge request requires a manual action to proceed
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
`,
|
||||
};
|
|
@ -0,0 +1,24 @@
|
|||
<script>
|
||||
import StatusIcon from '../mr_widget_status_icon.vue';
|
||||
|
||||
export default {
|
||||
name: 'MRWidgetPipelineBlocked',
|
||||
components: {
|
||||
StatusIcon,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<template>
|
||||
<div class="mr-widget-body media">
|
||||
<status-icon
|
||||
status="warning"
|
||||
:show-disabled-button="true"
|
||||
/>
|
||||
<div class="media-body space-children">
|
||||
<span class="bold">
|
||||
{{ s__(`mrWidget|Pipeline blocked.
|
||||
The pipeline for this merge request requires a manual action to proceed`) }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
|
@ -25,11 +25,11 @@ export { default as ArchivedState } from './components/states/mr_widget_archived
|
|||
export { default as ConflictsState } from './components/states/mr_widget_conflicts.vue';
|
||||
export { default as NothingToMergeState } from './components/states/mr_widget_nothing_to_merge';
|
||||
export { default as MissingBranchState } from './components/states/mr_widget_missing_branch.vue';
|
||||
export { default as NotAllowedState } from './components/states/mr_widget_not_allowed';
|
||||
export { default as NotAllowedState } from './components/states/mr_widget_not_allowed.vue';
|
||||
export { default as ReadyToMergeState } from './components/states/mr_widget_ready_to_merge';
|
||||
export { default as SHAMismatchState } from './components/states/mr_widget_sha_mismatch';
|
||||
export { default as UnresolvedDiscussionsState } from './components/states/mr_widget_unresolved_discussions';
|
||||
export { default as PipelineBlockedState } from './components/states/mr_widget_pipeline_blocked';
|
||||
export { default as PipelineBlockedState } from './components/states/mr_widget_pipeline_blocked.vue';
|
||||
export { default as PipelineFailedState } from './components/states/mr_widget_pipeline_failed';
|
||||
export { default as MergeWhenPipelineSucceedsState } from './components/states/mr_widget_merge_when_pipeline_succeeds.vue';
|
||||
export { default as RebaseState } from './components/states/mr_widget_rebase.vue';
|
||||
|
|
|
@ -1,17 +1,24 @@
|
|||
import Vue from 'vue';
|
||||
import notAllowedComponent from '~/vue_merge_request_widget/components/states/mr_widget_not_allowed';
|
||||
import notAllowedComponent from '~/vue_merge_request_widget/components/states/mr_widget_not_allowed.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetNotAllowed', () => {
|
||||
describe('template', () => {
|
||||
let vm;
|
||||
beforeEach(() => {
|
||||
const Component = Vue.extend(notAllowedComponent);
|
||||
const vm = new Component({
|
||||
el: document.createElement('div'),
|
||||
});
|
||||
it('should have correct elements', () => {
|
||||
expect(vm.$el.classList.contains('mr-widget-body')).toBeTruthy();
|
||||
expect(vm.$el.querySelector('button').getAttribute('disabled')).toBeTruthy();
|
||||
expect(vm.$el.innerText).toContain('Ready to be merged automatically.');
|
||||
expect(vm.$el.innerText).toContain('Ask someone with write access to this repository to merge this request');
|
||||
});
|
||||
vm = mountComponent(Component);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vm.$destroy();
|
||||
});
|
||||
|
||||
it('renders success icon', () => {
|
||||
expect(vm.$el.querySelector('.ci-status-icon-success')).not.toBe(null);
|
||||
});
|
||||
|
||||
it('renders informative text', () => {
|
||||
expect(vm.$el.innerText).toContain('Ready to be merged automatically.');
|
||||
expect(vm.$el.innerText).toContain('Ask someone with write access to this repository to merge this request');
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,16 +1,23 @@
|
|||
import Vue from 'vue';
|
||||
import pipelineBlockedComponent from '~/vue_merge_request_widget/components/states/mr_widget_pipeline_blocked';
|
||||
import pipelineBlockedComponent from '~/vue_merge_request_widget/components/states/mr_widget_pipeline_blocked.vue';
|
||||
import mountComponent from '../../../helpers/vue_mount_component_helper';
|
||||
|
||||
describe('MRWidgetPipelineBlocked', () => {
|
||||
describe('template', () => {
|
||||
let vm;
|
||||
beforeEach(() => {
|
||||
const Component = Vue.extend(pipelineBlockedComponent);
|
||||
const vm = new Component({
|
||||
el: document.createElement('div'),
|
||||
});
|
||||
it('should have correct elements', () => {
|
||||
expect(vm.$el.classList.contains('mr-widget-body')).toBeTruthy();
|
||||
expect(vm.$el.querySelector('button').getAttribute('disabled')).toBeTruthy();
|
||||
expect(vm.$el.innerText).toContain('Pipeline blocked. The pipeline for this merge request requires a manual action to proceed');
|
||||
});
|
||||
vm = mountComponent(Component);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vm.$destroy();
|
||||
});
|
||||
|
||||
it('renders warning icon', () => {
|
||||
expect(vm.$el.querySelector('.ci-status-icon-warning')).not.toBe(null);
|
||||
});
|
||||
|
||||
it('renders information text', () => {
|
||||
expect(vm.$el.textContent.trim().replace(/[\r\n]+/g, ' ')).toContain('Pipeline blocked. The pipeline for this merge request requires a manual action to proceed');
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue