Skip to content

Commit fbebc55

Browse files
committed
feat(calm-hub-ui): add e2e test for adrs, flows, patterns, visualizer
1 parent 2b93620 commit fbebc55

File tree

10 files changed

+588
-7
lines changed

10 files changed

+588
-7
lines changed

calm-hub-ui/cypress/e2e/adrs.cy.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
const expectedNamespace = "finos"
2+
const expectedAdrId = 1;
3+
const expectedAdrRevision = 2;
4+
5+
describe('Pattern Tests', () => {
6+
beforeEach(() => {
7+
cy.intercept("/calm/namespaces", {"values": [expectedNamespace]});
8+
cy.intercept("/calm/namespaces/finos/adrs", {"values": [expectedAdrId]});
9+
cy.intercept("/calm/namespaces/finos/adrs/1/revisions", {"values": [expectedAdrRevision]});
10+
cy.intercept(`/calm/namespaces/finos/adrs/1/revisions/${expectedAdrRevision}`, {
11+
fixture: "example-adr"
12+
});
13+
})
14+
15+
it("Displays ADR JSON successfully", () => {
16+
cy.visit("/");
17+
cy.findByText(expectedNamespace).click();
18+
cy.findByText(/adrs/i).click();
19+
cy.findByText(/1/i).click();
20+
cy.findByText(expectedAdrRevision).click();
21+
22+
cy.fixture('example-adr').then(data => {
23+
cy.contains(/id/i).should("exist");
24+
cy.contains(data.id).should("exist");
25+
26+
cy.contains(/namespace/i).should("exist");
27+
cy.contains(data.namespace).should("exist");
28+
29+
cy.contains(data.revision).should("exist");
30+
31+
cy.contains(data.adr.title).should("exist");
32+
cy.contains(data.adr.status, {
33+
matchCase: false
34+
}).should("exist");
35+
cy.contains(/context and problem/i).should("exist")
36+
cy.contains(data.adr.contextAndProblemStatement).should("exist");
37+
38+
cy.contains(/decision drivers/i).should("exist")
39+
cy.contains(/considered options/i).should("exist")
40+
cy.contains(/decision outcome/i).should("exist")
41+
42+
});
43+
})
44+
})

calm-hub-ui/cypress/e2e/architectures.cy.ts

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,30 @@ describe('Architecture Tests', () => {
2323
cy.findByText(/node descriptions/i).should("exist");
2424

2525
cy.findByRole("tab", { name: /json/i}).click();
26-
cy.contains(/web-client/i);
26+
2727
cy.fixture('three-tier-calm').then(data => {
28-
cy.contains(/\$schema/i)
29-
cy.contains(data.$schema)
28+
cy.contains(/\$schema/i).should("exist");
29+
cy.contains(data.$schema).should("exist");
30+
cy.contains(/id/i).should("exist");
31+
32+
cy.contains(/nodes/i).should("exist");
33+
34+
Object.entries(data.nodes[0]).forEach(([key, value]) => {
35+
cy.contains(key).should("exist");
36+
cy.contains(value as string).should("exist");
37+
})
38+
39+
cy.contains(/unique-id/i).should("exist");
40+
cy.contains(data.nodes[0]["unique-id"]).should("exist");
41+
42+
cy.contains(/name/i).should("exist");
43+
cy.contains(data.nodes[0]["name"]).should("exist");
44+
45+
cy.contains(/description/i).should("exist");
46+
cy.contains(data.nodes[0]["description"]).should("exist");
3047

31-
cy.contains(/nodes/i);
32-
cy.get('[data-cy="json-renderer"]').scrollTo("bottom")
48+
cy.contains(/node-type/i).should("exist");
49+
cy.contains(data.nodes[0]["node-type"]).should("exist");
3350
});
3451
})
3552
})
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
const expectedNamespace = "finos"
2+
const expectedFlowId = 1;
3+
const expectedFlowVersion = "1.0.0";
4+
5+
describe('Pattern Tests', () => {
6+
beforeEach(() => {
7+
cy.intercept("/calm/namespaces", {"values": [expectedNamespace]});
8+
cy.intercept("/calm/namespaces/finos/flows", {"values": [expectedFlowId]});
9+
cy.intercept("/calm/namespaces/finos/flows/1/versions", {"values": [expectedFlowVersion]});
10+
cy.intercept("/calm/namespaces/finos/flows/1/versions/1.0.0", {
11+
fixture: "update-account-flow"
12+
});
13+
})
14+
15+
it("Displays flow JSON successfully", () => {
16+
cy.visit("/");
17+
cy.findByText(expectedNamespace).click();
18+
cy.findByText(/flows/i).click();
19+
cy.findByText(/1/i).click();
20+
cy.findByText(/1.0.0/i).click();
21+
22+
cy.fixture('update-account-flow').then(data => {
23+
cy.contains(/\$schema/i).should("exist");
24+
cy.contains(data.$schema).should("exist");
25+
26+
cy.contains(/\$id/i).should("exist");
27+
cy.contains(data.$id).should("exist");
28+
29+
cy.contains(/unique-id/i).should("exist");
30+
cy.contains(data["unique-id"]).should("exist");
31+
32+
cy.contains(/name/i).should("exist");
33+
cy.contains(data.name).should("exist");
34+
35+
cy.contains(/description/i).should("exist");
36+
cy.contains(data.description).should("exist");
37+
38+
cy.contains(/transitions/i).should("exist");
39+
40+
Object.entries(data.transitions[0]).forEach(([key, value]) => {
41+
cy.contains(key).should("exist");
42+
cy.contains(value as string).should("exist");
43+
})
44+
45+
});
46+
})
47+
})

calm-hub-ui/cypress/e2e/home.cy.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import {namespaces, resourceTypes} from "../fixtures/constants.js";
22

3-
43
describe('Home page tests', () => {
54
beforeEach(() => {
65
cy.intercept("/calm/namespaces", {"values": namespaces})
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
const expectedNamespace = "finos"
2+
const expectedPatternId = 1;
3+
const expectedPatternVersion = "1.0.0";
4+
5+
describe('Pattern Tests', () => {
6+
beforeEach(() => {
7+
cy.intercept("/calm/namespaces", {"values": [expectedNamespace]});
8+
cy.intercept("/calm/namespaces/finos/patterns", {"values": [expectedPatternId]});
9+
cy.intercept("/calm/namespaces/finos/patterns/1/versions", {"values": [expectedPatternVersion]});
10+
cy.intercept("/calm/namespaces/finos/patterns/1/versions/1.0.0", {
11+
fixture: "conference-signup-pattern"
12+
});
13+
})
14+
15+
it("Displays pattern JSON successfully", () => {
16+
cy.visit("/");
17+
cy.findByText(expectedNamespace).click();
18+
cy.findByText(/patterns/i).click();
19+
cy.findByText(/1/i).click();
20+
cy.findByText(/1.0.0/i).click();
21+
22+
cy.fixture('conference-signup-pattern').then(data => {
23+
cy.contains(/\$schema/i).should("exist");
24+
cy.contains(data.$schema).should("exist");
25+
26+
cy.contains(/\$id/i).should("exist");
27+
cy.contains(data.$id).should("exist");
28+
29+
cy.contains(/title/i).should("exist");
30+
cy.contains(data.title).should("exist");
31+
32+
cy.contains(/description/i).should("exist");
33+
cy.contains(data.description).should("exist");
34+
35+
cy.contains(/minItems/i).should("exist");
36+
cy.contains(data.properties.nodes.minItems).should("exist");
37+
38+
cy.contains(data.properties.nodes.minItems).should("exist");
39+
40+
cy.contains(/prefixItems/i).should("exist");
41+
});
42+
})
43+
})
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
describe("Visualizer page tests", () => {
2+
it("Displays visualizer on navigation", () => {
3+
cy.viewport('macbook-16')
4+
cy.visit("/");
5+
6+
cy.findByRole("link", { name: "Visualizer" }).click();
7+
8+
cy.get('canvas').should("not.exist");
9+
cy.findByText(/drag and drop your file here/i).should("exist");
10+
11+
cy.fixture("three-tier-calm", null).as('architecture');
12+
cy.get('input[type=file]').selectFile("@architecture", {force: true})
13+
14+
cy.get('canvas').should("exist");
15+
cy.findByText(/relationship descriptions/i).should("exist");
16+
cy.findByText(/node descriptions/i).should("exist");
17+
})
18+
})

0 commit comments

Comments
 (0)