Skip to content

Commit

Permalink
fix(config-graph): remove superfluous data from rendered graph nodes
Browse files Browse the repository at this point in the history
  • Loading branch information
eysi09 authored and thsig committed Apr 11, 2019
1 parent 2fb7b15 commit fa0d820
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 79 deletions.
68 changes: 5 additions & 63 deletions garden-service/src/config-graph.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,35 +47,12 @@ export type DependencyRelationFilterFn = (DependencyGraphNode) => boolean
export type RenderedGraph = { nodes: RenderedNode[], relationships: RenderedEdge[] }
export type RenderedEdge = { dependant: RenderedNode, dependency: RenderedNode }
export type RenderedNodeType = "build" | "deploy" | "run" | "test" | "push" | "publish"
export interface RenderedNodeBase {
export interface RenderedNode {
type: RenderedNodeType
name: string
moduleName: string
key: string
}
export interface RenderedBuildNode extends RenderedNodeBase {
type: "build"
}
export interface RenderedPushNode extends RenderedNodeBase {
type: "push"
}
export interface RenderedPublishNode extends RenderedNodeBase {
type: "publish"
}
export interface RenderedServiceNode extends RenderedNodeBase {
type: "deploy"
serviceName: string
}
export interface RenderedTaskNode extends RenderedNodeBase {
type: "run"
taskName: string
}
export interface RenderedTestNode extends RenderedNodeBase {
type: "test"
testName: string
}
export type RenderedNode = RenderedBuildNode | RenderedPushNode | RenderedPublishNode
| RenderedServiceNode | RenderedTaskNode | RenderedTestNode

/**
* A graph data structure that facilitates querying (recursive or non-recursive) of the project's dependency and
Expand Down Expand Up @@ -552,48 +529,13 @@ export class DependencyGraphNode {
}

render(): RenderedNode {
const type = <RenderedNodeType>renderedNodeTypeMap[this.type]
const renderedNode = {
name: this.name,
const name = this.type === "test" ? parseTestKey(this.name).testName : this.name
return {
name,
type: <RenderedNodeType>renderedNodeTypeMap[this.type],
moduleName: this.moduleName,
key: nodeKey(this.type, this.name),
}
switch (type) {
case "build":
return {
type,
...renderedNode,
}
case "deploy":
return {
type,
serviceName: this.name,
...renderedNode,
}
case "run":
return {
type,
taskName: this.name,
...renderedNode,
}
case "test":
const { testName } = parseTestKey(this.name)
return {
type,
testName,
...renderedNode,
}
case "push":
return {
type,
...renderedNode,
}
case "publish":
return {
type,
...renderedNode,
}
}
}

// Idempotent.
Expand Down
20 changes: 4 additions & 16 deletions garden-service/test/unit/src/config-graph.ts
Original file line number Diff line number Diff line change
Expand Up @@ -207,63 +207,54 @@ describe("ConfigGraph", () => {
},
{
type: "test",
testName: "unit",
name: "module-c.unit",
name: "unit",
moduleName: "module-c",
key: "test.module-c.unit",
},
{
type: "run",
taskName: "task-c",
name: "task-c",
moduleName: "module-c",
key: "task.task-c",
},
{
type: "deploy",
serviceName: "service-c",
name: "service-c",
moduleName: "module-c",
key: "service.service-c",
},
{
type: "test",
testName: "unit",
name: "module-a.unit",
name: "unit",
moduleName: "module-a",
key: "test.module-a.unit",
},
{
type: "run",
taskName: "task-a",
name: "task-a",
moduleName: "module-a",
key: "task.task-a",
},
{
type: "test",
testName: "unit",
name: "module-b.unit",
name: "unit",
moduleName: "module-b",
key: "test.module-b.unit",
},
{
type: "run",
taskName: "task-b",
name: "task-b",
moduleName: "module-b",
key: "task.task-b",
},
{
type: "deploy",
serviceName: "service-a",
name: "service-a",
moduleName: "module-a",
key: "service.service-a",
},
{
type: "deploy",
serviceName: "service-b",
name: "service-b",
moduleName: "module-b",
key: "service.service-b",
Expand Down Expand Up @@ -292,7 +283,6 @@ describe("DependencyGraphNode", () => {
type: "deploy",
name: "service-a",
moduleName: "module-a",
serviceName: "service-a",
key: "service.service-a",
})
})
Expand All @@ -303,7 +293,6 @@ describe("DependencyGraphNode", () => {
type: "run",
name: "task-a",
moduleName: "module-a",
taskName: "task-a",
key: "task.task-a",
})
})
Expand All @@ -312,9 +301,8 @@ describe("DependencyGraphNode", () => {
const res = node.render()
expect(res).to.eql({
type: "test",
name: "module-a.test-a",
name: "test-a",
moduleName: "module-a",
testName: "test-a",
key: "test.module-a.test-a",
})
})
Expand Down

0 comments on commit fa0d820

Please sign in to comment.