mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-25 03:41:19 +00:00
Initial Move from Azure DevOps to GitHub
This commit is contained in:
112
src/Explorer/Graph/GraphExplorerComponent/GraphData.test.ts
Normal file
112
src/Explorer/Graph/GraphExplorerComponent/GraphData.test.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
import { GraphData, GremlinVertex, GremlinEdge } from "./GraphData";
|
||||
|
||||
describe("Graph Data", () => {
|
||||
it("should set only one node as root", () => {
|
||||
const graphData = new GraphData<GremlinVertex, GremlinEdge>();
|
||||
const v1: GremlinVertex = { id: "1", label: null };
|
||||
const v2: GremlinVertex = { id: "2", label: null };
|
||||
const v3: GremlinVertex = { id: "3", label: null };
|
||||
v3._isRoot = true;
|
||||
|
||||
graphData.addVertex(v1);
|
||||
graphData.addVertex(v2);
|
||||
graphData.addVertex(v3);
|
||||
|
||||
graphData.setAsRoot("2");
|
||||
graphData.setAsRoot("1");
|
||||
|
||||
// Count occurences of roots
|
||||
const roots = graphData.vertices.filter((v: any) => {
|
||||
return v._isRoot;
|
||||
});
|
||||
|
||||
expect(roots.length).toBe(1);
|
||||
expect(graphData.getVertexById("1")._isRoot).toBeDefined();
|
||||
expect(graphData.getVertexById("2")._isRoot).not.toBeDefined();
|
||||
expect(graphData.getVertexById("3")._isRoot).not.toBeDefined();
|
||||
});
|
||||
|
||||
it("should properly find root id", () => {
|
||||
const graphData = new GraphData();
|
||||
const v1: GremlinVertex = { id: "1", label: null };
|
||||
const v2: GremlinVertex = { id: "2", label: null };
|
||||
const v3: GremlinVertex = { id: "3", label: null };
|
||||
|
||||
graphData.addVertex(v1);
|
||||
graphData.addVertex(v2);
|
||||
graphData.addVertex(v3);
|
||||
|
||||
graphData.setAsRoot("1");
|
||||
|
||||
expect(graphData.findRootNodeId()).toBe("1");
|
||||
});
|
||||
|
||||
it("should remove edge from graph", () => {
|
||||
const graphData = new GraphData();
|
||||
|
||||
graphData.addVertex({ id: "v1", label: null });
|
||||
graphData.addVertex({ id: "v2", label: null });
|
||||
graphData.addVertex({ id: "v3", label: null });
|
||||
|
||||
graphData.addEdge({ id: "e1", inV: "v1", outV: "v2", label: null });
|
||||
graphData.addEdge({ id: "e2", inV: "v1", outV: "v3", label: null });
|
||||
|
||||
// in edge
|
||||
graphData.removeEdge("e1", false);
|
||||
expect(graphData.edges.length).toBe(1);
|
||||
expect(graphData).not.toContain(jasmine.objectContaining({ id: "e1" }));
|
||||
|
||||
// out edge
|
||||
graphData.removeEdge("e2", false);
|
||||
expect(graphData.edges.length).toBe(0);
|
||||
expect(graphData).not.toContain(jasmine.objectContaining({ id: "e2" }));
|
||||
});
|
||||
|
||||
it("should get string node property", () => {
|
||||
const stringValue = "blah";
|
||||
const value = GraphData.getNodePropValue(
|
||||
{
|
||||
id: "id",
|
||||
label: "label",
|
||||
properties: {
|
||||
testString: [{ id: "123", value: stringValue }]
|
||||
}
|
||||
},
|
||||
"testString"
|
||||
);
|
||||
|
||||
expect(value).toEqual(stringValue);
|
||||
});
|
||||
|
||||
it("should get number node property", () => {
|
||||
const numberValue = 2;
|
||||
const value = GraphData.getNodePropValue(
|
||||
{
|
||||
id: "id",
|
||||
label: "label",
|
||||
properties: {
|
||||
testString: [{ id: "123", value: numberValue }]
|
||||
}
|
||||
},
|
||||
"testString"
|
||||
);
|
||||
|
||||
expect(value).toEqual(numberValue);
|
||||
});
|
||||
|
||||
it("should get boolean node property", () => {
|
||||
const booleanValue = true;
|
||||
const value = GraphData.getNodePropValue(
|
||||
{
|
||||
id: "id",
|
||||
label: "label",
|
||||
properties: {
|
||||
testString: [{ id: "123", value: booleanValue }]
|
||||
}
|
||||
},
|
||||
"testString"
|
||||
);
|
||||
|
||||
expect(value).toEqual(booleanValue);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user