716 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			716 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
const RESPONSE_MAP = {
 | 
						|
  GET: {
 | 
						|
    '/gitlab-org/gitlab-shell/issues/5.json': {
 | 
						|
      id: 45,
 | 
						|
      iid: 5,
 | 
						|
      author_id: 23,
 | 
						|
      description: 'Nulla ullam commodi delectus adipisci quis sit.',
 | 
						|
      lock_version: null,
 | 
						|
      milestone_id: 21,
 | 
						|
      position: 0,
 | 
						|
      state: 'closed',
 | 
						|
      title: 'Vel et nulla voluptatibus corporis dolor iste saepe laborum.',
 | 
						|
      updated_by_id: 1,
 | 
						|
      created_at: '2017-02-02T21: 49: 49.664Z',
 | 
						|
      updated_at: '2017-05-03T22: 26: 03.760Z',
 | 
						|
      time_estimate: 0,
 | 
						|
      total_time_spent: 0,
 | 
						|
      human_time_estimate: null,
 | 
						|
      human_total_time_spent: null,
 | 
						|
      branch_name: null,
 | 
						|
      confidential: false,
 | 
						|
      assignees: [
 | 
						|
        {
 | 
						|
          name: 'User 0',
 | 
						|
          username: 'user0',
 | 
						|
          id: 22,
 | 
						|
          state: 'active',
 | 
						|
          avatar_url:
 | 
						|
            'https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80\u0026d=identicon',
 | 
						|
          web_url: 'http: //localhost:3001/user0',
 | 
						|
        },
 | 
						|
        {
 | 
						|
          name: 'Marguerite Bartell',
 | 
						|
          username: 'tajuana',
 | 
						|
          id: 18,
 | 
						|
          state: 'active',
 | 
						|
          avatar_url:
 | 
						|
            'https://www.gravatar.com/avatar/4852a41fb41616bf8f140d3701673f53?s=80\u0026d=identicon',
 | 
						|
          web_url: 'http: //localhost:3001/tajuana',
 | 
						|
        },
 | 
						|
        {
 | 
						|
          name: 'Laureen Ritchie',
 | 
						|
          username: 'michaele.will',
 | 
						|
          id: 16,
 | 
						|
          state: 'active',
 | 
						|
          avatar_url:
 | 
						|
            'https://www.gravatar.com/avatar/e301827eb03be955c9c172cb9a8e4e8a?s=80\u0026d=identicon',
 | 
						|
          web_url: 'http: //localhost:3001/michaele.will',
 | 
						|
        },
 | 
						|
      ],
 | 
						|
      due_date: null,
 | 
						|
      moved_to_id: null,
 | 
						|
      project_id: 4,
 | 
						|
      weight: null,
 | 
						|
      milestone: {
 | 
						|
        id: 21,
 | 
						|
        iid: 1,
 | 
						|
        project_id: 4,
 | 
						|
        title: 'v0.0',
 | 
						|
        description: 'Molestiae commodi laboriosam odio sunt eaque reprehenderit.',
 | 
						|
        state: 'active',
 | 
						|
        created_at: '2017-02-02T21: 49: 30.530Z',
 | 
						|
        updated_at: '2017-02-02T21: 49: 30.530Z',
 | 
						|
        due_date: null,
 | 
						|
        start_date: null,
 | 
						|
      },
 | 
						|
      labels: [],
 | 
						|
    },
 | 
						|
    '/gitlab-org/gitlab-shell/issues/5.json?serializer=sidebar_extras': {
 | 
						|
      assignees: [
 | 
						|
        {
 | 
						|
          name: 'User 0',
 | 
						|
          username: 'user0',
 | 
						|
          id: 22,
 | 
						|
          state: 'active',
 | 
						|
          avatar_url:
 | 
						|
            'https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80\u0026d=identicon',
 | 
						|
          web_url: 'http://localhost:3001/user0',
 | 
						|
        },
 | 
						|
        {
 | 
						|
          name: 'Marguerite Bartell',
 | 
						|
          username: 'tajuana',
 | 
						|
          id: 18,
 | 
						|
          state: 'active',
 | 
						|
          avatar_url:
 | 
						|
            'https://www.gravatar.com/avatar/4852a41fb41616bf8f140d3701673f53?s=80\u0026d=identicon',
 | 
						|
          web_url: 'http://localhost:3001/tajuana',
 | 
						|
        },
 | 
						|
        {
 | 
						|
          name: 'Laureen Ritchie',
 | 
						|
          username: 'michaele.will',
 | 
						|
          id: 16,
 | 
						|
          state: 'active',
 | 
						|
          avatar_url:
 | 
						|
            'https://www.gravatar.com/avatar/e301827eb03be955c9c172cb9a8e4e8a?s=80\u0026d=identicon',
 | 
						|
          web_url: 'http://localhost:3001/michaele.will',
 | 
						|
        },
 | 
						|
      ],
 | 
						|
      human_time_estimate: null,
 | 
						|
      human_total_time_spent: null,
 | 
						|
      participants: [
 | 
						|
        {
 | 
						|
          name: 'User 0',
 | 
						|
          username: 'user0',
 | 
						|
          id: 22,
 | 
						|
          state: 'active',
 | 
						|
          avatar_url:
 | 
						|
            'https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80\u0026d=identicon',
 | 
						|
          web_url: 'http://localhost:3001/user0',
 | 
						|
        },
 | 
						|
        {
 | 
						|
          name: 'Marguerite Bartell',
 | 
						|
          username: 'tajuana',
 | 
						|
          id: 18,
 | 
						|
          state: 'active',
 | 
						|
          avatar_url:
 | 
						|
            'https://www.gravatar.com/avatar/4852a41fb41616bf8f140d3701673f53?s=80\u0026d=identicon',
 | 
						|
          web_url: 'http://localhost:3001/tajuana',
 | 
						|
        },
 | 
						|
        {
 | 
						|
          name: 'Laureen Ritchie',
 | 
						|
          username: 'michaele.will',
 | 
						|
          id: 16,
 | 
						|
          state: 'active',
 | 
						|
          avatar_url:
 | 
						|
            'https://www.gravatar.com/avatar/e301827eb03be955c9c172cb9a8e4e8a?s=80\u0026d=identicon',
 | 
						|
          web_url: 'http://localhost:3001/michaele.will',
 | 
						|
        },
 | 
						|
      ],
 | 
						|
      subscribed: true,
 | 
						|
      time_estimate: 0,
 | 
						|
      total_time_spent: 0,
 | 
						|
    },
 | 
						|
    '/autocomplete/projects?project_id=15': [
 | 
						|
      {
 | 
						|
        id: 0,
 | 
						|
        name_with_namespace: 'No project',
 | 
						|
      },
 | 
						|
      {
 | 
						|
        id: 20,
 | 
						|
        name_with_namespace: '<img src=x onerror=alert(document.domain)> foo / bar',
 | 
						|
      },
 | 
						|
    ],
 | 
						|
  },
 | 
						|
  PUT: {
 | 
						|
    '/gitlab-org/gitlab-shell/issues/5.json': {
 | 
						|
      data: {},
 | 
						|
    },
 | 
						|
  },
 | 
						|
  POST: {
 | 
						|
    '/gitlab-org/gitlab-shell/issues/5/move': {
 | 
						|
      id: 123,
 | 
						|
      iid: 5,
 | 
						|
      author_id: 1,
 | 
						|
      description: 'some description',
 | 
						|
      lock_version: 5,
 | 
						|
      milestone_id: null,
 | 
						|
      state: 'opened',
 | 
						|
      title: 'some title',
 | 
						|
      updated_by_id: 1,
 | 
						|
      created_at: '2017-06-27T19:54:42.437Z',
 | 
						|
      updated_at: '2017-08-18T03:39:49.222Z',
 | 
						|
      time_estimate: 0,
 | 
						|
      total_time_spent: 0,
 | 
						|
      human_time_estimate: null,
 | 
						|
      human_total_time_spent: null,
 | 
						|
      branch_name: null,
 | 
						|
      confidential: false,
 | 
						|
      assignees: [],
 | 
						|
      due_date: null,
 | 
						|
      moved_to_id: null,
 | 
						|
      project_id: 7,
 | 
						|
      milestone: null,
 | 
						|
      labels: [],
 | 
						|
      web_url: '/root/some-project/issues/5',
 | 
						|
    },
 | 
						|
    '/gitlab-org/gitlab-shell/issues/5/toggle_subscription': {},
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const graphQlResponseData = {
 | 
						|
  project: {
 | 
						|
    issue: {
 | 
						|
      healthStatus: 'onTrack',
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const mockData = {
 | 
						|
  responseMap: RESPONSE_MAP,
 | 
						|
  graphQlResponseData,
 | 
						|
  mediator: {
 | 
						|
    endpoint: '/gitlab-org/gitlab-shell/issues/5.json?serializer=sidebar_extras',
 | 
						|
    toggleSubscriptionEndpoint: '/gitlab-org/gitlab-shell/issues/5/toggle_subscription',
 | 
						|
    moveIssueEndpoint: '/gitlab-org/gitlab-shell/issues/5/move',
 | 
						|
    projectsAutocompleteEndpoint: '/autocomplete/projects?project_id=15',
 | 
						|
    editable: true,
 | 
						|
    currentUser: {
 | 
						|
      id: 1,
 | 
						|
      name: 'Administrator',
 | 
						|
      username: 'root',
 | 
						|
      avatar_url:
 | 
						|
        'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
 | 
						|
    },
 | 
						|
    rootPath: '/',
 | 
						|
    fullPath: '/gitlab-org/gitlab-shell',
 | 
						|
    iid: 1,
 | 
						|
  },
 | 
						|
  time: {
 | 
						|
    time_estimate: 3600,
 | 
						|
    total_time_spent: 0,
 | 
						|
    human_time_estimate: '1h',
 | 
						|
    human_total_time_spent: null,
 | 
						|
  },
 | 
						|
  user: {
 | 
						|
    avatar: 'https://gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
 | 
						|
    id: 1,
 | 
						|
    name: 'Administrator',
 | 
						|
    username: 'root',
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const issueConfidentialityResponse = (confidential = false) => ({
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: '1',
 | 
						|
      __typename: 'Project',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Issue',
 | 
						|
        id: 'gid://gitlab/Issue/4',
 | 
						|
        confidential,
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
});
 | 
						|
 | 
						|
export const issuableDueDateResponse = (dueDate = null) => ({
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: '1',
 | 
						|
      __typename: 'Project',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Issue',
 | 
						|
        id: 'gid://gitlab/Issue/4',
 | 
						|
        dueDate,
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
});
 | 
						|
 | 
						|
export const issuableStartDateResponse = (startDate = null) => ({
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: '1',
 | 
						|
      __typename: 'Group',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Epic',
 | 
						|
        id: 'gid://gitlab/Epic/4',
 | 
						|
        startDate,
 | 
						|
        startDateIsFixed: true,
 | 
						|
        startDateFixed: startDate,
 | 
						|
        startDateFromMilestones: null,
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
});
 | 
						|
 | 
						|
export const epicParticipantsResponse = () => ({
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: '1',
 | 
						|
      __typename: 'Group',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Epic',
 | 
						|
        id: 'gid://gitlab/Epic/4',
 | 
						|
        participants: {
 | 
						|
          nodes: [
 | 
						|
            {
 | 
						|
              id: 'gid://gitlab/User/2',
 | 
						|
              avatarUrl:
 | 
						|
                'https://www.gravatar.com/avatar/a95e5b71488f4b9d69ce5ff58bfd28d6?s=80\u0026d=identicon',
 | 
						|
              name: 'Jacki Kub',
 | 
						|
              username: 'francina.skiles',
 | 
						|
              webUrl: '/franc',
 | 
						|
              status: null,
 | 
						|
            },
 | 
						|
          ],
 | 
						|
        },
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
});
 | 
						|
 | 
						|
export const issueReferenceResponse = (reference) => ({
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: '1',
 | 
						|
      __typename: 'Project',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Issue',
 | 
						|
        id: 'gid://gitlab/Issue/4',
 | 
						|
        reference,
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
});
 | 
						|
 | 
						|
export const issueSubscriptionsResponse = (subscribed = false, emailsDisabled = false) => ({
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: '1',
 | 
						|
      __typename: 'Project',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Issue',
 | 
						|
        id: 'gid://gitlab/Issue/4',
 | 
						|
        subscribed,
 | 
						|
        emailsDisabled,
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
});
 | 
						|
 | 
						|
export const issuableQueryResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      __typename: 'Project',
 | 
						|
      id: '1',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Issue',
 | 
						|
        id: 'gid://gitlab/Issue/1',
 | 
						|
        iid: '1',
 | 
						|
        assignees: {
 | 
						|
          nodes: [
 | 
						|
            {
 | 
						|
              id: 'gid://gitlab/User/2',
 | 
						|
              avatarUrl:
 | 
						|
                'https://www.gravatar.com/avatar/a95e5b71488f4b9d69ce5ff58bfd28d6?s=80\u0026d=identicon',
 | 
						|
              name: 'Jacki Kub',
 | 
						|
              username: 'francina.skiles',
 | 
						|
              webUrl: '/franc',
 | 
						|
              status: null,
 | 
						|
            },
 | 
						|
          ],
 | 
						|
        },
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const searchQueryResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      __typename: 'Project',
 | 
						|
      id: '1',
 | 
						|
      users: {
 | 
						|
        nodes: [
 | 
						|
          {
 | 
						|
            user: {
 | 
						|
              id: '1',
 | 
						|
              avatarUrl: '/avatar',
 | 
						|
              name: 'root',
 | 
						|
              username: 'root',
 | 
						|
              webUrl: 'root',
 | 
						|
              status: null,
 | 
						|
            },
 | 
						|
          },
 | 
						|
          {
 | 
						|
            user: {
 | 
						|
              id: '2',
 | 
						|
              avatarUrl: '/avatar2',
 | 
						|
              name: 'rookie',
 | 
						|
              username: 'rookie',
 | 
						|
              webUrl: 'rookie',
 | 
						|
              status: null,
 | 
						|
            },
 | 
						|
          },
 | 
						|
        ],
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const updateIssueAssigneesMutationResponse = {
 | 
						|
  data: {
 | 
						|
    issuableSetAssignees: {
 | 
						|
      issuable: {
 | 
						|
        id: 'gid://gitlab/Issue/1',
 | 
						|
        iid: '1',
 | 
						|
        assignees: {
 | 
						|
          nodes: [
 | 
						|
            {
 | 
						|
              __typename: 'User',
 | 
						|
              id: 'gid://gitlab/User/1',
 | 
						|
              avatarUrl:
 | 
						|
                'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon',
 | 
						|
              name: 'Administrator',
 | 
						|
              username: 'root',
 | 
						|
              webUrl: '/root',
 | 
						|
              status: null,
 | 
						|
            },
 | 
						|
          ],
 | 
						|
          __typename: 'UserConnection',
 | 
						|
        },
 | 
						|
        __typename: 'Issue',
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const subscriptionNullResponse = {
 | 
						|
  data: {
 | 
						|
    issuableAssigneesUpdated: null,
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
const mockUser1 = {
 | 
						|
  id: 'gid://gitlab/User/1',
 | 
						|
  avatarUrl:
 | 
						|
    'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon',
 | 
						|
  name: 'Administrator',
 | 
						|
  username: 'root',
 | 
						|
  webUrl: '/root',
 | 
						|
  status: null,
 | 
						|
};
 | 
						|
 | 
						|
export const mockUser2 = {
 | 
						|
  id: 'gid://gitlab/User/4',
 | 
						|
  avatarUrl: '/avatar2',
 | 
						|
  name: 'rookie',
 | 
						|
  username: 'rookie',
 | 
						|
  webUrl: 'rookie',
 | 
						|
  status: null,
 | 
						|
};
 | 
						|
 | 
						|
export const searchResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      __typename: 'Project',
 | 
						|
      id: '1',
 | 
						|
      users: {
 | 
						|
        nodes: [
 | 
						|
          {
 | 
						|
            id: 'gid://gitlab/User/1',
 | 
						|
            user: mockUser1,
 | 
						|
          },
 | 
						|
          {
 | 
						|
            id: 'gid://gitlab/User/4',
 | 
						|
            user: mockUser2,
 | 
						|
          },
 | 
						|
        ],
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const projectMembersResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: '1',
 | 
						|
      __typename: 'Project',
 | 
						|
      users: {
 | 
						|
        nodes: [
 | 
						|
          // Remove nulls https://gitlab.com/gitlab-org/gitlab/-/issues/329750
 | 
						|
          null,
 | 
						|
          null,
 | 
						|
          // Remove duplicated entry https://gitlab.com/gitlab-org/gitlab/-/issues/327822
 | 
						|
          { id: 'user-1', user: mockUser1 },
 | 
						|
          { id: 'user-2', user: mockUser1 },
 | 
						|
          { id: 'user-3', user: mockUser2 },
 | 
						|
          {
 | 
						|
            id: 'user-4',
 | 
						|
            user: {
 | 
						|
              id: 'gid://gitlab/User/2',
 | 
						|
              avatarUrl:
 | 
						|
                'https://www.gravatar.com/avatar/a95e5b71488f4b9d69ce5ff58bfd28d6?s=80\u0026d=identicon',
 | 
						|
              name: 'Jacki Kub',
 | 
						|
              username: 'francina.skiles',
 | 
						|
              webUrl: '/franc',
 | 
						|
              status: {
 | 
						|
                availability: 'BUSY',
 | 
						|
              },
 | 
						|
            },
 | 
						|
          },
 | 
						|
        ],
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const groupMembersResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: '1',
 | 
						|
      __typename: 'Group',
 | 
						|
      users: {
 | 
						|
        nodes: [
 | 
						|
          // Remove nulls https://gitlab.com/gitlab-org/gitlab/-/issues/329750
 | 
						|
          null,
 | 
						|
          null,
 | 
						|
          // Remove duplicated entry https://gitlab.com/gitlab-org/gitlab/-/issues/327822
 | 
						|
          { id: 'user-1', user: mockUser1 },
 | 
						|
          { id: 'user-2', user: mockUser1 },
 | 
						|
          {
 | 
						|
            id: 'user-3',
 | 
						|
            user: {
 | 
						|
              id: 'gid://gitlab/User/2',
 | 
						|
              avatarUrl:
 | 
						|
                'https://www.gravatar.com/avatar/a95e5b71488f4b9d69ce5ff58bfd28d6?s=80\u0026d=identicon',
 | 
						|
              name: 'Jacki Kub',
 | 
						|
              username: 'francina.skiles',
 | 
						|
              webUrl: '/franc',
 | 
						|
              status: {
 | 
						|
                availability: 'BUSY',
 | 
						|
              },
 | 
						|
            },
 | 
						|
          },
 | 
						|
        ],
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const participantsQueryResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      __typename: 'Project',
 | 
						|
      id: '1',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Issue',
 | 
						|
        id: 'gid://gitlab/Issue/1',
 | 
						|
        iid: '1',
 | 
						|
        participants: {
 | 
						|
          nodes: [
 | 
						|
            // Remove duplicated entry https://gitlab.com/gitlab-org/gitlab/-/issues/327822
 | 
						|
            mockUser1,
 | 
						|
            mockUser1,
 | 
						|
            {
 | 
						|
              id: 'gid://gitlab/User/2',
 | 
						|
              avatarUrl:
 | 
						|
                'https://www.gravatar.com/avatar/a95e5b71488f4b9d69ce5ff58bfd28d6?s=80\u0026d=identicon',
 | 
						|
              name: 'Jacki Kub',
 | 
						|
              username: 'francina.skiles',
 | 
						|
              webUrl: '/franc',
 | 
						|
              status: {
 | 
						|
                availability: 'BUSY',
 | 
						|
              },
 | 
						|
            },
 | 
						|
            {
 | 
						|
              id: 'gid://gitlab/User/3',
 | 
						|
              avatarUrl: '/avatar',
 | 
						|
              name: 'John Doe',
 | 
						|
              username: 'rollie',
 | 
						|
              webUrl: '/john',
 | 
						|
              status: null,
 | 
						|
            },
 | 
						|
          ],
 | 
						|
        },
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const mockGroupPath = 'gitlab-org';
 | 
						|
export const mockProjectPath = `${mockGroupPath}/some-project`;
 | 
						|
 | 
						|
export const mockIssue = {
 | 
						|
  projectPath: mockProjectPath,
 | 
						|
  iid: '1',
 | 
						|
  groupPath: mockGroupPath,
 | 
						|
};
 | 
						|
 | 
						|
export const mockIssueId = 'gid://gitlab/Issue/1';
 | 
						|
 | 
						|
export const mockMilestone1 = {
 | 
						|
  __typename: 'Milestone',
 | 
						|
  id: 'gid://gitlab/Milestone/1',
 | 
						|
  title: 'Foobar Milestone',
 | 
						|
  webUrl: 'http://gdk.test:3000/groups/gitlab-org/-/milestones/1',
 | 
						|
  state: 'active',
 | 
						|
  expired: false,
 | 
						|
  dueDate: '2030-09-09',
 | 
						|
};
 | 
						|
 | 
						|
export const mockMilestone2 = {
 | 
						|
  __typename: 'Milestone',
 | 
						|
  id: 'gid://gitlab/Milestone/2',
 | 
						|
  title: 'Awesome Milestone',
 | 
						|
  webUrl: 'http://gdk.test:3000/groups/gitlab-org/-/milestones/2',
 | 
						|
  state: 'active',
 | 
						|
  expired: false,
 | 
						|
  dueDate: '2030-09-09',
 | 
						|
};
 | 
						|
 | 
						|
export const mockProjectMilestonesResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: 'gid://gitlab/Project/1',
 | 
						|
      attributes: {
 | 
						|
        nodes: [mockMilestone1, mockMilestone2],
 | 
						|
      },
 | 
						|
      __typename: 'MilestoneConnection',
 | 
						|
    },
 | 
						|
    __typename: 'Project',
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const mockGroupMilestonesResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: 'gid://gitlab/Group/1',
 | 
						|
      attributes: {
 | 
						|
        nodes: [mockMilestone1, mockMilestone2],
 | 
						|
      },
 | 
						|
      __typename: 'MilestoneConnection',
 | 
						|
    },
 | 
						|
    __typename: 'Group',
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const noCurrentMilestoneResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      issuable: { id: mockIssueId, attribute: null, __typename: 'Issue' },
 | 
						|
      __typename: 'Project',
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const mockMilestoneMutationResponse = {
 | 
						|
  data: {
 | 
						|
    issuableSetAttribute: {
 | 
						|
      errors: [],
 | 
						|
      issuable: {
 | 
						|
        id: 'gid://gitlab/Issue/1',
 | 
						|
        attribute: {
 | 
						|
          id: 'gid://gitlab/Milestone/2',
 | 
						|
          title: 'Awesome Milestone',
 | 
						|
          state: 'active',
 | 
						|
          expired: false,
 | 
						|
          dueDate: '2030-09-09',
 | 
						|
          __typename: 'Milestone',
 | 
						|
        },
 | 
						|
        __typename: 'Issue',
 | 
						|
      },
 | 
						|
      __typename: 'UpdateIssuePayload',
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const emptyProjectMilestonesResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      attributes: {
 | 
						|
        nodes: [],
 | 
						|
      },
 | 
						|
      __typename: 'MilestoneConnection',
 | 
						|
    },
 | 
						|
    __typename: 'Project',
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const issuableTimeTrackingResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      __typename: 'Project',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Issue',
 | 
						|
        id: 'gid://gitlab/Issue/1',
 | 
						|
        title: 'Commodi incidunt eos eos libero dicta dolores sed.',
 | 
						|
        timeEstimate: 10_000, // 2h 46m
 | 
						|
        totalTimeSpent: 5_000, // 1h 23m
 | 
						|
        humanTimeEstimate: '2h 46m',
 | 
						|
        humanTotalTimeSpent: '1h 23m',
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const todosResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      __typename: 'Group',
 | 
						|
      id: '1',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Epic',
 | 
						|
        id: 'gid://gitlab/Epic/4',
 | 
						|
        currentUserTodos: {
 | 
						|
          nodes: [
 | 
						|
            {
 | 
						|
              id: 'gid://gitlab/Todo/433',
 | 
						|
            },
 | 
						|
          ],
 | 
						|
        },
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export const noTodosResponse = {
 | 
						|
  data: {
 | 
						|
    workspace: {
 | 
						|
      id: '1',
 | 
						|
      __typename: 'Group',
 | 
						|
      issuable: {
 | 
						|
        __typename: 'Epic',
 | 
						|
        id: 'gid://gitlab/Epic/4',
 | 
						|
        currentUserTodos: {
 | 
						|
          nodes: [],
 | 
						|
        },
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 | 
						|
 | 
						|
export default mockData;
 |