From ce0598fb9f61c4665d4b4812484662fcac9636d8 Mon Sep 17 00:00:00 2001 From: btaniemie Date: Thu, 17 Apr 2025 09:38:17 -0400 Subject: [PATCH 1/6] test seeding report defaults --- .../seedingReport.defaults.spec.js | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js new file mode 100644 index 000000000..7c805c517 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js @@ -0,0 +1,39 @@ +/** + * Tests the default state of the Seeding Report page in the BarnKit module. + * Ensures correct UI elements appear and that default dates are properly set. + */ +import dayjs from 'dayjs' + +describe('Test the Seeding Report Default View', () => { + beforeEach(() => { + cy.login("manager1", "farmdata2") + cy.visit("/farm/fd2-barn-kit/seedingReport"); + }); + + it('displays correct defaults', () => { + cy.contains('h1', "Seeding report"); + cy.contains('label', "Set Dates"); + cy.get('button').contains("Generate Report").should('be.enabled'); + + + // Check default start and end dates + const expectedStart = dayjs().startOf('year').format('YYYY-MM-DD').toString() + const expectedEnd = dayjs().format('YYYY-MM-DD').toString() + + cy.get('[data-cy="date-range-selection"]').within(() => { + cy.get('input[type="date"]').eq(0).should('have.value', expectedStart) //Test Start Date + cy.get('input[type="date"]').eq(1).should('have.value', expectedEnd) //Test End Date + + }); + + + + // Report should NOT be visible by default + cy.get('[data-cy="filters-panel"]').should('not.exist'); + cy.get('[data-cy="report-table"]').should('not.exist'); + cy.get('[data-cy="no-logs-message"]').should('not.exist'); + cy.get('[data-cy="loader"]').should('not.exist'); +}); + + +}); \ No newline at end of file From ea9c7c4684ad320be224a77b92399324812bda19 Mon Sep 17 00:00:00 2001 From: btaniemie Date: Thu, 17 Apr 2025 09:57:33 -0400 Subject: [PATCH 2/6] fixed bug in HTML tag --- .../fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js index 7c805c517..0869c763b 100644 --- a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js @@ -11,8 +11,8 @@ describe('Test the Seeding Report Default View', () => { }); it('displays correct defaults', () => { - cy.contains('h1', "Seeding report"); - cy.contains('label', "Set Dates"); + cy.contains('h1', "Seeding Report"); + cy.contains('legend', "Set Dates"); cy.get('button').contains("Generate Report").should('be.enabled'); From ef792cae8fea36d50d945cd5ba1af2b8faa9dd66 Mon Sep 17 00:00:00 2001 From: btaniemie Date: Thu, 17 Apr 2025 10:04:31 -0400 Subject: [PATCH 3/6] finished all tests in issue #10 --- .../fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js index 0869c763b..a6b5e688c 100644 --- a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.defaults.spec.js @@ -26,8 +26,6 @@ describe('Test the Seeding Report Default View', () => { }); - - // Report should NOT be visible by default cy.get('[data-cy="filters-panel"]').should('not.exist'); cy.get('[data-cy="report-table"]').should('not.exist'); From d10c3a168455f1e6c411949eb2018f50f2fd79dc Mon Sep 17 00:00:00 2001 From: Anastasiia2505 Date: Wed, 23 Apr 2025 21:19:15 -0400 Subject: [PATCH 4/6] Started tests for DirectSummary --- cypress/e2e/seedingReport | 1 + 1 file changed, 1 insertion(+) create mode 120000 cypress/e2e/seedingReport diff --git a/cypress/e2e/seedingReport b/cypress/e2e/seedingReport new file mode 120000 index 000000000..3d7fefefd --- /dev/null +++ b/cypress/e2e/seedingReport @@ -0,0 +1 @@ +../farmdata2_modules/fd2_barn_kit/seedingReport \ No newline at end of file From 268505b23d8f4cf6b80966af65a7c1f8fcafdc22 Mon Sep 17 00:00:00 2001 From: btaniemie Date: Thu, 24 Apr 2025 09:51:48 -0400 Subject: [PATCH 5/6] finished all tests for ticket #26 --- .../seendingReportDirectSummary.spec.js | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seendingReportDirectSummary.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seendingReportDirectSummary.spec.js b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seendingReportDirectSummary.spec.js new file mode 100644 index 000000000..adff2a85a --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seendingReportDirectSummary.spec.js @@ -0,0 +1,48 @@ +describe('Test the Seeding Report Default View', () => { + beforeEach(() => { + cy.login("manager1", "farmdata2") + cy.visit("/farm/fd2-barn-kit/seedingReport"); + cy.waitForPage(); + }); + + it('should correctly compute the Direct Seeding Summary fields', () => { + // Set the start and end date to include known direct seeding logs + cy.get('[data-cy="date-range-selection"] input').eq(0).clear().type('2020-01-01'); + cy.get('[data-cy="date-range-selection"] input').eq(1).clear().type('2021-04-10'); + cy.get('[data-cy="generate-rpt-btn"]').click(); + + + // Wait for data to load + //cy.get('[data-cy="loader"]').should('not.exist'); + + + cy.get('[data-cy="report-table"]').should('exist'); + + + // Filter to Direct Seedings only to avoid Tray data + //cy.get('[data-cy="seeding-type-dropdown"]').contains('Direct Seedings').click(); + + // Wait for table to reload and extract table values + let expectedRowFeet =35530; // ← calculated from known data + let expectedBedFeet = 18440; // ← sum of (Row Feet / Rows/Bed) for each log + let expectedHours = 2.04; // ← sum of (Workers * Hours) per log + let expectedRowFeetPerHour = (expectedRowFeet / expectedHours).toFixed(2); + let expectedBedFeetPerHour = (expectedBedFeet / expectedHours).toFixed(2); + + // Total Row Feet Planted + cy.get('[data-cy="direct-total-rowft"]').should('have.text', expectedRowFeet.toString()); + + // Total Bed Feet Planted + cy.get('[data-cy="direct-total-bedft"]').should('have.text', expectedBedFeet.toString()); + + // Total Hours + cy.get('[data-cy="direct-total-hours"]').should('have.text', expectedHours.toString()); + + // Avg Row Feet/Hour + cy.get('[data-cy="direct-total-rowft-hour"]').should('have.text', expectedRowFeetPerHour); + + // Avg Bed Feet/Hour + cy.get('[data-cy="direct-total-bedfr-hour"]').should('have.text', expectedBedFeetPerHour); + }); + + }); \ No newline at end of file From 6545bacc7c0a2ed636a31383f65f4491461d2dd7 Mon Sep 17 00:00:00 2001 From: btaniemie Date: Thu, 1 May 2025 09:45:45 -0400 Subject: [PATCH 6/6] test that certain tabs exist depending on user role --- .../cypress/visibility.spec.js | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 farmdata2/farmdata2_modules/cypress/visibility.spec.js diff --git a/farmdata2/farmdata2_modules/cypress/visibility.spec.js b/farmdata2/farmdata2_modules/cypress/visibility.spec.js new file mode 100644 index 000000000..554506fc6 --- /dev/null +++ b/farmdata2/farmdata2_modules/cypress/visibility.spec.js @@ -0,0 +1,25 @@ +describe('Check visibility of FarmData2 tabs based on user role', () => { + it('Login as manager1, should see FieldKit, BarnKit, and FD2 Config tabs', () => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm') + cy.get('.nav-tabs').contains('FieldKit').should('exist') + cy.get('.nav-tabs').contains('BarnKit').should('exist') + cy.get('.nav-tabs').contains('FD2 Config').should('exist') + }) + + it('Login as worker1, should see FieldKit and BarnKit tabs but not FD2 Config', () => { + cy.login('worker1', 'farmdata2') + cy.visit('/farm') + cy.get('.nav-tabs').contains('FieldKit').should('exist') + cy.get('.nav-tabs').contains('BarnKit').should('exist') + cy.get('.nav-tabs').contains('FD2 Config').should('not.exist') + }) + + it('Login as guest, should not see FieldKit, BarnKit, or FD2 Config tabs', () => { + cy.login('guest', 'farmdata2') + cy.visit('/farm') + cy.get('.nav-tabs').contains('FieldKit').should('not.exist') + cy.get('.nav-tabs').contains('BarnKit').should('not.exist') + cy.get('.nav-tabs').contains('FD2 Config').should('not.exist') + }) + }) \ No newline at end of file