diff --git a/CI/e2e/docker-compose.e2e.yaml b/CI/e2e/docker-compose.e2e.yaml index 10127aea4..c80cfd218 100644 --- a/CI/e2e/docker-compose.e2e.yaml +++ b/CI/e2e/docker-compose.e2e.yaml @@ -29,6 +29,7 @@ services: volumes: - "./CI/e2e/.env.backend.e2e:/home/node/app/.env" - "./CI/e2e/functionalAccounts.e2e.json:/home/node/app/functionalAccounts.json" + - "./CI/e2e/proposalTypes.e2e.json:/home/node/app/proposalTypes.json" - "./CI/e2e/frontend.config.e2e.json:/home/node/app/dist/config/frontend.config.json" depends_on: mongodb: diff --git a/CI/e2e/proposalTypes.e2e.json b/CI/e2e/proposalTypes.e2e.json new file mode 100644 index 000000000..912c44040 --- /dev/null +++ b/CI/e2e/proposalTypes.e2e.json @@ -0,0 +1,4 @@ +{ + "DOORProposal": "DOOR Proposal", + "Beamtime": "Beamtime" +} diff --git a/cypress/e2e/proposals/proposals-general.cy.js b/cypress/e2e/proposals/proposals-general.cy.js index 9348daabc..f08c167d7 100644 --- a/cypress/e2e/proposals/proposals-general.cy.js +++ b/cypress/e2e/proposals/proposals-general.cy.js @@ -74,5 +74,38 @@ describe("Proposals general", () => { cy.get("mat-card").should("not.contain", newProposal.title); }); + + it("proposal should have type", () => { + const defaultProposalType = "Default Proposal"; + const newProposal = { + ...testData.proposal, + proposalId: Math.floor(100000 + Math.random() * 900000).toString(), + }; + cy.createProposal(newProposal); + + cy.visit(`/proposals/${newProposal.proposalId}`); + + cy.finishedLoading(); + + cy.contains(newProposal.title); + + cy.finishedLoading(); + + cy.get('[data-cy="proposal-type"]').contains(defaultProposalType); + + const newProposalType = "Beamtime"; + + cy.updateProposal(newProposal.proposalId, { + type: newProposalType, + }); + + cy.reload(); + + cy.finishedLoading(); + + cy.contains(newProposal.title); + + cy.get('[data-cy="proposal-type"]').contains(newProposalType); + }); }); }); diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 63cb5d73d..a90ce1d01 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -198,6 +198,30 @@ Cypress.Commands.add("createProposal", (proposal) => { }); }); }); +Cypress.Commands.add("updateProposal", (proposalId, updateProposalDto) => { + return cy.getCookie("$LoopBackSDK$user").then((userCookie) => { + const user = JSON.parse(decodeURIComponent(userCookie.value)); + + cy.getCookie("$LoopBackSDK$id").then((idCookie) => { + const token = idCookie.value; + cy.log( + "Update proposal DTO: " + JSON.stringify(updateProposalDto, null, 2), + ); + cy.log("User: " + JSON.stringify(user, null, 2)); + + cy.request({ + method: "PATCH", + url: `${lbBaseUrl}/Proposals/${encodeURIComponent(proposalId)}`, + headers: { + Authorization: token, + Accept: "application/json", + "Content-Type": "application/json", + }, + body: updateProposalDto, + }); + }); + }); +}); Cypress.Commands.add("deleteProposal", (id) => { cy.getCookie("$LoopBackSDK$id").then((idCookie) => { diff --git a/src/app/proposals/proposal-detail/proposal-detail.component.html b/src/app/proposals/proposal-detail/proposal-detail.component.html index ebaa7debe..84745dad9 100644 --- a/src/app/proposals/proposal-detail/proposal-detail.component.html +++ b/src/app/proposals/proposal-detail/proposal-detail.component.html @@ -54,7 +54,17 @@ -