From ff2171e8df35265db99821d415aceb9432f48371 Mon Sep 17 00:00:00 2001 From: Cliff Meyers Date: Tue, 14 Jun 2016 11:07:05 +0900 Subject: [PATCH 01/10] fix links to run details from Branches and Pull Requests that broke when URL scheme changed --- blueocean-dashboard/src/main/js/components/Branches.jsx | 3 ++- blueocean-dashboard/src/main/js/components/PullRequest.jsx | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/blueocean-dashboard/src/main/js/components/Branches.jsx b/blueocean-dashboard/src/main/js/components/Branches.jsx index b7774899..41abb55e 100644 --- a/blueocean-dashboard/src/main/js/components/Branches.jsx +++ b/blueocean-dashboard/src/main/js/components/Branches.jsx @@ -21,6 +21,7 @@ export default class Branches extends Component { location, pipeline: { name: pipelineName, + organization, }, }, } = this; @@ -29,7 +30,7 @@ export default class Branches extends Component { weatherScore, name, } = data; - const url = `/pipelines/${pipelineName}/detail/${name}/${id}/pipeline`; + const url = `/organizations/${organization}/${pipelineName}/detail/${name}/${id}/pipeline`; const open = () => { location.pathname = url; router.push(location); diff --git a/blueocean-dashboard/src/main/js/components/PullRequest.jsx b/blueocean-dashboard/src/main/js/components/PullRequest.jsx index 9336279e..a029d9c5 100644 --- a/blueocean-dashboard/src/main/js/components/PullRequest.jsx +++ b/blueocean-dashboard/src/main/js/components/PullRequest.jsx @@ -29,10 +29,11 @@ export default class PullRequest extends Component { location, pipeline: { name: pipelineName, + organization, }, }, } = this; - const url = `/pipelines/${pipelineName}/detail/${name}/${id}/pipeline`; + const url = `organizations/${organization}/${pipelineName}/detail/${name}/${id}/pipeline`; const open = () => { location.pathname = url; router.push(location); From 8ccade21ec32bc63b15c32afb44b7c7dbe66239c Mon Sep 17 00:00:00 2001 From: Cliff Meyers Date: Tue, 14 Jun 2016 16:02:59 +0900 Subject: [PATCH 02/10] [JENKINS-35690] integrate component to display progress of builds on activity screen --- blueocean-dashboard/src/main/js/components/Runs.jsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/blueocean-dashboard/src/main/js/components/Runs.jsx b/blueocean-dashboard/src/main/js/components/Runs.jsx index e7b3ecb4..60b6c47b 100644 --- a/blueocean-dashboard/src/main/js/components/Runs.jsx +++ b/blueocean-dashboard/src/main/js/components/Runs.jsx @@ -1,9 +1,10 @@ import React, { Component, PropTypes } from 'react'; import { - CommitHash, ReadableDate, StatusIndicator, TimeDuration, + CommitHash, ReadableDate, RunningStatusIndicator, TimeDuration, } from '@jenkins-cd/design-language'; import { removeLastUrlSegment } from '../util/UrlUtils'; +import moment from 'moment'; const { object, string, any } = PropTypes; @@ -40,6 +41,8 @@ export default class Runs extends Component { } = this; const resultRun = result === 'UNKNOWN' ? state : result; + const estimatedDuration = this.context.pipeline.estimatedDurationInMillis; + const startTime = moment.parseZone(this.props.result.startTime).valueOf(); const baseUrl = removeLastUrlSegment(this.context.location.pathname); const url = `${baseUrl}/detail/${pipeline}/${id}/pipeline`; @@ -50,7 +53,7 @@ export default class Runs extends Component { return ( - + {id} From d9e523f50bf2de6ea8293b16e43c6683ce54ebe5 Mon Sep 17 00:00:00 2001 From: Keith Zantow Date: Tue, 14 Jun 2016 16:35:08 +0900 Subject: [PATCH 03/10] UX-546 no downloading remote material icons (#248) --- blueocean-dashboard/.storybook/head.html | 1 - .../main/resources/io/jenkins/blueocean/BlueOceanUI/index.jelly | 1 - 2 files changed, 2 deletions(-) diff --git a/blueocean-dashboard/.storybook/head.html b/blueocean-dashboard/.storybook/head.html index 2232f2de..180630ad 100644 --- a/blueocean-dashboard/.storybook/head.html +++ b/blueocean-dashboard/.storybook/head.html @@ -6,7 +6,6 @@ - diff --git a/blueocean-web/src/main/resources/io/jenkins/blueocean/BlueOceanUI/index.jelly b/blueocean-web/src/main/resources/io/jenkins/blueocean/BlueOceanUI/index.jelly index 01594ffd..a4f13d53 100644 --- a/blueocean-web/src/main/resources/io/jenkins/blueocean/BlueOceanUI/index.jelly +++ b/blueocean-web/src/main/resources/io/jenkins/blueocean/BlueOceanUI/index.jelly @@ -22,7 +22,6 @@ - From 90000533d4040ea76d41904529c0308fc3e4b2d0 Mon Sep 17 00:00:00 2001 From: Cliff Meyers Date: Wed, 15 Jun 2016 08:08:10 +0900 Subject: [PATCH 04/10] [JENKINS-35690] update for component rename --- blueocean-dashboard/src/main/js/components/Runs.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blueocean-dashboard/src/main/js/components/Runs.jsx b/blueocean-dashboard/src/main/js/components/Runs.jsx index 60b6c47b..6f3723bd 100644 --- a/blueocean-dashboard/src/main/js/components/Runs.jsx +++ b/blueocean-dashboard/src/main/js/components/Runs.jsx @@ -1,6 +1,6 @@ import React, { Component, PropTypes } from 'react'; import { - CommitHash, ReadableDate, RunningStatusIndicator, TimeDuration, + CommitHash, ReadableDate, LiveStatusIndicator, TimeDuration, } from '@jenkins-cd/design-language'; import { removeLastUrlSegment } from '../util/UrlUtils'; @@ -53,7 +53,7 @@ export default class Runs extends Component { return ( - + {id} From 270ed7031624e2c8b1cad18e1ccabc34a0d0b1f9 Mon Sep 17 00:00:00 2001 From: Cliff Meyers Date: Wed, 15 Jun 2016 09:13:11 +0900 Subject: [PATCH 05/10] update eslint for max line length --- .eslintrc | 2 +- blueocean-dashboard/.eslintrc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.eslintrc b/.eslintrc index 2c16032a..8922879a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -12,7 +12,7 @@ "rules": { "eol-last": 1, "no-unused-vars": [1], - "max-len": [1, 120, 4], + "max-len": [1, 160, 4], "no-underscore-dangle": [0], "object-shorthand": [0, "always"], "quote-props": [0, "as-needed"], diff --git a/blueocean-dashboard/.eslintrc b/blueocean-dashboard/.eslintrc index f3f06a13..0f119252 100644 --- a/blueocean-dashboard/.eslintrc +++ b/blueocean-dashboard/.eslintrc @@ -2,6 +2,7 @@ "extends": "@jenkins-cd/jenkins/react", "rules": { "react/jsx-no-bind": 0, - "no-unused-vars": [2, {"varsIgnorePattern": "^React$"}] + "no-unused-vars": [2, {"varsIgnorePattern": "^React$"}], + "max-len": [1, 160, 4] } } From 0f7e2a01eaea1b38fbd809993a37a48e536ffd58 Mon Sep 17 00:00:00 2001 From: Cliff Meyers Date: Wed, 15 Jun 2016 10:27:25 +0900 Subject: [PATCH 06/10] [JENKINS-35690] tick JDL version to 0.0.45 --- blueocean-dashboard/package.json | 2 +- blueocean-web/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/blueocean-dashboard/package.json b/blueocean-dashboard/package.json index a1db5e82..4ba6e93f 100644 --- a/blueocean-dashboard/package.json +++ b/blueocean-dashboard/package.json @@ -35,7 +35,7 @@ "skin-deep": "^0.16.0" }, "dependencies": { - "@jenkins-cd/design-language": "0.0.44", + "@jenkins-cd/design-language": "0.0.45", "@jenkins-cd/js-extensions": "0.0.15", "@jenkins-cd/js-modules": "0.0.5", "@jenkins-cd/sse-gateway": "0.0.5", diff --git a/blueocean-web/package.json b/blueocean-web/package.json index 38bf659d..f41c6115 100644 --- a/blueocean-web/package.json +++ b/blueocean-web/package.json @@ -25,7 +25,7 @@ "zombie": "^4.2.1" }, "dependencies": { - "@jenkins-cd/design-language": "0.0.44", + "@jenkins-cd/design-language": "0.0.45", "@jenkins-cd/js-extensions": "0.0.15", "@jenkins-cd/js-modules": "0.0.5", "history": "2.0.2", From 695fbacc2bcd22a721824e63c908cdee9983a7ce Mon Sep 17 00:00:00 2001 From: Vivek Pandey Date: Wed, 15 Jun 2016 11:01:11 +0900 Subject: [PATCH 07/10] JENKINS-35693# Don't show future nodes for builds older than last successful build --- .../rest/PipelineNodeContainerImpl.java | 6 +-- .../rest/PipelineNodeGraphBuilder.java | 2 +- .../service/embedded/PipelineNodeTest.java | 54 +++++++++++++++++++ 3 files changed, 58 insertions(+), 4 deletions(-) diff --git a/blueocean-rest-impl/src/main/java/io/jenkins/blueocean/service/embedded/rest/PipelineNodeContainerImpl.java b/blueocean-rest-impl/src/main/java/io/jenkins/blueocean/service/embedded/rest/PipelineNodeContainerImpl.java index 782ff96d..c3170c9a 100644 --- a/blueocean-rest-impl/src/main/java/io/jenkins/blueocean/service/embedded/rest/PipelineNodeContainerImpl.java +++ b/blueocean-rest-impl/src/main/java/io/jenkins/blueocean/service/embedded/rest/PipelineNodeContainerImpl.java @@ -27,11 +27,11 @@ public class PipelineNodeContainerImpl extends BluePipelineNodeContainer { WorkflowJob job = run.getParent(); PipelineNodeGraphBuilder graphBuilder = new PipelineNodeGraphBuilder(run); + //If build either failed or is in progress then return union with last successful pipeline run - if(job.getLastBuild() != null - && job.getLastBuild().getResult() != Result.SUCCESS + if(run.getResult() != Result.SUCCESS && job.getLastSuccessfulBuild() != null - && !job.getLastSuccessfulBuild().getId().equals(job.getLastBuild().getId())){ + && Integer.valueOf(job.getLastSuccessfulBuild().getId()) < Integer.valueOf(run.getId())){ PipelineNodeGraphBuilder pastBuild = new PipelineNodeGraphBuilder(job.getLastSuccessfulBuild()); this.nodes = graphBuilder.union(pastBuild); }else{ diff --git a/blueocean-rest-impl/src/main/java/io/jenkins/blueocean/service/embedded/rest/PipelineNodeGraphBuilder.java b/blueocean-rest-impl/src/main/java/io/jenkins/blueocean/service/embedded/rest/PipelineNodeGraphBuilder.java index 79fc9b0b..521790d6 100644 --- a/blueocean-rest-impl/src/main/java/io/jenkins/blueocean/service/embedded/rest/PipelineNodeGraphBuilder.java +++ b/blueocean-rest-impl/src/main/java/io/jenkins/blueocean/service/embedded/rest/PipelineNodeGraphBuilder.java @@ -56,7 +56,7 @@ public class PipelineNodeGraphBuilder { Iterables.addAll(nodeTreeSet, new FlowGraphWalker(run.getExecution())); this.sortedNodes = Collections.unmodifiableList(new ArrayList<>(nodeTreeSet)); -// dumpNodes(); +// dumpNodes(sortedNodes); build(); } diff --git a/blueocean-rest-impl/src/test/java/io/jenkins/blueocean/service/embedded/PipelineNodeTest.java b/blueocean-rest-impl/src/test/java/io/jenkins/blueocean/service/embedded/PipelineNodeTest.java index b33d6be8..0eef0e29 100644 --- a/blueocean-rest-impl/src/test/java/io/jenkins/blueocean/service/embedded/PipelineNodeTest.java +++ b/blueocean-rest-impl/src/test/java/io/jenkins/blueocean/service/embedded/PipelineNodeTest.java @@ -18,6 +18,60 @@ import java.util.Map; * @author Vivek Pandey */ public class PipelineNodeTest extends BaseTest { + + @Test + public void nodesWithFutureTest() throws Exception { + WorkflowJob job1 = j.jenkins.createProject(WorkflowJob.class, "pipeline1"); + job1.setDefinition(new CpsFlowDefinition("node {\n" + + " stage 'build'\n" + + " sh 'echo s1'\n" + + " stage 'test'\n" + + " echo 'Hello World 2'\n" + + "}")); + + WorkflowRun b1 = job1.scheduleBuild2(0).get(); + j.assertBuildStatus(Result.SUCCESS,b1); + + get("/organizations/jenkins/pipelines/pipeline1/runs/1/nodes/", List.class); + + job1.setDefinition(new CpsFlowDefinition("node {\n" + + " stage 'build'\n" + + " sh 'echo s1'\n" + + " stage 'test'\n" + + " echo 'Hello World 2'\n" + + "}\n" + + "parallel firstBranch: {\n" + + " echo 'Hello first'\n" + + "}, secondBranch: {\n" + + " echo 'Hello second'\n" + + "}")); + + + + WorkflowRun b2 = job1.scheduleBuild2(0).get(); + j.assertBuildStatus(Result.SUCCESS,b2); + + job1.setDefinition(new CpsFlowDefinition("node {\n" + + " stage 'build'\n" + + " sh 'echo s1'\n" + + " stage 'test'\n" + + " echo 'Hello World 2'\n" + + "}\n" + + "parallel firstBranch: {\n" + + " echo 'Hello first'\n" + + "}, secondBranch: {\n" + + " sh 'Hello second'\n" + + "}")); + + + + WorkflowRun b3 = job1.scheduleBuild2(0).get(); + j.assertBuildStatus(Result.FAILURE,b3); + + List resp = get("/organizations/jenkins/pipelines/pipeline1/runs/1/nodes/", List.class); + Assert.assertEquals(2, resp.size()); + } + @Test public void nodesTest() throws Exception { WorkflowJob job1 = j.jenkins.createProject(WorkflowJob.class, "pipeline1"); From 5f48aabc2ff184cf0d4f0cab540001915c15cb50 Mon Sep 17 00:00:00 2001 From: tfennelly Date: Wed, 15 Jun 2016 09:36:13 +0900 Subject: [PATCH 08/10] New SSE Gateway plugin with fix for JENKINS-35711 --- blueocean-dashboard/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blueocean-dashboard/pom.xml b/blueocean-dashboard/pom.xml index 7986cee7..54f714b3 100644 --- a/blueocean-dashboard/pom.xml +++ b/blueocean-dashboard/pom.xml @@ -17,7 +17,7 @@ org.jenkins-ci.plugins sse-gateway - 1.2 + 1.3-SNAPSHOT From 9f92ee9133b2719e405de4c569d0284a8ed464f8 Mon Sep 17 00:00:00 2001 From: tfennelly Date: Wed, 15 Jun 2016 11:53:04 +0900 Subject: [PATCH 09/10] New SSE Gateway plugin with fix for JENKINS-35711 --- blueocean-dashboard/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blueocean-dashboard/pom.xml b/blueocean-dashboard/pom.xml index 54f714b3..2b2ee5cc 100644 --- a/blueocean-dashboard/pom.xml +++ b/blueocean-dashboard/pom.xml @@ -17,7 +17,7 @@ org.jenkins-ci.plugins sse-gateway - 1.3-SNAPSHOT + 1.3 From c01688a8bc1245ce98c51483a36ffd508c0da00a Mon Sep 17 00:00:00 2001 From: Josh McDonald Date: Wed, 15 Jun 2016 14:24:05 +0900 Subject: [PATCH 10/10] remove-deprecated-jdl-consts - just a small cleanup that's a bit overdue --- .../test/js/pipeline-graph-converter-spec.js | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/blueocean-dashboard/src/test/js/pipeline-graph-converter-spec.js b/blueocean-dashboard/src/test/js/pipeline-graph-converter-spec.js index 5e0e87bc..8c4aacd8 100644 --- a/blueocean-dashboard/src/test/js/pipeline-graph-converter-spec.js +++ b/blueocean-dashboard/src/test/js/pipeline-graph-converter-spec.js @@ -4,7 +4,8 @@ import path from 'path'; import {convertJenkinsNodeGraph} from '../../main/js/components/PipelineRunGraph.jsx'; -import { pipelineStageState } from '@jenkins-cd/design-language/dist/js/components/PipelineGraph'; +import {StatusIndicator} from '@jenkins-cd/design-language'; +const validResultValues = StatusIndicator.validResultValues; describe("pipeline graph data converter", () => { @@ -53,7 +54,7 @@ describe("pipeline graph data converter", () => { assert.equal(result[0].name, "Deploy", "result[0].name"); assert.equal(result[0].id, "27", "result[0].id"); - assert.equal(result[0].state, pipelineStageState.success, "result[0].state"); + assert.equal(result[0].state, validResultValues.success, "result[0].state"); assert.equal(result[0].completePercent, 100, "result[0].completePercent"); assert(Array.isArray(result[0].children), "result[0].children should be array"); assert.equal(result[0].children.length, 0, "result[0] should have no children"); @@ -82,21 +83,21 @@ describe("pipeline graph data converter", () => { assert.equal(result[0].name, "First", "result[0].name"); assert.equal(result[0].id, "3", "result[0].id"); - assert.equal(result[0].state, pipelineStageState.success, "result[0].state"); + assert.equal(result[0].state, validResultValues.success, "result[0].state"); assert.equal(result[0].completePercent, 100, "result[0].completePercent"); assert(Array.isArray(result[0].children), "result[0].children should be array"); assert.equal(result[0].children.length, 0, "result[0] should have no children"); assert.equal(result[1].name, "Second", "result[1].name"); assert.equal(result[1].id, "13", "result[1].id"); - assert.equal(result[1].state, pipelineStageState.running, "result[1].state"); + assert.equal(result[1].state, validResultValues.running, "result[1].state"); assert.equal(result[1].completePercent, 50, "result[1].completePercent"); assert(Array.isArray(result[1].children), "result[1].children should be array"); assert.equal(result[1].children.length, 0, "result[1] should have no children"); assert.equal(result[2].name, "Third", "result[2].name"); assert.equal(result[2].id, "27", "result[2].id"); - assert.equal(result[2].state, pipelineStageState.queued, "result[2].state"); + assert.equal(result[2].state, validResultValues.queued, "result[2].state"); assert.equal(result[2].completePercent, 0, "result[2].completePercent"); assert(Array.isArray(result[1].children), "result[2].children should be array"); assert.equal(result[2].children.length, 0, "result[2] should have no children"); @@ -126,21 +127,21 @@ describe("pipeline graph data converter", () => { assert.equal(result[0].name, "Build", "result[0].name"); assert.equal(result[0].id, "3", "result[0].id"); - assert.equal(result[0].state, pipelineStageState.success, "result[0].state"); + assert.equal(result[0].state, validResultValues.success, "result[0].state"); assert.equal(result[0].completePercent, 100, "result[0].completePercent"); assert(Array.isArray(result[0].children), "result[0].children should be array"); assert.equal(result[0].children.length, 0, "result[0] should have no children"); assert.equal(result[1].name, "Test", "result[1].name"); assert.equal(result[1].id, "9", "result[1].id"); - assert.equal(result[1].state, pipelineStageState.success, "result[1].state"); + assert.equal(result[1].state, validResultValues.success, "result[1].state"); assert.equal(result[1].completePercent, 100, "result[1].completePercent"); assert(Array.isArray(result[1].children), "result[1].children should be array"); assert.equal(result[1].children.length, 2, "result[1] should have 2 children"); assert.equal(result[2].name, "Deploy", "result[2].name"); assert.equal(result[2].id, "27", "result[2].id"); - assert.equal(result[2].state, pipelineStageState.success, "result[2].state"); + assert.equal(result[2].state, validResultValues.success, "result[2].state"); assert.equal(result[2].completePercent, 100, "result[2].completePercent"); assert(Array.isArray(result[2].children), "result[2].children should be array"); assert.equal(result[2].children.length, 0, "result[2] should have no children"); @@ -149,14 +150,14 @@ describe("pipeline graph data converter", () => { assert.equal(children[0].name, "Firefox", "children[0].name"); assert.equal(children[0].id, "12", "children[0].id"); - assert.equal(children[0].state, pipelineStageState.success, "children[0].state"); + assert.equal(children[0].state, validResultValues.success, "children[0].state"); assert.equal(children[0].completePercent, 100, "children[0].completePercent"); assert(Array.isArray(children[0].children), "children[0].children should be array"); assert.equal(children[0].children.length, 0, "children[0] should have no children"); assert.equal(children[1].name, "Chrome", "children[1].name"); assert.equal(children[1].id, "13", "children[1].id"); - assert.equal(children[1].state, pipelineStageState.success, "children[1].state"); + assert.equal(children[1].state, validResultValues.success, "children[1].state"); assert.equal(children[1].completePercent, 100, "children[1].completePercent"); assert(Array.isArray(children[1].children), "children[1].children should be array"); assert.equal(children[1].children.length, 0, "children[1] should have no children"); @@ -185,14 +186,14 @@ describe("pipeline graph data converter", () => { assert.equal(result[0].name, "Build", "result[0].name"); assert.equal(result[0].id, "3", "result[0].id"); - assert.equal(result[0].state, pipelineStageState.success, "result[0].state"); + assert.equal(result[0].state, validResultValues.success, "result[0].state"); assert.equal(result[0].completePercent, 100, "result[0].completePercent"); assert(Array.isArray(result[0].children), "result[0].children should be array"); assert.equal(result[0].children.length, 0, "result[0] should have no children"); assert.equal(result[1].name, "Test", "result[1].name"); assert.equal(result[1].id, "9", "result[1].id"); - assert.equal(result[1].state, pipelineStageState.success, "result[1].state"); + assert.equal(result[1].state, validResultValues.success, "result[1].state"); assert.equal(result[1].completePercent, 100, "result[1].completePercent"); assert(Array.isArray(result[1].children), "result[1].children should be array"); assert.equal(result[1].children.length, 2, "result[1] should have 2 children"); @@ -201,14 +202,14 @@ describe("pipeline graph data converter", () => { assert.equal(children[0].name, "Firefox", "children[0].name"); assert.equal(children[0].id, "12", "children[0].id"); - assert.equal(children[0].state, pipelineStageState.success, "children[0].state"); + assert.equal(children[0].state, validResultValues.success, "children[0].state"); assert.equal(children[0].completePercent, 100, "children[0].completePercent"); assert(Array.isArray(children[0].children), "children[0].children should be array"); assert.equal(children[0].children.length, 0, "children[0] should have no children"); assert.equal(children[1].name, "Chrome", "children[1].name"); assert.equal(children[1].id, "13", "children[1].id"); - assert.equal(children[1].state, pipelineStageState.success, "children[1].state"); + assert.equal(children[1].state, validResultValues.success, "children[1].state"); assert.equal(children[1].completePercent, 100, "children[1].completePercent"); assert(Array.isArray(children[1].children), "children[1].children should be array"); assert.equal(children[1].children.length, 0, "children[1] should have no children"); @@ -237,45 +238,45 @@ describe("pipeline graph data converter", () => { assert.equal(result[0].name, "First", "result[0].name"); assert.equal(result[0].id, "3", "result[0].id"); - assert.equal(result[0].state, pipelineStageState.success, "result[0].state"); + assert.equal(result[0].state, validResultValues.success, "result[0].state"); assert.equal(result[0].completePercent, 100, "result[0].completePercent"); assert(Array.isArray(result[0].children), "result[0].children should be array"); assert.equal(result[0].children.length, 0, "result[0] should have no children"); assert.equal(result[1].name, "Second", "result[1].name"); assert.equal(result[1].id, "13", "result[1].id"); - assert.equal(result[1].state, pipelineStageState.running, "result[1].state"); + assert.equal(result[1].state, validResultValues.running, "result[1].state"); assert.equal(result[1].completePercent, 50, "result[1].completePercent"); assert(Array.isArray(result[1].children), "result[1].children should be array"); assert.equal(result[1].children.length, 0, "result[1] should have no children"); assert.equal(result[2].name, "Third", "result[2].name"); assert.equal(result[2].id, "27", "result[2].id"); - assert.equal(result[2].state, pipelineStageState.queued, "result[2].state"); + assert.equal(result[2].state, validResultValues.queued, "result[2].state"); assert.equal(result[2].completePercent, 0, "result[2].completePercent"); assert(Array.isArray(result[2].children), "result[2].children should be array"); assert.equal(result[2].children.length, 0, "result[2] should have no children"); assert.equal(result[3].name, "Fourth", "result[3].name"); assert.equal(result[3].id, "28", "result[3].id"); - assert.equal(result[3].state, pipelineStageState.failure, "result[3].state"); + assert.equal(result[3].state, validResultValues.failure, "result[3].state"); assert.equal(result[3].completePercent, 100, "result[3].completePercent"); assert(Array.isArray(result[3].children), "result[3].children should be array"); assert.equal(result[3].children.length, 0, "result[3] should have no children"); assert.equal(result[4].name, "Steve", "result[4].name"); assert.equal(result[4].id, "29", "result[4].id"); - assert.equal(result[4].state, pipelineStageState.notBuilt, "result[4].state"); + assert.equal(result[4].state, validResultValues.not_built, "result[4].state"); assert.equal(result[4].completePercent, 0, "result[4].completePercent"); assert(Array.isArray(result[4].children), "result[4].children should be array"); assert.equal(result[4].children.length, 0, "result[4] should have no children"); assert.equal(result[5].name, "Unknown-Null", "result[5].name"); assert.equal(result[5].id, "33", "result[5].id"); - assert.equal(result[5].state, pipelineStageState.queued, "result[5].state"); + assert.equal(result[5].state, validResultValues.queued, "result[5].state"); assert.equal(result[5].completePercent, 0, "result[5].completePercent"); assert(Array.isArray(result[5].children), "result[5].children should be array"); assert.equal(result[5].children.length, 0, "result[5] should have no children"); }); }); -}); \ No newline at end of file +});