2021-09-30 23:02:18 +05:30
import { TEST _HOST } from 'helpers/test_constants' ;
import { DEFAULT _VALUE _STREAM , DEFAULT _DAYS _IN _PAST } from '~/cycle_analytics/constants' ;
2021-06-08 01:23:25 +05:30
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils' ;
2021-09-30 23:02:18 +05:30
import { getDateInPast } from '~/lib/utils/datetime_utility' ;
export const createdBefore = new Date ( 2019 , 0 , 14 ) ;
export const createdAfter = getDateInPast ( createdBefore , DEFAULT _DAYS _IN _PAST ) ;
2021-06-08 01:23:25 +05:30
2021-09-04 01:27:46 +05:30
export const getStageByTitle = ( stages , title ) =>
stages . find ( ( stage ) => stage . title && stage . title . toLowerCase ( ) . trim ( ) === title ) || { } ;
export const defaultStages = [ 'issue' , 'plan' , 'review' , 'code' , 'test' , 'staging' ] ;
2021-06-08 01:23:25 +05:30
export const summary = [
{ value : '20' , title : 'New Issues' } ,
{ value : null , title : 'Commits' } ,
{ value : null , title : 'Deploys' } ,
{ value : null , title : 'Deployment Frequency' , unit : 'per day' } ,
] ;
const issueStage = {
2021-09-04 01:27:46 +05:30
id : 'issue' ,
2021-06-08 01:23:25 +05:30
title : 'Issue' ,
name : 'issue' ,
legend : '' ,
description : 'Time before an issue gets scheduled' ,
value : null ,
} ;
const planStage = {
2021-09-04 01:27:46 +05:30
id : 'plan' ,
2021-06-08 01:23:25 +05:30
title : 'Plan' ,
name : 'plan' ,
legend : '' ,
description : 'Time before an issue starts implementation' ,
2021-09-04 01:27:46 +05:30
value : 75600 ,
2021-06-08 01:23:25 +05:30
} ;
const codeStage = {
2021-09-04 01:27:46 +05:30
id : 'code' ,
2021-06-08 01:23:25 +05:30
title : 'Code' ,
name : 'code' ,
legend : '' ,
description : 'Time until first merge request' ,
2021-09-04 01:27:46 +05:30
value : 172800 ,
2021-06-08 01:23:25 +05:30
} ;
const testStage = {
2021-09-04 01:27:46 +05:30
id : 'test' ,
2021-06-08 01:23:25 +05:30
title : 'Test' ,
name : 'test' ,
legend : '' ,
description : 'Total test time for all commits/merges' ,
2021-09-04 01:27:46 +05:30
value : 17550 ,
2021-06-08 01:23:25 +05:30
} ;
const reviewStage = {
2021-09-04 01:27:46 +05:30
id : 'review' ,
2021-06-08 01:23:25 +05:30
title : 'Review' ,
name : 'review' ,
legend : '' ,
description : 'Time between merge request creation and merge/close' ,
value : null ,
} ;
const stagingStage = {
2021-09-04 01:27:46 +05:30
id : 'staging' ,
2021-06-08 01:23:25 +05:30
title : 'Staging' ,
name : 'staging' ,
legend : '' ,
description : 'From merge request merge until deploy to production' ,
2021-09-04 01:27:46 +05:30
value : 172800 ,
2021-06-08 01:23:25 +05:30
} ;
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.' ,
component : 'stage-issue-component' ,
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 rawEvents = [
{
title : 'Brockfunc-1617160796' ,
author : {
id : 275 ,
name : 'VSM User4' ,
username : 'vsm-user-4-1617160796' ,
state : 'active' ,
avatar _url :
'https://www.gravatar.com/avatar/6a6f5480ae582ba68982a34169420747?s=80&d=identicon' ,
web _url : 'http://gdk.test:3001/vsm-user-4-1617160796' ,
show _status : false ,
path : '/vsm-user-4-1617160796' ,
} ,
iid : '16' ,
total _time : { days : 1 , hours : 9 } ,
created _at : 'about 1 month ago' ,
url : 'http://gdk.test:3001/vsa-life/ror-project-vsa/-/issues/16' ,
short _sha : 'some_sha' ,
commit _url : 'some_commit_url' ,
} ,
{
title : 'Subpod-1617160796' ,
author : {
id : 274 ,
name : 'VSM User3' ,
username : 'vsm-user-3-1617160796' ,
state : 'active' ,
avatar _url :
'https://www.gravatar.com/avatar/fde853fc3ab7dc552e649dcb4fcf5f7f?s=80&d=identicon' ,
web _url : 'http://gdk.test:3001/vsm-user-3-1617160796' ,
show _status : false ,
path : '/vsm-user-3-1617160796' ,
} ,
iid : '20' ,
total _time : { days : 2 , hours : 18 } ,
created _at : 'about 1 month ago' ,
url : 'http://gdk.test:3001/vsa-life/ror-project-vsa/-/issues/20' ,
} ,
] ;
export const convertedEvents = rawEvents . map ( ( ev ) =>
convertObjectPropsToCamelCase ( ev , { deep : true } ) ,
) ;
2021-09-04 01:27:46 +05:30
export const pathNavIssueMetric = 172800 ;
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 ,
} ;
2021-09-30 23:02:18 +05:30
export const formattedStageMedians = {
issue : '2d' ,
plan : '1d' ,
review : '1w' ,
code : '1d' ,
test : '3d' ,
staging : '4d' ,
} ;
2021-09-04 01:27:46 +05:30
export const allowedStages = [ issueStage , planStage , codeStage ] ;
export const transformedProjectStagePathData = [
{
metric : 172800 ,
selected : true ,
stageCount : undefined ,
icon : null ,
id : 'issue' ,
title : 'Issue' ,
name : 'issue' ,
legend : '' ,
description : 'Time before an issue gets scheduled' ,
value : null ,
} ,
{
metric : 86400 ,
selected : false ,
stageCount : undefined ,
icon : null ,
id : 'plan' ,
title : 'Plan' ,
name : 'plan' ,
legend : '' ,
description : 'Time before an issue starts implementation' ,
value : 75600 ,
} ,
{
metric : 129600 ,
selected : false ,
stageCount : undefined ,
icon : null ,
id : 'code' ,
title : 'Code' ,
name : 'code' ,
legend : '' ,
description : 'Time until first merge request' ,
value : 172800 ,
} ,
] ;
export const selectedValueStream = DEFAULT _VALUE _STREAM ;
2021-09-30 23:02:18 +05:30
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 ,
} ,
] ;
2021-09-04 01:27:46 +05:30
export const rawValueStreamStages = [
{
title : 'Issue' ,
hidden : false ,
legend : '' ,
description : 'Time before an issue gets scheduled' ,
id : 'issue' ,
custom : false ,
start _event _html _description :
'\u003cp data-sourcepos="1:1-1:13" dir="auto"\u003eIssue created\u003c/p\u003e' ,
end _event _html _description :
'\u003cp data-sourcepos="1:1-1:71" dir="auto"\u003eIssue first associated with a milestone or issue first added to a board\u003c/p\u003e' ,
} ,
{
title : 'Plan' ,
hidden : false ,
legend : '' ,
description : 'Time before an issue starts implementation' ,
id : 'plan' ,
custom : false ,
start _event _html _description :
'\u003cp data-sourcepos="1:1-1:71" dir="auto"\u003eIssue first associated with a milestone or issue first added to a board\u003c/p\u003e' ,
end _event _html _description :
'\u003cp data-sourcepos="1:1-1:33" dir="auto"\u003eIssue first mentioned in a commit\u003c/p\u003e' ,
} ,
{
title : 'Code' ,
hidden : false ,
legend : '' ,
description : 'Time until first merge request' ,
id : 'code' ,
custom : false ,
start _event _html _description :
'\u003cp data-sourcepos="1:1-1:33" dir="auto"\u003eIssue first mentioned in a commit\u003c/p\u003e' ,
end _event _html _description :
'\u003cp data-sourcepos="1:1-1:21" dir="auto"\u003eMerge request created\u003c/p\u003e' ,
} ,
] ;
export const valueStreamStages = rawValueStreamStages . map ( ( s ) => ( {
... convertObjectPropsToCamelCase ( s , { deep : true } ) ,
component : ` stage- ${ s . id } -component ` ,
} ) ) ;