summaryrefslogtreecommitdiff
path: root/spec/javascripts/notes/components/note_actions_spec.js
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-02 18:08:11 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-02 18:08:11 +0000
commit8a7efa45c38ed3200d173d2c3207a8154e583c16 (patch)
tree1bb4d579b95c79aae4946a06fefa089e5549b722 /spec/javascripts/notes/components/note_actions_spec.js
parent53b1f4eaa2a451aaba908a5fee7ce97a930021ac (diff)
downloadgitlab-ce-8a7efa45c38ed3200d173d2c3207a8154e583c16.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/javascripts/notes/components/note_actions_spec.js')
-rw-r--r--spec/javascripts/notes/components/note_actions_spec.js160
1 files changed, 0 insertions, 160 deletions
diff --git a/spec/javascripts/notes/components/note_actions_spec.js b/spec/javascripts/notes/components/note_actions_spec.js
deleted file mode 100644
index 5d13f587ca7..00000000000
--- a/spec/javascripts/notes/components/note_actions_spec.js
+++ /dev/null
@@ -1,160 +0,0 @@
-import Vue from 'vue';
-import { shallowMount, createLocalVue, createWrapper } from '@vue/test-utils';
-import { TEST_HOST } from 'spec/test_constants';
-import createStore from '~/notes/stores';
-import noteActions from '~/notes/components/note_actions.vue';
-import { userDataMock } from '../mock_data';
-
-describe('noteActions', () => {
- let wrapper;
- let store;
- let props;
-
- const shallowMountNoteActions = propsData => {
- const localVue = createLocalVue();
- return shallowMount(localVue.extend(noteActions), {
- store,
- propsData,
- localVue,
- });
- };
-
- beforeEach(() => {
- store = createStore();
- props = {
- accessLevel: 'Maintainer',
- authorId: 26,
- canDelete: true,
- canEdit: true,
- canAwardEmoji: true,
- canReportAsAbuse: true,
- noteId: '539',
- noteUrl: `${TEST_HOST}/group/project/-/merge_requests/1#note_1`,
- reportAbusePath: `${TEST_HOST}/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_539&user_id=26`,
- showReply: false,
- };
- });
-
- afterEach(() => {
- wrapper.destroy();
- });
-
- describe('user is logged in', () => {
- beforeEach(() => {
- store.dispatch('setUserData', userDataMock);
-
- wrapper = shallowMountNoteActions(props);
- });
-
- it('should render access level badge', () => {
- expect(
- wrapper
- .find('.note-role')
- .text()
- .trim(),
- ).toEqual(props.accessLevel);
- });
-
- it('should render emoji link', () => {
- expect(wrapper.find('.js-add-award').exists()).toBe(true);
- expect(wrapper.find('.js-add-award').attributes('data-position')).toBe('right');
- });
-
- describe('actions dropdown', () => {
- it('should be possible to edit the comment', () => {
- expect(wrapper.find('.js-note-edit').exists()).toBe(true);
- });
-
- it('should be possible to report abuse to admin', () => {
- expect(wrapper.find(`a[href="${props.reportAbusePath}"]`).exists()).toBe(true);
- });
-
- it('should be possible to copy link to a note', () => {
- expect(wrapper.find('.js-btn-copy-note-link').exists()).toBe(true);
- });
-
- it('should not show copy link action when `noteUrl` prop is empty', done => {
- wrapper.setProps({
- ...props,
- noteUrl: '',
- });
-
- Vue.nextTick()
- .then(() => {
- expect(wrapper.find('.js-btn-copy-note-link').exists()).toBe(false);
- })
- .then(done)
- .catch(done.fail);
- });
-
- it('should be possible to delete comment', () => {
- expect(wrapper.find('.js-note-delete').exists()).toBe(true);
- });
-
- it('closes tooltip when dropdown opens', done => {
- wrapper.find('.more-actions-toggle').trigger('click');
-
- const rootWrapper = createWrapper(wrapper.vm.$root);
- Vue.nextTick()
- .then(() => {
- const emitted = Object.keys(rootWrapper.emitted());
-
- expect(emitted).toEqual(['bv::hide::tooltip']);
- done();
- })
- .catch(done.fail);
- });
- });
- });
-
- describe('user is not logged in', () => {
- beforeEach(() => {
- store.dispatch('setUserData', {});
- wrapper = shallowMountNoteActions({
- ...props,
- canDelete: false,
- canEdit: false,
- canAwardEmoji: false,
- canReportAsAbuse: false,
- });
- });
-
- it('should not render emoji link', () => {
- expect(wrapper.find('.js-add-award').exists()).toBe(false);
- });
-
- it('should not render actions dropdown', () => {
- expect(wrapper.find('.more-actions').exists()).toBe(false);
- });
- });
-
- describe('for showReply = true', () => {
- beforeEach(() => {
- wrapper = shallowMountNoteActions({
- ...props,
- showReply: true,
- });
- });
-
- it('shows a reply button', () => {
- const replyButton = wrapper.find({ ref: 'replyButton' });
-
- expect(replyButton.exists()).toBe(true);
- });
- });
-
- describe('for showReply = false', () => {
- beforeEach(() => {
- wrapper = shallowMountNoteActions({
- ...props,
- showReply: false,
- });
- });
-
- it('does not show a reply button', () => {
- const replyButton = wrapper.find({ ref: 'replyButton' });
-
- expect(replyButton.exists()).toBe(false);
- });
- });
-});