text: import valueStreamAnalyticsStages from 'test_fixtures/projects/analytics/value_stream_analytics/stages.json';
  import issueStageFixtures from 'test_fixtures/projects/analytics/value_stream_analytics/events/issue.json';
  import planStageFixtures from 'test_fixtures/projects/analytics/value_stream_analytics/events/plan.json';
  import reviewStageFixtures from 'test_fixtures/projects/analytics/value_stream_analytics/events/review.json';
  import codeStageFixtures from 'test_fixtures/projects/analytics/value_stream_analytics/events/code.json';
  import testStageFixtures from 'test_fixtures/projects/analytics/value_stream_analytics/events/test.json';
  import stagingStageFixtures from 'test_fixtures/projects/analytics/value_stream_analytics/events/staging.json';
  
  import { TEST_HOST } from 'helpers/test_constants';
  import {
    DEFAULT_VALUE_STREAM,
    PAGINATION_TYPE,
    PAGINATION_SORT_DIRECTION_DESC,
    PAGINATION_SORT_FIELD_END_EVENT,
  } from '~/cycle_analytics/constants';
  import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
  import { getDateInPast } from '~/lib/utils/datetime_utility';
  
  const DEFAULT_DAYS_IN_PAST = 30;
  export const createdBefore = new Date(2019, 0, 14);
  export const createdAfter = getDateInPast(createdBefore, DEFAULT_DAYS_IN_PAST);
  
  export const deepCamelCase = (obj) => convertObjectPropsToCamelCase(obj, { deep: true });
  
  export const getStageByTitle = (stages, title) =>
    stages.find((stage) => stage.title && stage.title.toLowerCase().trim() === title) || {};
  
  export const defaultStages = ['issue', 'plan', 'review', 'code', 'test', 'staging'];
  
  const stageFixtures = {
    issue: issueStageFixtures,
    plan: planStageFixtures,
    review: reviewStageFixtures,
    code: codeStageFixtures,
    test: testStageFixtures,
    staging: stagingStageFixtures,
  };
  
  export const summary = [
    { value: '20', title: 'New Issues' },
    { value: null, title: 'Commits' },
    { value: null, title: 'Deploys' },
    { value: null, title: 'Deployment Frequency', unit: 'per day' },
  ];
  
  export const issueStage = {
    id: 'issue',
    title: 'Issue',
    name: 'issue',
    legend: '',
    description: 'Time before an issue gets scheduled',
    value: null,
  };
  
  export const planStage = {
    id: 'plan',
    title: 'Plan',
    name: 'plan',
    legend: '',
    description: 'Time before an issue starts implementation',
    value: 75600,
  };
  
  export const codeStage = {
    id: 'code',
    title: 'Code',
    name: 'code',
    legend: '',
    description: 'Time until first merge request',
    value: 172800,
  };
  
  export const testStage = {
    id: 'test',
    title: 'Test',
    name: 'test',
    legend: '',
    description: 'Total test time for all commits/merges',
    value: 17550,
  };
  
  export const reviewStage = {
    id: 'review',
    title: 'Review',
    name: 'review',
    legend: '',
    description: 'Time between merge request creation and merge/close',
    value: null,
  };
  
  export const stagingStage = {
    id: 'staging',
    title: 'Staging',
    name: 'staging',
    legend: '',
    description: 'From merge request merge until deploy to production',
    value: 172800,
  };
  
  export const selectedStage = {
    ...issueStage,
    value: null,
    active: false,
    isUserAllowed: true,
    emptyStageText:
      'The issue stage shows the time it takes from creating an issue to assigning the issue to a milestone, or add the issue to a list on your Issue Board. Begin creating issues to see data for this stage.',
  
    slug: 'issue',
  };
  
  export const stats = [issueStage, planStage, codeStage, testStage, reviewStage, stagingStage];
  
  export const permissions = {
    issue: true,
    plan: true,
    code: true,
    test: true,
    review: true,
    staging: true,
  };
  
  export const rawData = {
    summary,
    stats,
    permissions,
  };
  
  export const convertedData = {
    summary: [
      { value: '20', title: 'New Issues' },
      { value: '-', title: 'Commits' },
      { value: '-', title: 'Deploys' },
      { value: '-', title: 'Deployment Frequency', unit: 'per day' },
    ],
  };
  
  export const rawIssueEvents = stageFixtures.issue;
  export const issueEvents = deepCamelCase(rawIssueEvents);
  export const reviewEvents = deepCamelCase(stageFixtures.review);
  
  export const pathNavIssueMetric = 172800;
  
  export const rawStageCounts = [
    { id: 'issue', count: 6 },
    { id: 'plan', count: 6 },
    { id: 'code', count: 1 },
    { id: 'test', count: 5 },
    { id: 'review', count: 12 },
    { id: 'staging', count: 3 },
  ];
  
  export const stageCounts = {
    code: 1,
    issue: 6,
    plan: 6,
    review: 12,
    staging: 3,
    test: 5,
  };
  
  export const rawStageMedians = [
    { id: 'issue', value: 172800 },
    { id: 'plan', value: 86400 },
    { id: 'review', value: 1036800 },
    { id: 'code', value: 129600 },
    { id: 'test', value: 259200 },
    { id: 'staging', value: 388800 },
  ];
  
  export const stageMedians = {
    issue: 172800,
    plan: 86400,
    review: 1036800,
    code: 129600,
    test: 259200,
    staging: 388800,
  };
  
  export const formattedStageMedians = {
    issue: '2d',
    plan: '1d',
    review: '1w',
    code: '1d',
    test: '3d',
    staging: '4d',
  };
  
  export const allowedStages = [issueStage, planStage, codeStage];
  
  export const transformedProjectStagePathData = [
    {
      metric: 172800,
      selected: true,
      stageCount: 6,
      icon: null,
      id: 'issue',
      title: 'Issue',
      name: 'issue',
      legend: '',
      description: 'Time before an issue gets scheduled',
      value: null,
    },
    {
      metric: 86400,
      selected: false,
      stageCount: 6,
      icon: null,
      id: 'plan',
      title: 'Plan',
      name: 'plan',
      legend: '',
      description: 'Time before an issue starts implementation',
      value: 75600,
    },
    {
      metric: 129600,
      selected: false,
      stageCount: 1,
      icon: null,
      id: 'code',
      title: 'Code',
      name: 'code',
      legend: '',
      description: 'Time until first merge request',
      value: 172800,
    },
  ];
  
  export const selectedValueStream = DEFAULT_VALUE_STREAM;
  
  export const group = {
    id: 1,
    name: 'foo',
    path: 'foo',
    full_path: 'foo',
    avatar_url: `${TEST_HOST}/images/home/nasa.svg`,
  };
  
  export const currentGroup = convertObjectPropsToCamelCase(group, { deep: true });
  
  export const selectedProjects = [
    {
      id: 'gid://gitlab/Project/1',
      name: 'cool project',
      pathWithNamespace: 'group/cool-project',
      avatarUrl: null,
    },
    {
      id: 'gid://gitlab/Project/2',
      name: 'another cool project',
      pathWithNamespace: 'group/another-cool-project',
      avatarUrl: null,
    },
  ];
  
  export const rawValueStreamStages = valueStreamAnalyticsStages.stages;
  
  export const valueStreamStages = rawValueStreamStages.map((s) =>
    convertObjectPropsToCamelCase(s, { deep: true }),
  );
  
  export const initialPaginationQuery = {
    page: 15,
    sort: PAGINATION_SORT_FIELD_END_EVENT,
    direction: PAGINATION_SORT_DIRECTION_DESC,
  };
  
  export const initialPaginationState = {
    ...initialPaginationQuery,
    page: null,
    hasNextPage: false,
  };
  
  export const basePaginationResult = {
    pagination: PAGINATION_TYPE,
    sort: PAGINATION_SORT_FIELD_END_EVENT,
    direction: PAGINATION_SORT_DIRECTION_DESC,
    page: null,
  };
  