From 1c422d3b7eef3f97de175c1c1c251e11877ce036 Mon Sep 17 00:00:00 2001 From: Daniel Haselhan Date: Fri, 6 Dec 2024 13:45:09 -0800 Subject: [PATCH] feat: Add Cypress test for entering FS * Expand existing cypress test to enter an FS and confirm the values show in the compliance report summary --- .../ComplianceReport/ComplianceReport.test.js | 83 +++++++++++++++++++ .../ComplianceReportManagement.feature | 4 + .../components/ActivityLinkList.jsx | 6 +- .../components/ComplianceReportSummary.jsx | 3 + .../components/SummaryTable.jsx | 1 + 5 files changed, 96 insertions(+), 1 deletion(-) diff --git a/frontend/cypress/e2e/Pages/ComplianceReport/ComplianceReport.test.js b/frontend/cypress/e2e/Pages/ComplianceReport/ComplianceReport.test.js index 7190e79a9..e175c8f20 100644 --- a/frontend/cypress/e2e/Pages/ComplianceReport/ComplianceReport.test.js +++ b/frontend/cypress/e2e/Pages/ComplianceReport/ComplianceReport.test.js @@ -30,6 +30,68 @@ When('the supplier creates a new compliance report', () => { cy.contains('.MuiList-root li', currentYear).click() }) +When('the supplier navigates to the fuel supply page', () => { + cy.get( + '[data-test="schedule-list"] > :nth-child(1) > .MuiTypography-root' + ).click() + + cy.contains('.MuiTypography-h5', 'Add new supply of fuel').should( + 'be.visible' + ) +}) + +When('the supplier enters a valid fuel supply row', () => { + // First, ensure the grid is loaded + cy.get('.ag-root').should('be.visible') + + cy.wait(1000) + + // Set "Fuel type" to "CNG" + cy.get('div[col-id="fuelType"][title="Select the fuel type from the list"]') + .click() + .find('input') + .type('CNG{enter}') + + cy.wait(800) + + // Set "Fuel category" to "Gasoline" + cy.get( + 'div[col-id="fuelCategory"][title="Select the fuel category from the list"]' + ) + .click() + .find('input') + .type('Gasoline{enter}') + cy.wait(800) + + // Set "Determining carbon intensity" to "Default carbon intensity - section 19 (b) (ii)" + cy.get( + 'div[col-id="provisionOfTheAct"][title="Act Relied Upon to Determine Carbon Intensity: Identify the appropriate provision of the Act relied upon to determine the carbon intensity of each fuel."]' + ).click() + + cy.get('body').click() + cy.contains('Row updated successfully.').should('be.visible') + cy.wait(700) + cy.get('.ag-body-horizontal-scroll-viewport').scrollTo(1000, 0) + cy.wait(1200) + + // Set "Quantity" to "10,000" + cy.get('div.ag-cell[col-id="quantity"]') + .click() + .wait(1200) + .find('input') + .type('10000{enter}') + + cy.contains('Row updated successfully.').should('be.visible') +}) + +When('saves and returns to the report', () => { + cy.get('.MuiButton-contained').click() + + cy.get('[data-test="compliance-report-status"]') + .should('be.visible') + .and('have.text', 'Status: Draft') +}) + Then('the compliance report introduction is shown', () => { // Assert the header cy.get('[data-test="compliance-report-header"]') @@ -57,3 +119,24 @@ Then('the compliance report introduction is shown', () => { 'Welcome to the British Columbia Low Carbon Fuel Standard Portal' ) }) + +Then('the compliance report summary includes the quantity', () => { + cy.wait(2000) + cy.get( + '[data-test="renewable-summary"] > .MuiTable-root > .MuiTableBody-root > :nth-child(2) > :nth-child(3) > span' + ) + .should('be.visible') + .and('have.text', '10,000') + + cy.get( + '[data-test="renewable-summary"] > .MuiTable-root > .MuiTableBody-root > :nth-child(3) > :nth-child(3) > span' + ) + .should('be.visible') + .and('have.text', '10,000') + + cy.get( + '[data-test="renewable-summary"] > .MuiTable-root > .MuiTableBody-root > :nth-child(4) > :nth-child(3) > span' + ) + .should('be.visible') + .and('have.text', '500') +}) diff --git a/frontend/cypress/e2e/Pages/ComplianceReport/ComplianceReportManagement.feature b/frontend/cypress/e2e/Pages/ComplianceReport/ComplianceReportManagement.feature index 01361dcff..a0e9c1975 100644 --- a/frontend/cypress/e2e/Pages/ComplianceReport/ComplianceReportManagement.feature +++ b/frontend/cypress/e2e/Pages/ComplianceReport/ComplianceReportManagement.feature @@ -6,3 +6,7 @@ Feature: Compliance Report Management And the supplier navigates to the compliance reports page And the supplier creates a new compliance report Then the compliance report introduction is shown + When the supplier navigates to the fuel supply page + And the supplier enters a valid fuel supply row + And saves and returns to the report + Then the compliance report summary includes the quantity diff --git a/frontend/src/views/ComplianceReports/components/ActivityLinkList.jsx b/frontend/src/views/ComplianceReports/components/ActivityLinkList.jsx index 7eba514ff..c968f8e4a 100644 --- a/frontend/src/views/ComplianceReports/components/ActivityLinkList.jsx +++ b/frontend/src/views/ComplianceReports/components/ActivityLinkList.jsx @@ -83,7 +83,11 @@ export const ActivityLinksList = () => { }, [t, navigate, compliancePeriod, complianceReportId]) return ( - + {activityList.map((activity, index) => (