Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/ci/environments.md4
-rw-r--r--doc/ci/examples/deployment/README.md4
-rw-r--r--doc/user/group/index.md2
-rw-r--r--doc/user/project/clusters/add_remove_clusters.md15
-rw-r--r--spec/frontend/issue_show/helpers.js10
-rw-r--r--spec/frontend/notes/components/comment_form_spec.js331
-rw-r--r--spec/frontend/notes/components/discussion_actions_spec.js2
-rw-r--r--spec/frontend/notes/components/discussion_notes_spec.js6
-rw-r--r--spec/frontend/notes/components/note_app_spec.js2
-rw-r--r--spec/frontend/notes/mock_data.js1255
-rw-r--r--spec/frontend/vue_shared/components/notes/placeholder_note_spec.js2
-rw-r--r--spec/javascripts/issue_show/helpers.js11
-rw-r--r--spec/javascripts/notes/components/comment_form_spec.js301
-rw-r--r--spec/javascripts/notes/mock_data.js1256
14 files changed, 1621 insertions, 1580 deletions
diff --git a/doc/ci/environments.md b/doc/ci/environments.md
index cd6f810674b..6d620722608 100644
--- a/doc/ci/environments.md
+++ b/doc/ci/environments.md
@@ -294,8 +294,8 @@ For the value of:
We have used `$CI_ENVIRONMENT_SLUG` here because it is guaranteed to be unique. If
you're using a workflow like [GitLab Flow](../topics/gitlab_flow.md), collisions
are unlikely and you may prefer environment names to be more closely based on the
- branch name. In that case, you could use `$CI_COMMIT_REF_SLUG` in `environment:url` in
- the example above: `https://$CI_COMMIT_REF_SLUG.example.com`, which would give a URL
+ branch name. In that case, you could use `$CI_COMMIT_REF_NAME` in `environment:url` in
+ the example above: `https://$CI_COMMIT_REF_NAME.example.com`, which would give a URL
of `https://100-do-the-thing.example.com`.
NOTE: **Note:**
diff --git a/doc/ci/examples/deployment/README.md b/doc/ci/examples/deployment/README.md
index afe02e0a7d8..7af797f1851 100644
--- a/doc/ci/examples/deployment/README.md
+++ b/doc/ci/examples/deployment/README.md
@@ -35,8 +35,8 @@ apt-get install ruby-dev
The Dpl provides support for vast number of services, including: Heroku, Cloud Foundry, AWS/S3, and more.
To use it simply define provider and any additional parameters required by the provider.
-For example if you want to use it to deploy your application to heroku, you need to specify `heroku` as provider, specify `api-key` and `app`.
-There's more and all possible parameters can be found here: <https://github.com/travis-ci/dpl#heroku>.
+For example if you want to use it to deploy your application to Heroku, you need to specify `heroku` as provider, specify `api-key` and `app`.
+All possible parameters can be found here: <https://github.com/travis-ci/dpl#heroku-api>.
```yaml
staging:
diff --git a/doc/user/group/index.md b/doc/user/group/index.md
index 03f5920dc37..934fbb28a6c 100644
--- a/doc/user/group/index.md
+++ b/doc/user/group/index.md
@@ -353,7 +353,7 @@ content.
Restriction currently applies to:
- UI.
-- API access.
+- [From GitLab 12.3](https://gitlab.com/gitlab-org/gitlab/issues/12874), API access.
- [From GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/issues/32113), Git actions via SSH.
To avoid accidental lock-out, admins and group owners are are able to access
diff --git a/doc/user/project/clusters/add_remove_clusters.md b/doc/user/project/clusters/add_remove_clusters.md
index 85f276ae5f9..549dd4dd916 100644
--- a/doc/user/project/clusters/add_remove_clusters.md
+++ b/doc/user/project/clusters/add_remove_clusters.md
@@ -119,7 +119,7 @@ GitLab supports:
- Creating a new GKE cluster using the GitLab UI.
- Providing credentials to add an [existing Kubernetes cluster](#add-existing-cluster).
-Starting from [GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/issues/25925), all the GKE clusters provisioned by GitLab are [VPC-Native](https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips).
+Starting from [GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/issues/25925), all the GKE clusters provisioned by GitLab are [VPC-native](https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips).
NOTE: **Note:**
The [Google authentication integration](../../../integration/google.md) must
@@ -281,6 +281,19 @@ To add an existing Kubernetes cluster to your project:
kubectl apply -f gitlab-admin-service-account.yaml
```
+ You will need the `container.clusterRoleBindings.create` permission
+ to create cluster-level roles. If you do not have this permission,
+ you can alternatively enable Basic Authentication and then run the
+ `kubectl apply` command as an admin:
+
+ ```bash
+ kubectl apply -f gitlab-admin-service-account.yaml --username=admin --password=<password>
+ ```
+
+ NOTE: **Note:**
+ Basic Authentication can be turned on and the password credentials
+ can be obtained using the Google Cloud Console.
+
Output:
```bash
diff --git a/spec/frontend/issue_show/helpers.js b/spec/frontend/issue_show/helpers.js
new file mode 100644
index 00000000000..5d2ced98ae4
--- /dev/null
+++ b/spec/frontend/issue_show/helpers.js
@@ -0,0 +1,10 @@
+// eslint-disable-next-line import/prefer-default-export
+export const keyboardDownEvent = (code, metaKey = false, ctrlKey = false) => {
+ const e = new CustomEvent('keydown');
+
+ e.keyCode = code;
+ e.metaKey = metaKey;
+ e.ctrlKey = ctrlKey;
+
+ return e;
+};
diff --git a/spec/frontend/notes/components/comment_form_spec.js b/spec/frontend/notes/components/comment_form_spec.js
new file mode 100644
index 00000000000..45b99b71e06
--- /dev/null
+++ b/spec/frontend/notes/components/comment_form_spec.js
@@ -0,0 +1,331 @@
+import $ from 'jquery';
+import { mount } from '@vue/test-utils';
+import MockAdapter from 'axios-mock-adapter';
+import Autosize from 'autosize';
+import axios from '~/lib/utils/axios_utils';
+import createStore from '~/notes/stores';
+import CommentForm from '~/notes/components/comment_form.vue';
+import * as constants from '~/notes/constants';
+import { refreshUserMergeRequestCounts } from '~/commons/nav/user_merge_requests';
+import { trimText } from 'helpers/text_helper';
+import { keyboardDownEvent } from '../../issue_show/helpers';
+import {
+ loggedOutnoteableData,
+ notesDataMock,
+ userDataMock,
+ noteableDataMock,
+} from '../../notes/mock_data';
+
+jest.mock('autosize');
+jest.mock('~/commons/nav/user_merge_requests');
+jest.mock('~/gl_form');
+
+describe('issue_comment_form component', () => {
+ let store;
+ let wrapper;
+ let axiosMock;
+
+ const setupStore = (userData, noteableData) => {
+ store.dispatch('setUserData', userData);
+ store.dispatch('setNoteableData', noteableData);
+ store.dispatch('setNotesData', notesDataMock);
+ };
+
+ const mountComponent = (noteableType = 'issue') => {
+ wrapper = mount(CommentForm, {
+ propsData: {
+ noteableType,
+ },
+ store,
+ sync: false,
+ });
+ };
+
+ beforeEach(() => {
+ axiosMock = new MockAdapter(axios);
+ store = createStore();
+ });
+
+ afterEach(() => {
+ axiosMock.restore();
+ wrapper.destroy();
+ jest.clearAllMocks();
+ });
+
+ describe('user is logged in', () => {
+ beforeEach(() => {
+ setupStore(userDataMock, noteableDataMock);
+
+ mountComponent();
+ });
+
+ it('should render user avatar with link', () => {
+ expect(wrapper.find('.timeline-icon .user-avatar-link').attributes('href')).toEqual(
+ userDataMock.path,
+ );
+ });
+
+ describe('handleSave', () => {
+ it('should request to save note when note is entered', () => {
+ wrapper.vm.note = 'hello world';
+ jest.spyOn(wrapper.vm, 'saveNote').mockReturnValue(new Promise(() => {}));
+ jest.spyOn(wrapper.vm, 'resizeTextarea');
+ jest.spyOn(wrapper.vm, 'stopPolling');
+
+ wrapper.vm.handleSave();
+
+ expect(wrapper.vm.isSubmitting).toEqual(true);
+ expect(wrapper.vm.note).toEqual('');
+ expect(wrapper.vm.saveNote).toHaveBeenCalled();
+ expect(wrapper.vm.stopPolling).toHaveBeenCalled();
+ expect(wrapper.vm.resizeTextarea).toHaveBeenCalled();
+ });
+
+ it('should toggle issue state when no note', () => {
+ jest.spyOn(wrapper.vm, 'toggleIssueState');
+
+ wrapper.vm.handleSave();
+
+ expect(wrapper.vm.toggleIssueState).toHaveBeenCalled();
+ });
+
+ it('should disable action button whilst submitting', done => {
+ const saveNotePromise = Promise.resolve();
+ wrapper.vm.note = 'hello world';
+ jest.spyOn(wrapper.vm, 'saveNote').mockReturnValue(saveNotePromise);
+ jest.spyOn(wrapper.vm, 'stopPolling');
+
+ const actionButton = wrapper.find('.js-action-button');
+
+ wrapper.vm.handleSave();
+
+ wrapper.vm
+ .$nextTick()
+ .then(() => {
+ expect(actionButton.vm.disabled).toBeTruthy();
+ })
+ .then(saveNotePromise)
+ .then(wrapper.vm.$nextTick)
+ .then(() => {
+ expect(actionButton.vm.disabled).toBeFalsy();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
+ describe('textarea', () => {
+ it('should render textarea with placeholder', () => {
+ expect(wrapper.find('.js-main-target-form textarea').attributes('placeholder')).toEqual(
+ 'Write a comment or drag your files here…',
+ );
+ });
+
+ it('should make textarea disabled while requesting', done => {
+ const $submitButton = $(wrapper.find('.js-comment-submit-button').element);
+ wrapper.vm.note = 'hello world';
+ jest.spyOn(wrapper.vm, 'stopPolling');
+ jest.spyOn(wrapper.vm, 'saveNote').mockReturnValue(new Promise(() => {}));
+
+ wrapper.vm.$nextTick(() => {
+ // Wait for wrapper.vm.note change triggered. It should enable $submitButton.
+ $submitButton.trigger('click');
+
+ wrapper.vm.$nextTick(() => {
+ // Wait for wrapper.isSubmitting triggered. It should disable textarea.
+ expect(wrapper.find('.js-main-target-form textarea').attributes('disabled')).toBe(
+ 'disabled',
+ );
+ done();
+ });
+ });
+ });
+
+ it('should support quick actions', () => {
+ expect(
+ wrapper.find('.js-main-target-form textarea').attributes('data-supports-quick-actions'),
+ ).toBe('true');
+ });
+
+ it('should link to markdown docs', () => {
+ const { markdownDocsPath } = notesDataMock;
+
+ expect(
+ wrapper
+ .find(`a[href="${markdownDocsPath}"]`)
+ .text()
+ .trim(),
+ ).toEqual('Markdown');
+ });
+
+ it('should link to quick actions docs', () => {
+ const { quickActionsDocsPath } = notesDataMock;
+
+ expect(
+ wrapper
+ .find(`a[href="${quickActionsDocsPath}"]`)
+ .text()
+ .trim(),
+ ).toEqual('quick actions');
+ });
+
+ it('should resize textarea after note discarded', done => {
+ jest.spyOn(wrapper.vm, 'discard');
+
+ wrapper.vm.note = 'foo';
+ wrapper.vm.discard();
+
+ wrapper.vm.$nextTick(() => {
+ expect(Autosize.update).toHaveBeenCalled();
+ done();
+ });
+ });
+
+ describe('edit mode', () => {
+ it('should enter edit mode when arrow up is pressed', () => {
+ jest.spyOn(wrapper.vm, 'editCurrentUserLastNote');
+ wrapper.find('.js-main-target-form textarea').value = 'Foo';
+ wrapper
+ .find('.js-main-target-form textarea')
+ .element.dispatchEvent(keyboardDownEvent(38, true));
+
+ expect(wrapper.vm.editCurrentUserLastNote).toHaveBeenCalled();
+ });
+
+ it('inits autosave', () => {
+ expect(wrapper.vm.autosave).toBeDefined();
+ expect(wrapper.vm.autosave.key).toEqual(`autosave/Note/Issue/${noteableDataMock.id}`);
+ });
+ });
+
+ describe('event enter', () => {
+ it('should save note when cmd+enter is pressed', () => {
+ jest.spyOn(wrapper.vm, 'handleSave');
+ wrapper.find('.js-main-target-form textarea').value = 'Foo';
+ wrapper
+ .find('.js-main-target-form textarea')
+ .element.dispatchEvent(keyboardDownEvent(13, true));
+
+ expect(wrapper.vm.handleSave).toHaveBeenCalled();
+ });
+
+ it('should save note when ctrl+enter is pressed', () => {
+ jest.spyOn(wrapper.vm, 'handleSave');
+ wrapper.find('.js-main-target-form textarea').value = 'Foo';
+ wrapper
+ .find('.js-main-target-form textarea')
+ .element.dispatchEvent(keyboardDownEvent(13, false, true));
+
+ expect(wrapper.vm.handleSave).toHaveBeenCalled();
+ });
+ });
+ });
+
+ describe('actions', () => {
+ it('should be possible to close the issue', () => {
+ expect(
+ wrapper
+ .find('.btn-comment-and-close')
+ .text()
+ .trim(),
+ ).toEqual('Close issue');
+ });
+
+ it('should render comment button as disabled', () => {
+ expect(wrapper.find('.js-comment-submit-button').attributes('disabled')).toEqual(
+ 'disabled',
+ );
+ });
+
+ it('should enable comment button if it has note', done => {
+ wrapper.vm.note = 'Foo';
+ wrapper.vm.$nextTick(() => {
+ expect(wrapper.find('.js-comment-submit-button').attributes('disabled')).toBeFalsy();
+ done();
+ });
+ });
+
+ it('should update buttons texts when it has note', done => {
+ wrapper.vm.note = 'Foo';
+ wrapper.vm.$nextTick(() => {
+ expect(
+ wrapper
+ .find('.btn-comment-and-close')
+ .text()
+ .trim(),
+ ).toEqual('Comment & close issue');
+
+ done();
+ });
+ });
+
+ it('updates button text with noteable type', done => {
+ wrapper.setProps({ noteableType: constants.MERGE_REQUEST_NOTEABLE_TYPE });
+
+ wrapper.vm.$nextTick(() => {
+ expect(
+ wrapper
+ .find('.btn-comment-and-close')
+ .text()
+ .trim(),
+ ).toEqual('Close merge request');
+ done();
+ });
+ });
+
+ describe('when clicking close/reopen button', () => {
+ it('should disable button and show a loading spinner', done => {
+ const toggleStateButton = wrapper.find('.js-action-button');
+
+ toggleStateButton.trigger('click');
+ wrapper.vm.$nextTick(() => {
+ expect(toggleStateButton.element.disabled).toEqual(true);
+ expect(toggleStateButton.find('.js-loading-button-icon').exists()).toBe(true);
+
+ done();
+ });
+ });
+ });
+
+ describe('when toggling state', () => {
+ it('should update MR count', done => {
+ jest.spyOn(wrapper.vm, 'closeIssue').mockResolvedValue();
+
+ wrapper.vm.toggleIssueState();
+
+ wrapper.vm.$nextTick(() => {
+ expect(refreshUserMergeRequestCounts).toHaveBeenCalled();
+
+ done();
+ });
+ });
+ });
+ });
+
+ describe('issue is confidential', () => {
+ it('shows information warning', done => {
+ store.dispatch('setNoteableData', Object.assign(noteableDataMock, { confidential: true }));
+ wrapper.vm.$nextTick(() => {
+ expect(wrapper.find('.confidential-issue-warning')).toBeDefined();
+ done();
+ });
+ });
+ });
+ });
+
+ describe('user is not logged in', () => {
+ beforeEach(() => {
+ setupStore(null, loggedOutnoteableData);
+
+ mountComponent();
+ });
+
+ it('should render signed out widget', () => {
+ expect(trimText(wrapper.text())).toEqual('Please register or sign in to reply');
+ });
+
+ it('should not render submission form', () => {
+ expect(wrapper.find('textarea').exists()).toBe(false);
+ });
+ });
+});
diff --git a/spec/frontend/notes/components/discussion_actions_spec.js b/spec/frontend/notes/components/discussion_actions_spec.js
index d3c8cf72376..91f9dab2530 100644
--- a/spec/frontend/notes/components/discussion_actions_spec.js
+++ b/spec/frontend/notes/components/discussion_actions_spec.js
@@ -1,6 +1,6 @@
import createStore from '~/notes/stores';
import { shallowMount, mount, createLocalVue } from '@vue/test-utils';
-import { discussionMock } from '../../../javascripts/notes/mock_data';
+import { discussionMock } from '../../notes/mock_data';
import DiscussionActions from '~/notes/components/discussion_actions.vue';
import ReplyPlaceholder from '~/notes/components/discussion_reply_placeholder.vue';
import ResolveDiscussionButton from '~/notes/components/discussion_resolve_button.vue';
diff --git a/spec/frontend/notes/components/discussion_notes_spec.js b/spec/frontend/notes/components/discussion_notes_spec.js
index 58d367077e8..f77236b14bc 100644
--- a/spec/frontend/notes/components/discussion_notes_spec.js
+++ b/spec/frontend/notes/components/discussion_notes_spec.js
@@ -8,11 +8,7 @@ import PlaceholderSystemNote from '~/vue_shared/components/notes/placeholder_sys
import SystemNote from '~/vue_shared/components/notes/system_note.vue';
import TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';
import createStore from '~/notes/stores';
-import {
- noteableDataMock,
- discussionMock,
- notesDataMock,
-} from '../../../javascripts/notes/mock_data';
+import { noteableDataMock, discussionMock, notesDataMock } from '../../notes/mock_data';
const localVue = createLocalVue();
diff --git a/spec/frontend/notes/components/note_app_spec.js b/spec/frontend/notes/components/note_app_spec.js
index a8ec47fd44f..b0271d30872 100644
--- a/spec/frontend/notes/components/note_app_spec.js
+++ b/spec/frontend/notes/components/note_app_spec.js
@@ -9,7 +9,7 @@ import createStore from '~/notes/stores';
import '~/behaviors/markdown/render_gfm';
import { setTestTimeout } from 'helpers/timeout';
// TODO: use generated fixture (https://gitlab.com/gitlab-org/gitlab-foss/issues/62491)
-import * as mockData from '../../../javascripts/notes/mock_data';
+import * as mockData from '../../notes/mock_data';
setTestTimeout(1000);
diff --git a/spec/frontend/notes/mock_data.js b/spec/frontend/notes/mock_data.js
new file mode 100644
index 00000000000..dc914ce8355
--- /dev/null
+++ b/spec/frontend/notes/mock_data.js
@@ -0,0 +1,1255 @@
+// Copied to ee/spec/frontend/notes/mock_data.js
+
+export const notesDataMock = {
+ discussionsPath: '/gitlab-org/gitlab-foss/issues/26/discussions.json',
+ lastFetchedAt: 1501862675,
+ markdownDocsPath: '/help/user/markdown',
+ newSessionPath: '/users/sign_in?redirect_to_referer=yes',
+ notesPath: '/gitlab-org/gitlab-foss/noteable/issue/98/notes',
+ quickActionsDocsPath: '/help/user/project/quick_actions',
+ registerPath: '/users/sign_in?redirect_to_referer=yes#register-pane',
+ prerenderedNotesCount: 1,
+ closePath: '/twitter/flight/issues/9.json?issue%5Bstate_event%5D=close',
+ reopenPath: '/twitter/flight/issues/9.json?issue%5Bstate_event%5D=reopen',
+ canAwardEmoji: true,
+};
+
+export const userDataMock = {
+ avatar_url: 'mock_path',
+ id: 1,
+ name: 'Root',
+ path: '/root',
+ state: 'active',
+ username: 'root',
+};
+
+export const noteableDataMock = {
+ assignees: [],
+ author_id: 1,
+ branch_name: null,
+ confidential: false,
+ create_note_path: '/gitlab-org/gitlab-foss/notes?target_id=98&target_type=issue',
+ created_at: '2017-02-07T10:11:18.395Z',
+ current_user: {
+ can_create_note: true,
+ can_update: true,
+ can_award_emoji: true,
+ },
+ description: '',
+ due_date: null,
+ human_time_estimate: null,
+ human_total_time_spent: null,
+ id: 98,
+ iid: 26,
+ labels: [],
+ lock_version: null,
+ milestone: null,
+ milestone_id: null,
+ moved_to_id: null,
+ preview_note_path: '/gitlab-org/gitlab-foss/preview_markdown?target_id=98&target_type=Issue',
+ project_id: 2,
+ state: 'opened',
+ time_estimate: 0,
+ title: '14',
+ total_time_spent: 0,
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ updated_at: '2017-08-04T09:53:01.226Z',
+ updated_by_id: 1,
+ web_url: '/gitlab-org/gitlab-foss/issues/26',
+ noteableType: 'issue',
+};
+
+export const lastFetchedAt = '1501862675';
+
+export const individualNote = {
+ expanded: true,
+ id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ individual_note: true,
+ notes: [
+ {
+ id: '1390',
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: 'test',
+ path: '/root',
+ },
+ created_at: '2017-08-01T17: 09: 33.762Z',
+ updated_at: '2017-08-01T17: 09: 33.762Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: null,
+ human_access: 'Owner',
+ note: 'sdfdsaf',
+ note_html: "<p dir='auto'>sdfdsaf</p>",
+ current_user: {
+ can_edit: true,
+ can_award_emoji: true,
+ },
+ discussion_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ emoji_awardable: true,
+ award_emoji: [
+ { name: 'baseball', user: { id: 1, name: 'Root', username: 'root' } },
+ { name: 'art', user: { id: 1, name: 'Root', username: 'root' } },
+ ],
+ toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji',
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ note_url: '/group/project/merge_requests/1#note_1',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390&user_id=1',
+ path: '/gitlab-org/gitlab-foss/notes/1390',
+ },
+ ],
+ reply_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+};
+
+export const note = {
+ id: '546',
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url: 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2017-08-10T15:24:03.087Z',
+ updated_at: '2017-08-10T15:24:03.087Z',
+ system: false,
+ noteable_id: 67,
+ noteable_type: 'Issue',
+ noteable_iid: 7,
+ type: null,
+ human_access: 'Owner',
+ note: 'Vel id placeat reprehenderit sit numquam.',
+ note_html: '<p dir="auto">Vel id placeat reprehenderit sit numquam.</p>',
+ current_user: {
+ can_edit: true,
+ can_award_emoji: true,
+ },
+ discussion_id: 'd3842a451b7f3d9a5dfce329515127b2d29a4cd0',
+ emoji_awardable: true,
+ award_emoji: [
+ {
+ name: 'baseball',
+ user: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ },
+ },
+ {
+ name: 'bath_tone3',
+ user: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ },
+ },
+ ],
+ toggle_award_path: '/gitlab-org/gitlab-foss/notes/546/toggle_award_emoji',
+ note_url: '/group/project/merge_requests/1#note_1',
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_546&user_id=1',
+ path: '/gitlab-org/gitlab-foss/notes/546',
+};
+
+export const discussionMock = {
+ id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
+ reply_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
+ expanded: true,
+ notes: [
+ {
+ id: '1395',
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-02T10:51:58.559Z',
+ updated_at: '2017-08-02T10:51:58.559Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'THIS IS A DICUSSSION!',
+ note_html: "<p dir='auto'>THIS IS A DICUSSSION!</p>",
+ current_user: {
+ can_edit: true,
+ can_award_emoji: true,
+ can_resolve: true,
+ },
+ discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
+ emoji_awardable: true,
+ award_emoji: [],
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ toggle_award_path: '/gitlab-org/gitlab-foss/notes/1395/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1395&user_id=1',
+ path: '/gitlab-org/gitlab-foss/notes/1395',
+ },
+ {
+ id: '1396',
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-02T10:56:50.980Z',
+ updated_at: '2017-08-03T14:19:35.691Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'sadfasdsdgdsf',
+ note_html: "<p dir='auto'>sadfasdsdgdsf</p>",
+ last_edited_at: '2017-08-03T14:19:35.691Z',
+ last_edited_by: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ current_user: {
+ can_edit: true,
+ can_award_emoji: true,
+ can_resolve: true,
+ },
+ discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
+ emoji_awardable: true,
+ award_emoji: [],
+ toggle_award_path: '/gitlab-org/gitlab-foss/notes/1396/toggle_award_emoji',
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1396&user_id=1',
+ path: '/gitlab-org/gitlab-foss/notes/1396',
+ },
+ {
+ id: '1437',
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-03T18:11:18.780Z',
+ updated_at: '2017-08-04T09:52:31.062Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'adsfasf Should disappear',
+ note_html: "<p dir='auto'>adsfasf Should disappear</p>",
+ last_edited_at: '2017-08-04T09:52:31.062Z',
+ last_edited_by: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ current_user: {
+ can_edit: true,
+ can_award_emoji: true,
+ can_resolve: true,
+ },
+ discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
+ emoji_awardable: true,
+ award_emoji: [],
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ toggle_award_path: '/gitlab-org/gitlab-foss/notes/1437/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1437&user_id=1',
+ path: '/gitlab-org/gitlab-foss/notes/1437',
+ },
+ ],
+ individual_note: false,
+ resolvable: true,
+ active: true,
+};
+
+export const loggedOutnoteableData = {
+ id: '98',
+ iid: 26,
+ author_id: 1,
+ description: '',
+ lock_version: 1,
+ milestone_id: null,
+ state: 'opened',
+ title: 'asdsa',
+ updated_by_id: 1,
+ created_at: '2017-02-07T10:11:18.395Z',
+ updated_at: '2017-08-08T10:22:51.564Z',
+ time_estimate: 0,
+ total_time_spent: 0,
+ human_time_estimate: null,
+ human_total_time_spent: null,
+ milestone: null,
+ labels: [],
+ branch_name: null,
+ confidential: false,
+ assignees: [
+ {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ web_url: 'http://localhost:3000/root',
+ },
+ ],
+ due_date: null,
+ moved_to_id: null,
+ project_id: 2,
+ web_url: '/gitlab-org/gitlab-foss/issues/26',
+ current_user: {
+ can_create_note: false,
+ can_update: false,
+ },
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ create_note_path: '/gitlab-org/gitlab-foss/notes?target_id=98&target_type=issue',
+ preview_note_path: '/gitlab-org/gitlab-foss/preview_markdown?target_id=98&target_type=Issue',
+};
+
+export const collapseNotesMock = [
+ {
+ expanded: true,
+ id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ individual_note: true,
+ notes: [
+ {
+ id: '1390',
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: 'test',
+ path: '/root',
+ },
+ created_at: '2018-02-26T18:07:41.071Z',
+ updated_at: '2018-02-26T18:07:41.071Z',
+ system: true,
+ system_note_icon_name: 'pencil',
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: null,
+ human_access: 'Owner',
+ note: 'changed the description',
+ note_html: '<p dir="auto">changed the description</p>',
+ current_user: { can_edit: false },
+ discussion_id: 'b97fb7bda470a65b3e009377a9032edec0a4dd05',
+ emoji_awardable: false,
+ path: '/h5bp/html5-boilerplate/notes/1057',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fh5bp%2Fhtml5-boilerplate%2Fissues%2F10%23note_1057&user_id=1',
+ },
+ ],
+ },
+ {
+ expanded: true,
+ id: 'ffde43f25984ad7f2b4275135e0e2846875336c0',
+ individual_note: true,
+ notes: [
+ {
+ id: '1391',
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: 'test',
+ path: '/root',
+ },
+ created_at: '2018-02-26T18:13:24.071Z',
+ updated_at: '2018-02-26T18:13:24.071Z',
+ system: true,
+ system_note_icon_name: 'pencil',
+ noteable_id: 99,
+ noteable_type: 'Issue',
+ type: null,
+ human_access: 'Owner',
+ note: 'changed the description',
+ note_html: '<p dir="auto">changed the description</p>',
+ current_user: { can_edit: false },
+ discussion_id: '3eb958b4d81dec207ec3537a2f3bd8b9f271bb34',
+ emoji_awardable: false,
+ path: '/h5bp/html5-boilerplate/notes/1057',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fh5bp%2Fhtml5-boilerplate%2Fissues%2F10%23note_1057&user_id=1',
+ },
+ ],
+ },
+];
+
+export const INDIVIDUAL_NOTE_RESPONSE_MAP = {
+ GET: {
+ '/gitlab-org/gitlab-foss/issues/26/discussions.json': [
+ {
+ id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ reply_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ expanded: true,
+ notes: [
+ {
+ id: '1390',
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-01T17:09:33.762Z',
+ updated_at: '2017-08-01T17:09:33.762Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: null,
+ human_access: 'Owner',
+ note: 'sdfdsaf',
+ note_html: '\u003cp dir="auto"\u003esdfdsaf\u003c/p\u003e',
+ current_user: {
+ can_edit: true,
+ can_award_emoji: true,
+ },
+ discussion_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ emoji_awardable: true,
+ award_emoji: [
+ {
+ name: 'baseball',
+ user: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ },
+ },
+ {
+ name: 'art',
+ user: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ },
+ },
+ ],
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390\u0026user_id=1',
+ path: '/gitlab-org/gitlab-foss/notes/1390',
+ },
+ ],
+ individual_note: true,
+ },
+ {
+ id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
+ reply_id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
+ expanded: true,
+ notes: [
+ {
+ id: '1391',
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-02T10:51:38.685Z',
+ updated_at: '2017-08-02T10:51:38.685Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: null,
+ human_access: 'Owner',
+ note: 'New note!',
+ note_html: '\u003cp dir="auto"\u003eNew note!\u003c/p\u003e',
+ current_user: {
+ can_edit: true,
+ can_award_emoji: true,
+ },
+ discussion_id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
+ emoji_awardable: true,
+ award_emoji: [],
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ toggle_award_path: '/gitlab-org/gitlab-foss/notes/1391/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1391\u0026user_id=1',
+ path: '/gitlab-org/gitlab-foss/notes/1391',
+ },
+ ],
+ individual_note: true,
+ },
+ ],
+ '/gitlab-org/gitlab-foss/noteable/issue/98/notes': {
+ last_fetched_at: 1512900838,
+ notes: [],
+ },
+ },
+ PUT: {
+ '/gitlab-org/gitlab-foss/notes/1471': {
+ commands_changes: null,
+ valid: true,
+ id: '1471',
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-08T16:53:00.666Z',
+ updated_at: '2017-12-10T11:03:21.876Z',
+ system: false,
+ noteable_id: 124,
+ noteable_type: 'Issue',
+ noteable_iid: 29,
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'Adding a comment',
+ note_html: '\u003cp dir="auto"\u003eAdding a comment\u003c/p\u003e',
+ last_edited_at: '2017-12-10T11:03:21.876Z',
+ last_edited_by: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ current_user: {
+ can_edit: true,
+ can_award_emoji: true,
+ },
+ discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
+ emoji_awardable: true,
+ award_emoji: [],
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
+ path: '/gitlab-org/gitlab-foss/notes/1471',
+ },
+ },
+};
+
+export const DISCUSSION_NOTE_RESPONSE_MAP = {
+ ...INDIVIDUAL_NOTE_RESPONSE_MAP,
+ GET: {
+ ...INDIVIDUAL_NOTE_RESPONSE_MAP.GET,
+ '/gitlab-org/gitlab-foss/issues/26/discussions.json': [
+ {
+ id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
+ reply_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
+ expanded: true,
+ notes: [
+ {
+ id: '1471',
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-08T16:53:00.666Z',
+ updated_at: '2017-08-08T16:53:00.666Z',
+ system: false,
+ noteable_id: 124,
+ noteable_type: 'Issue',
+ noteable_iid: 29,
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'Adding a comment',
+ note_html: '\u003cp dir="auto"\u003eAdding a comment\u003c/p\u003e',
+ current_user: {
+ can_edit: true,
+ can_award_emoji: true,
+ },
+ discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
+ emoji_awardable: true,
+ award_emoji: [],
+ toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji',
+ noteable_note_url: '/group/project/merge_requests/1#note_1',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
+ path: '/gitlab-org/gitlab-foss/notes/1471',
+ },
+ ],
+ individual_note: false,
+ },
+ ],
+ },
+};
+
+export function getIndividualNoteResponse(config) {
+ return [200, INDIVIDUAL_NOTE_RESPONSE_MAP[config.method.toUpperCase()][config.url]];
+}
+
+export function getDiscussionNoteResponse(config) {
+ return [200, DISCUSSION_NOTE_RESPONSE_MAP[config.method.toUpperCase()][config.url]];
+}
+
+export const notesWithDescriptionChanges = [
+ {
+ id: '39b271c2033e9ed43d8edb393702f65f7a830459',
+ reply_id: '39b271c2033e9ed43d8edb393702f65f7a830459',
+ expanded: true,
+ notes: [
+ {
+ id: '901',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:05:36.117Z',
+ updated_at: '2018-05-29T12:05:36.117Z',
+ system: false,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
+ note_html:
+ '<p dir="auto">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>',
+ current_user: { can_edit: true, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ discussion_id: '39b271c2033e9ed43d8edb393702f65f7a830459',
+ emoji_awardable: true,
+ award_emoji: [],
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_901&user_id=1',
+ human_access: 'Owner',
+ toggle_award_path: '/gitlab-org/gitlab-shell/notes/901/toggle_award_emoji',
+ path: '/gitlab-org/gitlab-shell/notes/901',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+ {
+ id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
+ reply_id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
+ expanded: true,
+ notes: [
+ {
+ id: '902',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:05:58.694Z',
+ updated_at: '2018-05-29T12:05:58.694Z',
+ system: false,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note:
+ 'Varius vel pharetra vel turpis nunc eget lorem. Ipsum dolor sit amet consectetur adipiscing.',
+ note_html:
+ '<p dir="auto">Varius vel pharetra vel turpis nunc eget lorem. Ipsum dolor sit amet consectetur adipiscing.</p>',
+ current_user: { can_edit: true, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ discussion_id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
+ emoji_awardable: true,
+ award_emoji: [],
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_902&user_id=1',
+ human_access: 'Owner',
+ toggle_award_path: '/gitlab-org/gitlab-shell/notes/902/toggle_award_emoji',
+ path: '/gitlab-org/gitlab-shell/notes/902',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+ {
+ id: '7f1feda384083eb31763366e6392399fde6f3f31',
+ reply_id: '7f1feda384083eb31763366e6392399fde6f3f31',
+ expanded: true,
+ notes: [
+ {
+ id: '903',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:06:05.772Z',
+ updated_at: '2018-05-29T12:06:05.772Z',
+ system: true,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note: 'changed the description',
+ note_html: '<p dir="auto">changed the description</p>',
+ current_user: { can_edit: false, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ system_note_icon_name: 'pencil-square',
+ discussion_id: '7f1feda384083eb31763366e6392399fde6f3f31',
+ emoji_awardable: false,
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_903&user_id=1',
+ human_access: 'Owner',
+ path: '/gitlab-org/gitlab-shell/notes/903',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+ {
+ id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
+ reply_id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
+ expanded: true,
+ notes: [
+ {
+ id: '904',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:06:16.112Z',
+ updated_at: '2018-05-29T12:06:16.112Z',
+ system: false,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note: 'Ullamcorper eget nulla facilisi etiam',
+ note_html: '<p dir="auto">Ullamcorper eget nulla facilisi etiam</p>',
+ current_user: { can_edit: true, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ discussion_id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
+ emoji_awardable: true,
+ award_emoji: [],
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_904&user_id=1',
+ human_access: 'Owner',
+ toggle_award_path: '/gitlab-org/gitlab-shell/notes/904/toggle_award_emoji',
+ path: '/gitlab-org/gitlab-shell/notes/904',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+ {
+ id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
+ reply_id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
+ expanded: true,
+ notes: [
+ {
+ id: '905',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:06:28.851Z',
+ updated_at: '2018-05-29T12:06:28.851Z',
+ system: true,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note: 'changed the description',
+ note_html: '<p dir="auto">changed the description</p>',
+ current_user: { can_edit: false, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ system_note_icon_name: 'pencil-square',
+ discussion_id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
+ emoji_awardable: false,
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_905&user_id=1',
+ human_access: 'Owner',
+ path: '/gitlab-org/gitlab-shell/notes/905',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+ {
+ id: '70411b08cdfc01f24187a06d77daa33464cb2620',
+ reply_id: '70411b08cdfc01f24187a06d77daa33464cb2620',
+ expanded: true,
+ notes: [
+ {
+ id: '906',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:20:02.925Z',
+ updated_at: '2018-05-29T12:20:02.925Z',
+ system: true,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note: 'changed the description',
+ note_html: '<p dir="auto">changed the description</p>',
+ current_user: { can_edit: false, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ system_note_icon_name: 'pencil-square',
+ discussion_id: '70411b08cdfc01f24187a06d77daa33464cb2620',
+ emoji_awardable: false,
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_906&user_id=1',
+ human_access: 'Owner',
+ path: '/gitlab-org/gitlab-shell/notes/906',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+];
+
+export const collapsedSystemNotes = [
+ {
+ id: '39b271c2033e9ed43d8edb393702f65f7a830459',
+ reply_id: '39b271c2033e9ed43d8edb393702f65f7a830459',
+ expanded: true,
+ notes: [
+ {
+ id: '901',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:05:36.117Z',
+ updated_at: '2018-05-29T12:05:36.117Z',
+ system: false,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note:
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
+ note_html:
+ '<p dir="auto">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>',
+ current_user: { can_edit: true, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ discussion_id: '39b271c2033e9ed43d8edb393702f65f7a830459',
+ emoji_awardable: true,
+ award_emoji: [],
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_901&user_id=1',
+ human_access: 'Owner',
+ toggle_award_path: '/gitlab-org/gitlab-shell/notes/901/toggle_award_emoji',
+ path: '/gitlab-org/gitlab-shell/notes/901',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+ {
+ id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
+ reply_id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
+ expanded: true,
+ notes: [
+ {
+ id: '902',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:05:58.694Z',
+ updated_at: '2018-05-29T12:05:58.694Z',
+ system: false,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note:
+ 'Varius vel pharetra vel turpis nunc eget lorem. Ipsum dolor sit amet consectetur adipiscing.',
+ note_html:
+ '<p dir="auto">Varius vel pharetra vel turpis nunc eget lorem. Ipsum dolor sit amet consectetur adipiscing.</p>',
+ current_user: { can_edit: true, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ discussion_id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
+ emoji_awardable: true,
+ award_emoji: [],
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_902&user_id=1',
+ human_access: 'Owner',
+ toggle_award_path: '/gitlab-org/gitlab-shell/notes/902/toggle_award_emoji',
+ path: '/gitlab-org/gitlab-shell/notes/902',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+ {
+ id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
+ reply_id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
+ expanded: true,
+ notes: [
+ {
+ id: '904',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:06:16.112Z',
+ updated_at: '2018-05-29T12:06:16.112Z',
+ system: false,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note: 'Ullamcorper eget nulla facilisi etiam',
+ note_html: '<p dir="auto">Ullamcorper eget nulla facilisi etiam</p>',
+ current_user: { can_edit: true, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ discussion_id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
+ emoji_awardable: true,
+ award_emoji: [],
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_904&user_id=1',
+ human_access: 'Owner',
+ toggle_award_path: '/gitlab-org/gitlab-shell/notes/904/toggle_award_emoji',
+ path: '/gitlab-org/gitlab-shell/notes/904',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+ {
+ id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
+ reply_id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
+ expanded: true,
+ notes: [
+ {
+ id: '905',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:06:28.851Z',
+ updated_at: '2018-05-29T12:06:28.851Z',
+ system: true,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note: 'changed the description',
+ note_html: ' <p dir="auto">changed the description 2 times within 1 minute </p>',
+ current_user: { can_edit: false, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ system_note_icon_name: 'pencil-square',
+ discussion_id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
+ emoji_awardable: false,
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_905&user_id=1',
+ human_access: 'Owner',
+ path: '/gitlab-org/gitlab-shell/notes/905',
+ times_updated: 2,
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+ {
+ id: '70411b08cdfc01f24187a06d77daa33464cb2620',
+ reply_id: '70411b08cdfc01f24187a06d77daa33464cb2620',
+ expanded: true,
+ notes: [
+ {
+ id: '906',
+ type: null,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
+ },
+ created_at: '2018-05-29T12:20:02.925Z',
+ updated_at: '2018-05-29T12:20:02.925Z',
+ system: true,
+ noteable_id: 182,
+ noteable_type: 'Issue',
+ resolvable: false,
+ noteable_iid: 12,
+ note: 'changed the description',
+ note_html: '<p dir="auto">changed the description</p>',
+ current_user: { can_edit: false, can_award_emoji: true },
+ resolved: false,
+ resolved_by: null,
+ system_note_icon_name: 'pencil-square',
+ discussion_id: '70411b08cdfc01f24187a06d77daa33464cb2620',
+ emoji_awardable: false,
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_906&user_id=1',
+ human_access: 'Owner',
+ path: '/gitlab-org/gitlab-shell/notes/906',
+ },
+ ],
+ individual_note: true,
+ resolvable: false,
+ resolved: false,
+ diff_discussion: false,
+ },
+];
+
+export const discussion1 = {
+ id: 'abc1',
+ resolvable: true,
+ resolved: false,
+ active: true,
+ diff_file: {
+ file_path: 'about.md',
+ },
+ position: {
+ new_line: 50,
+ old_line: null,
+ },
+ notes: [
+ {
+ created_at: '2018-07-04T16:25:41.749Z',
+ },
+ ],
+};
+
+export const resolvedDiscussion1 = {
+ id: 'abc1',
+ resolvable: true,
+ resolved: true,
+ diff_file: {
+ file_path: 'about.md',
+ },
+ position: {
+ new_line: 50,
+ old_line: null,
+ },
+ notes: [
+ {
+ created_at: '2018-07-04T16:25:41.749Z',
+ },
+ ],
+};
+
+export const discussion2 = {
+ id: 'abc2',
+ resolvable: true,
+ resolved: false,
+ active: true,
+ diff_file: {
+ file_path: 'README.md',
+ },
+ position: {
+ new_line: null,
+ old_line: 20,
+ },
+ notes: [
+ {
+ created_at: '2018-07-04T12:05:41.749Z',
+ },
+ ],
+};
+
+export const discussion3 = {
+ id: 'abc3',
+ resolvable: true,
+ active: true,
+ resolved: false,
+ diff_file: {
+ file_path: 'README.md',
+ },
+ position: {
+ new_line: 21,
+ old_line: null,
+ },
+ notes: [
+ {
+ created_at: '2018-07-05T17:25:41.749Z',
+ },
+ ],
+};
+
+export const unresolvableDiscussion = {
+ resolvable: false,
+};
+
+export const discussionFiltersMock = [
+ {
+ title: 'Show all activity',
+ value: 0,
+ },
+ {
+ title: 'Show comments only',
+ value: 1,
+ },
+ {
+ title: 'Show system notes only',
+ value: 2,
+ },
+];
diff --git a/spec/frontend/vue_shared/components/notes/placeholder_note_spec.js b/spec/frontend/vue_shared/components/notes/placeholder_note_spec.js
index eafff7f681e..45f131194ca 100644
--- a/spec/frontend/vue_shared/components/notes/placeholder_note_spec.js
+++ b/spec/frontend/vue_shared/components/notes/placeholder_note_spec.js
@@ -1,7 +1,7 @@
import Vue from 'vue';
import issuePlaceholderNote from '~/vue_shared/components/notes/placeholder_note.vue';
import createStore from '~/notes/stores';
-import { userDataMock } from '../../../../javascripts/notes/mock_data';
+import { userDataMock } from '../../../notes/mock_data';
describe('issue placeholder system note component', () => {
let store;
diff --git a/spec/javascripts/issue_show/helpers.js b/spec/javascripts/issue_show/helpers.js
index 5d2ced98ae4..951acfd4e10 100644
--- a/spec/javascripts/issue_show/helpers.js
+++ b/spec/javascripts/issue_show/helpers.js
@@ -1,10 +1 @@
-// eslint-disable-next-line import/prefer-default-export
-export const keyboardDownEvent = (code, metaKey = false, ctrlKey = false) => {
- const e = new CustomEvent('keydown');
-
- e.keyCode = code;
- e.metaKey = metaKey;
- e.ctrlKey = ctrlKey;
-
- return e;
-};
+export * from '../../frontend/issue_show/helpers.js';
diff --git a/spec/javascripts/notes/components/comment_form_spec.js b/spec/javascripts/notes/components/comment_form_spec.js
deleted file mode 100644
index 88c86746992..00000000000
--- a/spec/javascripts/notes/components/comment_form_spec.js
+++ /dev/null
@@ -1,301 +0,0 @@
-import $ from 'jquery';
-import Vue from 'vue';
-import Autosize from 'autosize';
-import createStore from '~/notes/stores';
-import CommentForm from '~/notes/components/comment_form.vue';
-import * as constants from '~/notes/constants';
-import { loggedOutnoteableData, notesDataMock, userDataMock, noteableDataMock } from '../mock_data';
-import { keyboardDownEvent } from '../../issue_show/helpers';
-
-describe('issue_comment_form component', () => {
- let store;
- let vm;
- const Component = Vue.extend(CommentForm);
- let mountComponent;
-
- beforeEach(() => {
- store = createStore();
- mountComponent = (noteableType = 'issue') =>
- new Component({
- propsData: {
- noteableType,
- },
- store,
- }).$mount();
- });
-
- afterEach(() => {
- vm.$destroy();
- });
-
- describe('user is logged in', () => {
- beforeEach(() => {
- store.dispatch('setUserData', userDataMock);
- store.dispatch('setNoteableData', noteableDataMock);
- store.dispatch('setNotesData', notesDataMock);
-
- vm = mountComponent();
- });
-
- it('should render user avatar with link', () => {
- expect(vm.$el.querySelector('.timeline-icon .user-avatar-link').getAttribute('href')).toEqual(
- userDataMock.path,
- );
- });
-
- describe('handleSave', () => {
- it('should request to save note when note is entered', () => {
- vm.note = 'hello world';
- spyOn(vm, 'saveNote').and.returnValue(new Promise(() => {}));
- spyOn(vm, 'resizeTextarea');
- spyOn(vm, 'stopPolling');
-
- vm.handleSave();
-
- expect(vm.isSubmitting).toEqual(true);
- expect(vm.note).toEqual('');
- expect(vm.saveNote).toHaveBeenCalled();
- expect(vm.stopPolling).toHaveBeenCalled();
- expect(vm.resizeTextarea).toHaveBeenCalled();
- });
-
- it('should toggle issue state when no note', () => {
- spyOn(vm, 'toggleIssueState');
-
- vm.handleSave();
-
- expect(vm.toggleIssueState).toHaveBeenCalled();
- });
-
- it('should disable action button whilst submitting', done => {
- const saveNotePromise = Promise.resolve();
- vm.note = 'hello world';
- spyOn(vm, 'saveNote').and.returnValue(saveNotePromise);
- spyOn(vm, 'stopPolling');
-
- const actionButton = vm.$el.querySelector('.js-action-button');
-
- vm.handleSave();
-
- Vue.nextTick()
- .then(() => {
- expect(actionButton.disabled).toBeTruthy();
- })
- .then(saveNotePromise)
- .then(Vue.nextTick)
- .then(() => {
- expect(actionButton.disabled).toBeFalsy();
- })
- .then(done)
- .catch(done.fail);
- });
- });
-
- describe('textarea', () => {
- it('should render textarea with placeholder', () => {
- expect(
- vm.$el.querySelector('.js-main-target-form textarea').getAttribute('placeholder'),
- ).toEqual('Write a comment or drag your files here…');
- });
-
- it('should make textarea disabled while requesting', done => {
- const $submitButton = $(vm.$el.querySelector('.js-comment-submit-button'));
- vm.note = 'hello world';
- spyOn(vm, 'stopPolling');
- spyOn(vm, 'saveNote').and.returnValue(new Promise(() => {}));
-
- vm.$nextTick(() => {
- // Wait for vm.note change triggered. It should enable $submitButton.
- $submitButton.trigger('click');
-
- vm.$nextTick(() => {
- // Wait for vm.isSubmitting triggered. It should disable textarea.
- expect(vm.$el.querySelector('.js-main-target-form textarea').disabled).toBeTruthy();
- done();
- });
- });
- });
-
- it('should support quick actions', () => {
- expect(
- vm.$el
- .querySelector('.js-main-target-form textarea')
- .getAttribute('data-supports-quick-actions'),
- ).toEqual('true');
- });
-
- it('should link to markdown docs', () => {
- const { markdownDocsPath } = notesDataMock;
-
- expect(vm.$el.querySelector(`a[href="${markdownDocsPath}"]`).textContent.trim()).toEqual(
- 'Markdown',
- );
- });
-
- it('should link to quick actions docs', () => {
- const { quickActionsDocsPath } = notesDataMock;
-
- expect(
- vm.$el.querySelector(`a[href="${quickActionsDocsPath}"]`).textContent.trim(),
- ).toEqual('quick actions');
- });
-
- it('should resize textarea after note discarded', done => {
- spyOn(Autosize, 'update');
- spyOn(vm, 'discard').and.callThrough();
-
- vm.note = 'foo';
- vm.discard();
-
- Vue.nextTick(() => {
- expect(Autosize.update).toHaveBeenCalled();
- done();
- });
- });
-
- describe('edit mode', () => {
- it('should enter edit mode when arrow up is pressed', () => {
- spyOn(vm, 'editCurrentUserLastNote').and.callThrough();
- vm.$el.querySelector('.js-main-target-form textarea').value = 'Foo';
- vm.$el
- .querySelector('.js-main-target-form textarea')
- .dispatchEvent(keyboardDownEvent(38, true));
-
- expect(vm.editCurrentUserLastNote).toHaveBeenCalled();
- });
-
- it('inits autosave', () => {
- expect(vm.autosave).toBeDefined();
- expect(vm.autosave.key).toEqual(`autosave/Note/Issue/${noteableDataMock.id}`);
- });
- });
-
- describe('event enter', () => {
- it('should save note when cmd+enter is pressed', () => {
- spyOn(vm, 'handleSave').and.callThrough();
- vm.$el.querySelector('.js-main-target-form textarea').value = 'Foo';
- vm.$el
- .querySelector('.js-main-target-form textarea')
- .dispatchEvent(keyboardDownEvent(13, true));
-
- expect(vm.handleSave).toHaveBeenCalled();
- });
-
- it('should save note when ctrl+enter is pressed', () => {
- spyOn(vm, 'handleSave').and.callThrough();
- vm.$el.querySelector('.js-main-target-form textarea').value = 'Foo';
- vm.$el
- .querySelector('.js-main-target-form textarea')
- .dispatchEvent(keyboardDownEvent(13, false, true));
-
- expect(vm.handleSave).toHaveBeenCalled();
- });
- });
- });
-
- describe('actions', () => {
- it('should be possible to close the issue', () => {
- expect(vm.$el.querySelector('.btn-comment-and-close').textContent.trim()).toEqual(
- 'Close issue',
- );
- });
-
- it('should render comment button as disabled', () => {
- expect(vm.$el.querySelector('.js-comment-submit-button').getAttribute('disabled')).toEqual(
- 'disabled',
- );
- });
-
- it('should enable comment button if it has note', done => {
- vm.note = 'Foo';
- Vue.nextTick(() => {
- expect(
- vm.$el.querySelector('.js-comment-submit-button').getAttribute('disabled'),
- ).toEqual(null);
- done();
- });
- });
-
- it('should update buttons texts when it has note', done => {
- vm.note = 'Foo';
- Vue.nextTick(() => {
- expect(vm.$el.querySelector('.btn-comment-and-close').textContent.trim()).toEqual(
- 'Comment & close issue',
- );
-
- done();
- });
- });
-
- it('updates button text with noteable type', done => {
- vm.noteableType = constants.MERGE_REQUEST_NOTEABLE_TYPE;
-
- Vue.nextTick(() => {
- expect(vm.$el.querySelector('.btn-comment-and-close').textContent.trim()).toEqual(
- 'Close merge request',
- );
- done();
- });
- });
-
- describe('when clicking close/reopen button', () => {
- it('should disable button and show a loading spinner', done => {
- const toggleStateButton = vm.$el.querySelector('.js-action-button');
-
- toggleStateButton.click();
- Vue.nextTick(() => {
- expect(toggleStateButton.disabled).toEqual(true);
- expect(toggleStateButton.querySelector('.js-loading-button-icon')).not.toBeNull();
-
- done();
- });
- });
- });
-
- describe('when toggling state', () => {
- it('should update MR count', done => {
- spyOn(vm, 'closeIssue').and.returnValue(Promise.resolve());
-
- const updateMrCountSpy = spyOnDependency(CommentForm, 'refreshUserMergeRequestCounts');
- vm.toggleIssueState();
-
- Vue.nextTick(() => {
- expect(updateMrCountSpy).toHaveBeenCalled();
-
- done();
- });
- });
- });
- });
-
- describe('issue is confidential', () => {
- it('shows information warning', done => {
- store.dispatch('setNoteableData', Object.assign(noteableDataMock, { confidential: true }));
- Vue.nextTick(() => {
- expect(vm.$el.querySelector('.confidential-issue-warning')).toBeDefined();
- done();
- });
- });
- });
- });
-
- describe('user is not logged in', () => {
- beforeEach(() => {
- store.dispatch('setUserData', null);
- store.dispatch('setNoteableData', loggedOutnoteableData);
- store.dispatch('setNotesData', notesDataMock);
-
- vm = mountComponent();
- });
-
- it('should render signed out widget', () => {
- expect(vm.$el.textContent.replace(/\s+/g, ' ').trim()).toEqual(
- 'Please register or sign in to reply',
- );
- });
-
- it('should not render submission form', () => {
- expect(vm.$el.querySelector('textarea')).toEqual(null);
- });
- });
-});
diff --git a/spec/javascripts/notes/mock_data.js b/spec/javascripts/notes/mock_data.js
index dc914ce8355..89e4553092a 100644
--- a/spec/javascripts/notes/mock_data.js
+++ b/spec/javascripts/notes/mock_data.js
@@ -1,1255 +1 @@
-// Copied to ee/spec/frontend/notes/mock_data.js
-
-export const notesDataMock = {
- discussionsPath: '/gitlab-org/gitlab-foss/issues/26/discussions.json',
- lastFetchedAt: 1501862675,
- markdownDocsPath: '/help/user/markdown',
- newSessionPath: '/users/sign_in?redirect_to_referer=yes',
- notesPath: '/gitlab-org/gitlab-foss/noteable/issue/98/notes',
- quickActionsDocsPath: '/help/user/project/quick_actions',
- registerPath: '/users/sign_in?redirect_to_referer=yes#register-pane',
- prerenderedNotesCount: 1,
- closePath: '/twitter/flight/issues/9.json?issue%5Bstate_event%5D=close',
- reopenPath: '/twitter/flight/issues/9.json?issue%5Bstate_event%5D=reopen',
- canAwardEmoji: true,
-};
-
-export const userDataMock = {
- avatar_url: 'mock_path',
- id: 1,
- name: 'Root',
- path: '/root',
- state: 'active',
- username: 'root',
-};
-
-export const noteableDataMock = {
- assignees: [],
- author_id: 1,
- branch_name: null,
- confidential: false,
- create_note_path: '/gitlab-org/gitlab-foss/notes?target_id=98&target_type=issue',
- created_at: '2017-02-07T10:11:18.395Z',
- current_user: {
- can_create_note: true,
- can_update: true,
- can_award_emoji: true,
- },
- description: '',
- due_date: null,
- human_time_estimate: null,
- human_total_time_spent: null,
- id: 98,
- iid: 26,
- labels: [],
- lock_version: null,
- milestone: null,
- milestone_id: null,
- moved_to_id: null,
- preview_note_path: '/gitlab-org/gitlab-foss/preview_markdown?target_id=98&target_type=Issue',
- project_id: 2,
- state: 'opened',
- time_estimate: 0,
- title: '14',
- total_time_spent: 0,
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- updated_at: '2017-08-04T09:53:01.226Z',
- updated_by_id: 1,
- web_url: '/gitlab-org/gitlab-foss/issues/26',
- noteableType: 'issue',
-};
-
-export const lastFetchedAt = '1501862675';
-
-export const individualNote = {
- expanded: true,
- id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
- individual_note: true,
- notes: [
- {
- id: '1390',
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: 'test',
- path: '/root',
- },
- created_at: '2017-08-01T17: 09: 33.762Z',
- updated_at: '2017-08-01T17: 09: 33.762Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: null,
- human_access: 'Owner',
- note: 'sdfdsaf',
- note_html: "<p dir='auto'>sdfdsaf</p>",
- current_user: {
- can_edit: true,
- can_award_emoji: true,
- },
- discussion_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
- emoji_awardable: true,
- award_emoji: [
- { name: 'baseball', user: { id: 1, name: 'Root', username: 'root' } },
- { name: 'art', user: { id: 1, name: 'Root', username: 'root' } },
- ],
- toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji',
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- note_url: '/group/project/merge_requests/1#note_1',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390&user_id=1',
- path: '/gitlab-org/gitlab-foss/notes/1390',
- },
- ],
- reply_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
-};
-
-export const note = {
- id: '546',
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2017-08-10T15:24:03.087Z',
- updated_at: '2017-08-10T15:24:03.087Z',
- system: false,
- noteable_id: 67,
- noteable_type: 'Issue',
- noteable_iid: 7,
- type: null,
- human_access: 'Owner',
- note: 'Vel id placeat reprehenderit sit numquam.',
- note_html: '<p dir="auto">Vel id placeat reprehenderit sit numquam.</p>',
- current_user: {
- can_edit: true,
- can_award_emoji: true,
- },
- discussion_id: 'd3842a451b7f3d9a5dfce329515127b2d29a4cd0',
- emoji_awardable: true,
- award_emoji: [
- {
- name: 'baseball',
- user: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- },
- },
- {
- name: 'bath_tone3',
- user: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- },
- },
- ],
- toggle_award_path: '/gitlab-org/gitlab-foss/notes/546/toggle_award_emoji',
- note_url: '/group/project/merge_requests/1#note_1',
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_546&user_id=1',
- path: '/gitlab-org/gitlab-foss/notes/546',
-};
-
-export const discussionMock = {
- id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
- reply_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
- expanded: true,
- notes: [
- {
- id: '1395',
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- created_at: '2017-08-02T10:51:58.559Z',
- updated_at: '2017-08-02T10:51:58.559Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: 'DiscussionNote',
- human_access: 'Owner',
- note: 'THIS IS A DICUSSSION!',
- note_html: "<p dir='auto'>THIS IS A DICUSSSION!</p>",
- current_user: {
- can_edit: true,
- can_award_emoji: true,
- can_resolve: true,
- },
- discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
- emoji_awardable: true,
- award_emoji: [],
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- toggle_award_path: '/gitlab-org/gitlab-foss/notes/1395/toggle_award_emoji',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1395&user_id=1',
- path: '/gitlab-org/gitlab-foss/notes/1395',
- },
- {
- id: '1396',
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- created_at: '2017-08-02T10:56:50.980Z',
- updated_at: '2017-08-03T14:19:35.691Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: 'DiscussionNote',
- human_access: 'Owner',
- note: 'sadfasdsdgdsf',
- note_html: "<p dir='auto'>sadfasdsdgdsf</p>",
- last_edited_at: '2017-08-03T14:19:35.691Z',
- last_edited_by: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- current_user: {
- can_edit: true,
- can_award_emoji: true,
- can_resolve: true,
- },
- discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
- emoji_awardable: true,
- award_emoji: [],
- toggle_award_path: '/gitlab-org/gitlab-foss/notes/1396/toggle_award_emoji',
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1396&user_id=1',
- path: '/gitlab-org/gitlab-foss/notes/1396',
- },
- {
- id: '1437',
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- created_at: '2017-08-03T18:11:18.780Z',
- updated_at: '2017-08-04T09:52:31.062Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: 'DiscussionNote',
- human_access: 'Owner',
- note: 'adsfasf Should disappear',
- note_html: "<p dir='auto'>adsfasf Should disappear</p>",
- last_edited_at: '2017-08-04T09:52:31.062Z',
- last_edited_by: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- current_user: {
- can_edit: true,
- can_award_emoji: true,
- can_resolve: true,
- },
- discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
- emoji_awardable: true,
- award_emoji: [],
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- toggle_award_path: '/gitlab-org/gitlab-foss/notes/1437/toggle_award_emoji',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1437&user_id=1',
- path: '/gitlab-org/gitlab-foss/notes/1437',
- },
- ],
- individual_note: false,
- resolvable: true,
- active: true,
-};
-
-export const loggedOutnoteableData = {
- id: '98',
- iid: 26,
- author_id: 1,
- description: '',
- lock_version: 1,
- milestone_id: null,
- state: 'opened',
- title: 'asdsa',
- updated_by_id: 1,
- created_at: '2017-02-07T10:11:18.395Z',
- updated_at: '2017-08-08T10:22:51.564Z',
- time_estimate: 0,
- total_time_spent: 0,
- human_time_estimate: null,
- human_total_time_spent: null,
- milestone: null,
- labels: [],
- branch_name: null,
- confidential: false,
- assignees: [
- {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- web_url: 'http://localhost:3000/root',
- },
- ],
- due_date: null,
- moved_to_id: null,
- project_id: 2,
- web_url: '/gitlab-org/gitlab-foss/issues/26',
- current_user: {
- can_create_note: false,
- can_update: false,
- },
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- create_note_path: '/gitlab-org/gitlab-foss/notes?target_id=98&target_type=issue',
- preview_note_path: '/gitlab-org/gitlab-foss/preview_markdown?target_id=98&target_type=Issue',
-};
-
-export const collapseNotesMock = [
- {
- expanded: true,
- id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
- individual_note: true,
- notes: [
- {
- id: '1390',
- attachment: null,
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: 'test',
- path: '/root',
- },
- created_at: '2018-02-26T18:07:41.071Z',
- updated_at: '2018-02-26T18:07:41.071Z',
- system: true,
- system_note_icon_name: 'pencil',
- noteable_id: 98,
- noteable_type: 'Issue',
- type: null,
- human_access: 'Owner',
- note: 'changed the description',
- note_html: '<p dir="auto">changed the description</p>',
- current_user: { can_edit: false },
- discussion_id: 'b97fb7bda470a65b3e009377a9032edec0a4dd05',
- emoji_awardable: false,
- path: '/h5bp/html5-boilerplate/notes/1057',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fh5bp%2Fhtml5-boilerplate%2Fissues%2F10%23note_1057&user_id=1',
- },
- ],
- },
- {
- expanded: true,
- id: 'ffde43f25984ad7f2b4275135e0e2846875336c0',
- individual_note: true,
- notes: [
- {
- id: '1391',
- attachment: null,
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: 'test',
- path: '/root',
- },
- created_at: '2018-02-26T18:13:24.071Z',
- updated_at: '2018-02-26T18:13:24.071Z',
- system: true,
- system_note_icon_name: 'pencil',
- noteable_id: 99,
- noteable_type: 'Issue',
- type: null,
- human_access: 'Owner',
- note: 'changed the description',
- note_html: '<p dir="auto">changed the description</p>',
- current_user: { can_edit: false },
- discussion_id: '3eb958b4d81dec207ec3537a2f3bd8b9f271bb34',
- emoji_awardable: false,
- path: '/h5bp/html5-boilerplate/notes/1057',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fh5bp%2Fhtml5-boilerplate%2Fissues%2F10%23note_1057&user_id=1',
- },
- ],
- },
-];
-
-export const INDIVIDUAL_NOTE_RESPONSE_MAP = {
- GET: {
- '/gitlab-org/gitlab-foss/issues/26/discussions.json': [
- {
- id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
- reply_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
- expanded: true,
- notes: [
- {
- id: '1390',
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- created_at: '2017-08-01T17:09:33.762Z',
- updated_at: '2017-08-01T17:09:33.762Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: null,
- human_access: 'Owner',
- note: 'sdfdsaf',
- note_html: '\u003cp dir="auto"\u003esdfdsaf\u003c/p\u003e',
- current_user: {
- can_edit: true,
- can_award_emoji: true,
- },
- discussion_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
- emoji_awardable: true,
- award_emoji: [
- {
- name: 'baseball',
- user: {
- id: 1,
- name: 'Root',
- username: 'root',
- },
- },
- {
- name: 'art',
- user: {
- id: 1,
- name: 'Root',
- username: 'root',
- },
- },
- ],
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390\u0026user_id=1',
- path: '/gitlab-org/gitlab-foss/notes/1390',
- },
- ],
- individual_note: true,
- },
- {
- id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
- reply_id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
- expanded: true,
- notes: [
- {
- id: '1391',
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- created_at: '2017-08-02T10:51:38.685Z',
- updated_at: '2017-08-02T10:51:38.685Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: null,
- human_access: 'Owner',
- note: 'New note!',
- note_html: '\u003cp dir="auto"\u003eNew note!\u003c/p\u003e',
- current_user: {
- can_edit: true,
- can_award_emoji: true,
- },
- discussion_id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
- emoji_awardable: true,
- award_emoji: [],
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- toggle_award_path: '/gitlab-org/gitlab-foss/notes/1391/toggle_award_emoji',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1391\u0026user_id=1',
- path: '/gitlab-org/gitlab-foss/notes/1391',
- },
- ],
- individual_note: true,
- },
- ],
- '/gitlab-org/gitlab-foss/noteable/issue/98/notes': {
- last_fetched_at: 1512900838,
- notes: [],
- },
- },
- PUT: {
- '/gitlab-org/gitlab-foss/notes/1471': {
- commands_changes: null,
- valid: true,
- id: '1471',
- attachment: null,
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- created_at: '2017-08-08T16:53:00.666Z',
- updated_at: '2017-12-10T11:03:21.876Z',
- system: false,
- noteable_id: 124,
- noteable_type: 'Issue',
- noteable_iid: 29,
- type: 'DiscussionNote',
- human_access: 'Owner',
- note: 'Adding a comment',
- note_html: '\u003cp dir="auto"\u003eAdding a comment\u003c/p\u003e',
- last_edited_at: '2017-12-10T11:03:21.876Z',
- last_edited_by: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- current_user: {
- can_edit: true,
- can_award_emoji: true,
- },
- discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
- emoji_awardable: true,
- award_emoji: [],
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
- path: '/gitlab-org/gitlab-foss/notes/1471',
- },
- },
-};
-
-export const DISCUSSION_NOTE_RESPONSE_MAP = {
- ...INDIVIDUAL_NOTE_RESPONSE_MAP,
- GET: {
- ...INDIVIDUAL_NOTE_RESPONSE_MAP.GET,
- '/gitlab-org/gitlab-foss/issues/26/discussions.json': [
- {
- id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
- reply_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
- expanded: true,
- notes: [
- {
- id: '1471',
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- created_at: '2017-08-08T16:53:00.666Z',
- updated_at: '2017-08-08T16:53:00.666Z',
- system: false,
- noteable_id: 124,
- noteable_type: 'Issue',
- noteable_iid: 29,
- type: 'DiscussionNote',
- human_access: 'Owner',
- note: 'Adding a comment',
- note_html: '\u003cp dir="auto"\u003eAdding a comment\u003c/p\u003e',
- current_user: {
- can_edit: true,
- can_award_emoji: true,
- },
- discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
- emoji_awardable: true,
- award_emoji: [],
- toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji',
- noteable_note_url: '/group/project/merge_requests/1#note_1',
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
- path: '/gitlab-org/gitlab-foss/notes/1471',
- },
- ],
- individual_note: false,
- },
- ],
- },
-};
-
-export function getIndividualNoteResponse(config) {
- return [200, INDIVIDUAL_NOTE_RESPONSE_MAP[config.method.toUpperCase()][config.url]];
-}
-
-export function getDiscussionNoteResponse(config) {
- return [200, DISCUSSION_NOTE_RESPONSE_MAP[config.method.toUpperCase()][config.url]];
-}
-
-export const notesWithDescriptionChanges = [
- {
- id: '39b271c2033e9ed43d8edb393702f65f7a830459',
- reply_id: '39b271c2033e9ed43d8edb393702f65f7a830459',
- expanded: true,
- notes: [
- {
- id: '901',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:05:36.117Z',
- updated_at: '2018-05-29T12:05:36.117Z',
- system: false,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
- note_html:
- '<p dir="auto">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>',
- current_user: { can_edit: true, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- discussion_id: '39b271c2033e9ed43d8edb393702f65f7a830459',
- emoji_awardable: true,
- award_emoji: [],
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_901&user_id=1',
- human_access: 'Owner',
- toggle_award_path: '/gitlab-org/gitlab-shell/notes/901/toggle_award_emoji',
- path: '/gitlab-org/gitlab-shell/notes/901',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
- {
- id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
- reply_id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
- expanded: true,
- notes: [
- {
- id: '902',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:05:58.694Z',
- updated_at: '2018-05-29T12:05:58.694Z',
- system: false,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note:
- 'Varius vel pharetra vel turpis nunc eget lorem. Ipsum dolor sit amet consectetur adipiscing.',
- note_html:
- '<p dir="auto">Varius vel pharetra vel turpis nunc eget lorem. Ipsum dolor sit amet consectetur adipiscing.</p>',
- current_user: { can_edit: true, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- discussion_id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
- emoji_awardable: true,
- award_emoji: [],
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_902&user_id=1',
- human_access: 'Owner',
- toggle_award_path: '/gitlab-org/gitlab-shell/notes/902/toggle_award_emoji',
- path: '/gitlab-org/gitlab-shell/notes/902',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
- {
- id: '7f1feda384083eb31763366e6392399fde6f3f31',
- reply_id: '7f1feda384083eb31763366e6392399fde6f3f31',
- expanded: true,
- notes: [
- {
- id: '903',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:06:05.772Z',
- updated_at: '2018-05-29T12:06:05.772Z',
- system: true,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note: 'changed the description',
- note_html: '<p dir="auto">changed the description</p>',
- current_user: { can_edit: false, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- system_note_icon_name: 'pencil-square',
- discussion_id: '7f1feda384083eb31763366e6392399fde6f3f31',
- emoji_awardable: false,
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_903&user_id=1',
- human_access: 'Owner',
- path: '/gitlab-org/gitlab-shell/notes/903',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
- {
- id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
- reply_id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
- expanded: true,
- notes: [
- {
- id: '904',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:06:16.112Z',
- updated_at: '2018-05-29T12:06:16.112Z',
- system: false,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note: 'Ullamcorper eget nulla facilisi etiam',
- note_html: '<p dir="auto">Ullamcorper eget nulla facilisi etiam</p>',
- current_user: { can_edit: true, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- discussion_id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
- emoji_awardable: true,
- award_emoji: [],
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_904&user_id=1',
- human_access: 'Owner',
- toggle_award_path: '/gitlab-org/gitlab-shell/notes/904/toggle_award_emoji',
- path: '/gitlab-org/gitlab-shell/notes/904',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
- {
- id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
- reply_id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
- expanded: true,
- notes: [
- {
- id: '905',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:06:28.851Z',
- updated_at: '2018-05-29T12:06:28.851Z',
- system: true,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note: 'changed the description',
- note_html: '<p dir="auto">changed the description</p>',
- current_user: { can_edit: false, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- system_note_icon_name: 'pencil-square',
- discussion_id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
- emoji_awardable: false,
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_905&user_id=1',
- human_access: 'Owner',
- path: '/gitlab-org/gitlab-shell/notes/905',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
- {
- id: '70411b08cdfc01f24187a06d77daa33464cb2620',
- reply_id: '70411b08cdfc01f24187a06d77daa33464cb2620',
- expanded: true,
- notes: [
- {
- id: '906',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:20:02.925Z',
- updated_at: '2018-05-29T12:20:02.925Z',
- system: true,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note: 'changed the description',
- note_html: '<p dir="auto">changed the description</p>',
- current_user: { can_edit: false, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- system_note_icon_name: 'pencil-square',
- discussion_id: '70411b08cdfc01f24187a06d77daa33464cb2620',
- emoji_awardable: false,
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_906&user_id=1',
- human_access: 'Owner',
- path: '/gitlab-org/gitlab-shell/notes/906',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
-];
-
-export const collapsedSystemNotes = [
- {
- id: '39b271c2033e9ed43d8edb393702f65f7a830459',
- reply_id: '39b271c2033e9ed43d8edb393702f65f7a830459',
- expanded: true,
- notes: [
- {
- id: '901',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:05:36.117Z',
- updated_at: '2018-05-29T12:05:36.117Z',
- system: false,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
- note_html:
- '<p dir="auto">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>',
- current_user: { can_edit: true, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- discussion_id: '39b271c2033e9ed43d8edb393702f65f7a830459',
- emoji_awardable: true,
- award_emoji: [],
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_901&user_id=1',
- human_access: 'Owner',
- toggle_award_path: '/gitlab-org/gitlab-shell/notes/901/toggle_award_emoji',
- path: '/gitlab-org/gitlab-shell/notes/901',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
- {
- id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
- reply_id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
- expanded: true,
- notes: [
- {
- id: '902',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:05:58.694Z',
- updated_at: '2018-05-29T12:05:58.694Z',
- system: false,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note:
- 'Varius vel pharetra vel turpis nunc eget lorem. Ipsum dolor sit amet consectetur adipiscing.',
- note_html:
- '<p dir="auto">Varius vel pharetra vel turpis nunc eget lorem. Ipsum dolor sit amet consectetur adipiscing.</p>',
- current_user: { can_edit: true, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- discussion_id: '4852335d7dc40b9ceb8fde1a2bb9c1b67e4c7795',
- emoji_awardable: true,
- award_emoji: [],
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_902&user_id=1',
- human_access: 'Owner',
- toggle_award_path: '/gitlab-org/gitlab-shell/notes/902/toggle_award_emoji',
- path: '/gitlab-org/gitlab-shell/notes/902',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
- {
- id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
- reply_id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
- expanded: true,
- notes: [
- {
- id: '904',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:06:16.112Z',
- updated_at: '2018-05-29T12:06:16.112Z',
- system: false,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note: 'Ullamcorper eget nulla facilisi etiam',
- note_html: '<p dir="auto">Ullamcorper eget nulla facilisi etiam</p>',
- current_user: { can_edit: true, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- discussion_id: '091865fe3ae20f0045234a3d103e3b15e73405b5',
- emoji_awardable: true,
- award_emoji: [],
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_904&user_id=1',
- human_access: 'Owner',
- toggle_award_path: '/gitlab-org/gitlab-shell/notes/904/toggle_award_emoji',
- path: '/gitlab-org/gitlab-shell/notes/904',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
- {
- id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
- reply_id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
- expanded: true,
- notes: [
- {
- id: '905',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:06:28.851Z',
- updated_at: '2018-05-29T12:06:28.851Z',
- system: true,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note: 'changed the description',
- note_html: ' <p dir="auto">changed the description 2 times within 1 minute </p>',
- current_user: { can_edit: false, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- system_note_icon_name: 'pencil-square',
- discussion_id: 'a21cf2e804acc3c60d07e37d75e395f5a9a4d044',
- emoji_awardable: false,
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_905&user_id=1',
- human_access: 'Owner',
- path: '/gitlab-org/gitlab-shell/notes/905',
- times_updated: 2,
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
- {
- id: '70411b08cdfc01f24187a06d77daa33464cb2620',
- reply_id: '70411b08cdfc01f24187a06d77daa33464cb2620',
- expanded: true,
- notes: [
- {
- id: '906',
- type: null,
- attachment: null,
- author: {
- id: 1,
- name: 'Administrator',
- username: 'root',
- state: 'active',
- avatar_url:
- 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
- path: '/root',
- },
- created_at: '2018-05-29T12:20:02.925Z',
- updated_at: '2018-05-29T12:20:02.925Z',
- system: true,
- noteable_id: 182,
- noteable_type: 'Issue',
- resolvable: false,
- noteable_iid: 12,
- note: 'changed the description',
- note_html: '<p dir="auto">changed the description</p>',
- current_user: { can_edit: false, can_award_emoji: true },
- resolved: false,
- resolved_by: null,
- system_note_icon_name: 'pencil-square',
- discussion_id: '70411b08cdfc01f24187a06d77daa33464cb2620',
- emoji_awardable: false,
- report_abuse_path:
- '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-shell%2Fissues%2F12%23note_906&user_id=1',
- human_access: 'Owner',
- path: '/gitlab-org/gitlab-shell/notes/906',
- },
- ],
- individual_note: true,
- resolvable: false,
- resolved: false,
- diff_discussion: false,
- },
-];
-
-export const discussion1 = {
- id: 'abc1',
- resolvable: true,
- resolved: false,
- active: true,
- diff_file: {
- file_path: 'about.md',
- },
- position: {
- new_line: 50,
- old_line: null,
- },
- notes: [
- {
- created_at: '2018-07-04T16:25:41.749Z',
- },
- ],
-};
-
-export const resolvedDiscussion1 = {
- id: 'abc1',
- resolvable: true,
- resolved: true,
- diff_file: {
- file_path: 'about.md',
- },
- position: {
- new_line: 50,
- old_line: null,
- },
- notes: [
- {
- created_at: '2018-07-04T16:25:41.749Z',
- },
- ],
-};
-
-export const discussion2 = {
- id: 'abc2',
- resolvable: true,
- resolved: false,
- active: true,
- diff_file: {
- file_path: 'README.md',
- },
- position: {
- new_line: null,
- old_line: 20,
- },
- notes: [
- {
- created_at: '2018-07-04T12:05:41.749Z',
- },
- ],
-};
-
-export const discussion3 = {
- id: 'abc3',
- resolvable: true,
- active: true,
- resolved: false,
- diff_file: {
- file_path: 'README.md',
- },
- position: {
- new_line: 21,
- old_line: null,
- },
- notes: [
- {
- created_at: '2018-07-05T17:25:41.749Z',
- },
- ],
-};
-
-export const unresolvableDiscussion = {
- resolvable: false,
-};
-
-export const discussionFiltersMock = [
- {
- title: 'Show all activity',
- value: 0,
- },
- {
- title: 'Show comments only',
- value: 1,
- },
- {
- title: 'Show system notes only',
- value: 2,
- },
-];
+export * from '../../frontend/notes/mock_data.js';