@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.23.2 → 4.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dpr/components/_filters/filters-help/view.njk +9 -8
  2. package/dpr/data/dprReportingClient.js +1 -1
  3. package/dpr/data/dprReportingClient.js.map +3 -3
  4. package/dpr/data/dprReportingClient.ts +6 -3
  5. package/dpr/data/types.d.js +1 -1
  6. package/dpr/data/types.d.js.map +1 -1
  7. package/dpr/data/types.d.ts +6 -0
  8. package/dpr/middleware/setUpDprResources.js +1 -1
  9. package/dpr/middleware/setUpDprResources.js.map +3 -3
  10. package/dpr/middleware/setUpDprResources.test.ts +11 -0
  11. package/dpr/middleware/setUpDprResources.ts +37 -2
  12. package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
  13. package/dpr/routes/journeys/download-report/tests.cy.js.map +3 -3
  14. package/dpr/routes/journeys/download-report/tests.cy.ts +1 -1
  15. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +1 -1
  16. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +3 -3
  17. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.ts +1 -1
  18. package/dpr/routes/journeys/product-collection/selected/tests.cy.js +1 -1
  19. package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +3 -3
  20. package/dpr/routes/journeys/product-collection/selected/tests.cy.ts +2 -2
  21. package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
  22. package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +3 -3
  23. package/dpr/routes/journeys/request-report/filters/tests.cy.ts +3 -4
  24. package/dpr/routes/journeys/request-report/filters/view.njk +2 -2
  25. package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
  26. package/dpr/routes/journeys/request-report/status/tests.cy.js.map +3 -3
  27. package/dpr/routes/journeys/request-report/status/tests.cy.ts +1 -1
  28. package/dpr/services/featureFlagService.js +2 -0
  29. package/dpr/services/featureFlagService.js.map +7 -0
  30. package/dpr/services/featureFlagService.ts +43 -0
  31. package/dpr/services/featureFlags.cy.js +2 -0
  32. package/dpr/services/featureFlags.cy.js.map +7 -0
  33. package/dpr/services/featureFlags.cy.ts +93 -0
  34. package/dpr/types/Services.d.js +1 -1
  35. package/dpr/types/Services.d.js.map +1 -1
  36. package/dpr/types/Services.d.ts +2 -0
  37. package/dpr/types/express.d.js +2 -0
  38. package/dpr/types/express.d.js.map +7 -0
  39. package/dpr/types/express.d.ts +14 -0
  40. package/dpr/utils/CreateDprServices.js +1 -1
  41. package/dpr/utils/CreateDprServices.js.map +2 -2
  42. package/dpr/utils/CreateDprServices.ts +4 -0
  43. package/package.json +2 -1
@@ -1,2 +1,2 @@
1
- "use strict";var u=require("../../../../../../cypress-tests/cypressUtils");describe("Request a report",()=>{const c="/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters",h="/embedded/platform/dpr/request-report/report/feature-testing/feature-testing-filter-order/filters";let s,n,r,d,o,f,y;const l=()=>{for(let e=0;e<5;e+=1)cy.get("#dpr-selected-filters > a:nth-child(1)").click(1,1)},i=()=>{cy.findByRole("combobox",{name:"Field 2"}).select("value2.2"),cy.findByRole("textbox",{name:"From"}).type("1/2/2003"),cy.findByRole("textbox",{name:"To"}).type("4/5/2007"),cy.findByRole("combobox",{name:"Field 4"}).type("Inigo Montoya"),cy.findByRole("textbox",{name:"Field 6"}).type("Value 6.1"),cy.findByRole("textbox",{name:"Field 7"}).type("05/05/2005"),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),cy.findByRole("checkbox",{name:"Value 8.2"}).check(),cy.findByRole("checkbox",{name:"Value 8.3"}).check(),cy.findByRole("checkbox",{name:"Value 8.4"}).check()};before(()=>{(0,u.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.task("stubDefinitionOrderFilters")}),beforeEach(()=>{cy.visit(c),s=cy.findByRole("combobox",{name:"Field 2"}),n=cy.findByRole("textbox",{name:"From"}),r=cy.findByRole("textbox",{name:"To"}),d=cy.findByRole("combobox",{name:"Field 4"}),o=cy.findByRole("combobox",{name:"Field 5"}),f=cy.findByRole("textbox",{name:"Field 6"}),y=cy.findByRole("textbox",{name:"Field 7"})}),it("is accessible",()=>{cy.injectAxe(),cy.checkA11y()}),context("Selected filters",()=>{it("should show the default selected filters",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",6).each((e,t)=>{switch(t){case 0:cy.wrap(e).contains("Field 1"),cy.wrap(e).contains("Value 1.2");break;case 1:cy.wrap(e).contains("Field 3 start"),cy.wrap(e).contains("01/02/2003");break;case 2:cy.wrap(e).contains("Field 3 end"),cy.wrap(e).contains("04/05/2006");break;case 3:cy.wrap(e).contains("Field 7"),cy.wrap(e).contains("01/02/2005");break;case 4:cy.wrap(e).contains("Field 8"),cy.wrap(e).contains("Value 8.2, Value 8.3");break;case 5:cy.wrap(e).contains("Reset filters");break;default:break}})})}),it("should remove the selected filter and reset the input",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",6)}),l(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",1)}),cy.findByRole("radio",{name:"None"}).should("not.be.checked"),cy.findByRole("radio",{name:"Value 1.1"}).should("not.be.checked"),cy.findByRole("radio",{name:"Value 1.2"}).should("not.be.checked"),cy.findByRole("radio",{name:"Value 1.3"}).should("not.be.checked"),s.find("option:selected").should("have.text","Select your option"),n.should("have.value",""),r.should("have.value",""),d.should("have.value",""),o.should("have.value",""),f.should("have.value",""),y.should("have.value","")}),it("should add selected filters when inputs values are updated",()=>{l(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",1)}),i(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",8).each((e,t)=>{switch(t){case 0:cy.wrap(e).contains("Field 2"),cy.wrap(e).contains("Value 2.2");break;case 1:cy.wrap(e).contains("Field 3 start"),cy.wrap(e).contains("01/02/2003");break;case 2:cy.wrap(e).contains("Field 3 end"),cy.wrap(e).contains("4/5/2007");break;case 3:cy.wrap(e).contains("Field 4"),cy.wrap(e).contains("Inigo Montoya");break;case 4:cy.wrap(e).contains("Field 6"),cy.wrap(e).contains("Value 6.1");break;case 5:cy.wrap(e).contains("Field 7"),cy.wrap(e).contains("05/05/2005");break;case 6:cy.wrap(e).contains("Field 8"),cy.wrap(e).contains("Value 8.1, Value 8.2, Value 8.3 + 1 more");break;default:break}})}),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field4=Inigo+Montoya"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05")})}),it("should reset the filters back to their DPD defaults",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",6)}),l(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",1)}),cy.findByRole("link",{name:"Reset filters"}).click(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",6)})})}),context("Request query parameters",()=>{it("should correctly set the request query parameters from DPD defaults",()=>{cy.location().should(e=>{expect(e.search).to.contain("filters.field1=value1.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2006-05-04"),expect(e.search).to.contain("filters.field7=2005-02-01"),expect(e.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")}),l(),i(),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field4=Inigo+Montoya"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4")})}),it("should correctly set the request query parameters when inputs are updated",()=>{l(),i(),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field4=Inigo+Montoya"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4")})}),it("should correctly set the input values from the query parameters",()=>{cy.visit(`${c}?filters.field1=value1.3&filters.field3.start=2004-02-01&filters.field3.end=2006-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",8).each((e,t)=>{switch(t){case 0:cy.wrap(e).contains("Field 1"),cy.wrap(e).contains("Value 1.3");break;case 1:cy.wrap(e).contains("Field 3 start"),cy.wrap(e).contains("01/02/2004");break;case 2:cy.wrap(e).contains("Field 3 end"),cy.wrap(e).contains("04/05/2006");break;case 3:cy.wrap(e).contains("Field 7"),cy.wrap(e).contains("01/02/2004");break;case 4:cy.wrap(e).contains("Field 8"),cy.wrap(e).contains("Value 8.1, Value 8.2, Value 8.3 + 1 more");break;case 5:cy.wrap(e).contains("Field 2"),cy.wrap(e).contains("Value 2.3");break;case 6:cy.wrap(e).contains("Field 4"),cy.wrap(e).contains("Prince Humperdink");break;case 7:cy.wrap(e).contains("Reset filters");break;default:break}})})}),it("should correctly set the input values from the query parameters with constraints",()=>{cy.visit(`${c}?filters.field1=value1.3&filters.field3.start=2002-02-01&filters.field3.end=2008-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",8).each((e,t)=>{switch(t){case 0:cy.wrap(e).contains("Field 1"),cy.wrap(e).contains("Value 1.3");break;case 1:cy.wrap(e).contains("Field 3 start"),cy.wrap(e).contains("01/02/2003");break;case 2:cy.wrap(e).contains("Field 3 end"),cy.wrap(e).contains("04/05/2007");break;case 3:cy.wrap(e).contains("Field 7"),cy.wrap(e).contains("01/02/2004");break;case 4:cy.wrap(e).contains("Field 8"),cy.wrap(e).contains("Value 8.1, Value 8.2, Value 8.3 + 1 more");break;case 5:cy.wrap(e).contains("Field 2"),cy.wrap(e).contains("Value 2.3");break;case 6:cy.wrap(e).contains("Field 4"),cy.wrap(e).contains("Prince Humperdink");break;case 7:cy.wrap(e).contains("Reset filters");break;default:break}})})})}),context("User defined defaults",()=>{it("should save the user defined defaults",()=>{l(),i(),cy.findByRole("button",{name:"Save current filter values as defaults"}).click(),cy.location().should(e=>{expect(e.search).to.contain("defaultsSaved=true")}),cy.findByRole("button",{name:"Update defaults"}).should("exist"),cy.findByRole("button",{name:"Delete defaults"}).should("exist")}),it("should pre-fill the filter values with the saved defaults next visit",()=>{cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field4=Inigo+Montoya"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).not.to.contain("defaultsSaved=true"),expect(e.search).to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4")}),cy.findByRole("button",{name:"Update defaults"}).should("exist"),cy.findByRole("button",{name:"Delete defaults"}).should("exist")}),it("should update the saved defaults",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").eq(1).click(1,1),cy.findAllByRole("link").eq(1).click(1,1),cy.findAllByRole("link").eq(1).click(1,1)}),cy.findByRole("checkbox",{name:"Value 8.2"}).uncheck(),cy.findByRole("checkbox",{name:"Value 8.3"}).uncheck(),cy.findByRole("combobox",{name:"Field 2"}).select("value2.3"),cy.findByRole("button",{name:"Update defaults"}).click(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",5)}),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.3"),expect(e.search).not.to.contain("filters.field3.start=2003-02-01"),expect(e.search).not.to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).to.contain("defaultsSaved=true"),expect(e.search).not.to.contain("filters.field4=Inigo+Montoya"),expect(e.search).not.to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4"),expect(e.search).to.contain("&filters.field8=value8.1&filters.field8=value8.4")}),cy.reload(),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.3"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).to.contain("defaultsSaved=true"),expect(e.search).not.to.contain("filters.field4=Inigo+Montoya"),expect(e.search).not.to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4"),expect(e.search).to.contain("&filters.field8=value8.1&filters.field8=value8.4")})}),it("should reset the defaults back to the user saved defaults",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").eq(1).click(1,1),cy.findAllByRole("link").eq(1).click(1,1),cy.findAllByRole("link").eq(1).click(1,1)}),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",2)}),cy.findByRole("link",{name:"Reset filters"}).click(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",5)})}),it("should remove the save defaults",()=>{cy.findByRole("button",{name:"Delete defaults"}).click(),cy.location().should(e=>{expect(e.search).to.contain("filters.field1=value1.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2006-05-04"),expect(e.search).to.contain("filters.field7=2005-02-01"),expect(e.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")})})}),context("Submission",()=>{it("should submit the report details in the request",()=>{cy.intercept({method:"POST",url:"/embedded/platform/dpr/request-report/report/**/**/filters?**"}).as("requestSubmit"),cy.findByRole("button",{name:/Request/}).click(),cy.wait("@requestSubmit").its("request").then(e=>{cy.wrap(e).its("body").should("include","reportId=request-examples"),cy.wrap(e).its("body").should("include","name=Successful+Report"),cy.wrap(e).its("body").should("include","reportName=Successful+Report"),cy.wrap(e).its("body").should("include","id=request-example-success")})}),it("should submit the request with the correct query params",()=>{cy.intercept({method:"POST",url:"/embedded/platform/dpr/request-report/report/**/**/filters?**"}).as("requestSubmit"),cy.findByRole("button",{name:/Request/}).click(),cy.wait("@requestSubmit").its("request").then(e=>{expect(e.query).to.have.property("filters.field1","value1.2"),expect(e.query).to.have.property("filters.field3.end","2006-05-04"),expect(e.query).to.have.property("filters.field3.start","2003-02-01"),expect(e.query).to.have.property("filters.field7","2005-02-01"),expect(e.query).to.have.property("filters.field8"),cy.wrap(e.query["filters.field8"]).should("deep.eq",["value8.2","value8.3"]),expect(e.query).to.have.property("sortColumn","field1"),expect(e.query).to.have.property("sortedAsc","false")})})}),context("Filter order",()=>{beforeEach(()=>{cy.visit(h)}),it("should order the filters correctly",()=>{cy.findAllByLabelText(/Filters/).within(()=>{cy.findAllByRole("textbox").each((e,t)=>{switch(t){case 0:cy.wrap(e).should("have.attr","display-name").then(a=>{expect(a).contains("Field 2")});break;case 1:cy.wrap(e).should("have.attr","display-name").then(a=>{expect(a).contains("Field 3")});break;case 2:cy.wrap(e).should("have.attr","display-name").then(a=>{expect(a).contains("Field 1")});break;default:break}})})})})});
1
+ "use strict";var u=require("../../../../../../cypress-tests/cypressUtils");describe("Request a report",()=>{const c="/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters",h="/embedded/platform/dpr/request-report/report/feature-testing/feature-testing-filter-order/filters";let s,n,r,d,o,f,y;const l=()=>{Array.from(Array(5).keys()).forEach(()=>cy.findByLabelText(/Selected filters/).within(()=>cy.findAllByRole("link").first().click(1,1)))},i=()=>{cy.findByRole("combobox",{name:"Field 2"}).select("value2.2"),cy.findByRole("textbox",{name:"From"}).type("1/2/2003"),cy.findByRole("textbox",{name:"To"}).type("4/5/2007"),cy.findByRole("combobox",{name:"Field 4"}).type("Inigo Montoya"),cy.findByRole("textbox",{name:"Field 6"}).type("Value 6.1"),cy.findByRole("textbox",{name:"Field 7"}).type("05/05/2005"),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),cy.findByRole("checkbox",{name:"Value 8.2"}).check(),cy.findByRole("checkbox",{name:"Value 8.3"}).check(),cy.findByRole("checkbox",{name:"Value 8.4"}).check()};before(()=>{(0,u.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.task("stubDefinitionOrderFilters")}),beforeEach(()=>{cy.visit(c),s=cy.findByRole("combobox",{name:"Field 2"}),n=cy.findByRole("textbox",{name:"From"}),r=cy.findByRole("textbox",{name:"To"}),d=cy.findByRole("combobox",{name:"Field 4"}),o=cy.findByRole("combobox",{name:"Field 5"}),f=cy.findByRole("textbox",{name:"Field 6"}),y=cy.findByRole("textbox",{name:"Field 7"})}),it("is accessible",()=>{cy.injectAxe(),cy.checkA11y()}),context("Selected filters",()=>{it("should show the default selected filters",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",6).each((e,t)=>{switch(t){case 0:cy.wrap(e).contains("Field 1"),cy.wrap(e).contains("Value 1.2");break;case 1:cy.wrap(e).contains("Field 3 start"),cy.wrap(e).contains("01/02/2003");break;case 2:cy.wrap(e).contains("Field 3 end"),cy.wrap(e).contains("04/05/2006");break;case 3:cy.wrap(e).contains("Field 7"),cy.wrap(e).contains("01/02/2005");break;case 4:cy.wrap(e).contains("Field 8"),cy.wrap(e).contains("Value 8.2, Value 8.3");break;case 5:cy.wrap(e).contains("Reset filters");break;default:break}})})}),it("should remove the selected filter and reset the input",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",6)}),l(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",1)}),cy.findByRole("radio",{name:"None"}).should("not.be.checked"),cy.findByRole("radio",{name:"Value 1.1"}).should("not.be.checked"),cy.findByRole("radio",{name:"Value 1.2"}).should("not.be.checked"),cy.findByRole("radio",{name:"Value 1.3"}).should("not.be.checked"),s.find("option:selected").should("have.text","Select your option"),n.should("have.value",""),r.should("have.value",""),d.should("have.value",""),o.should("have.value",""),f.should("have.value",""),y.should("have.value","")}),it("should add selected filters when inputs values are updated",()=>{l(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",1)}),i(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",8).each((e,t)=>{switch(t){case 0:cy.wrap(e).contains("Field 2"),cy.wrap(e).contains("Value 2.2");break;case 1:cy.wrap(e).contains("Field 3 start"),cy.wrap(e).contains("01/02/2003");break;case 2:cy.wrap(e).contains("Field 3 end"),cy.wrap(e).contains("4/5/2007");break;case 3:cy.wrap(e).contains("Field 4"),cy.wrap(e).contains("Inigo Montoya");break;case 4:cy.wrap(e).contains("Field 6"),cy.wrap(e).contains("Value 6.1");break;case 5:cy.wrap(e).contains("Field 7"),cy.wrap(e).contains("05/05/2005");break;case 6:cy.wrap(e).contains("Field 8"),cy.wrap(e).contains("Value 8.1, Value 8.2, Value 8.3 + 1 more");break;default:break}})}),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field4=Inigo+Montoya"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05")})}),it("should reset the filters back to their DPD defaults",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",6)}),l(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",1)}),cy.findByRole("link",{name:"Reset filters"}).click(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",6)})})}),context("Request query parameters",()=>{it("should correctly set the request query parameters from DPD defaults",()=>{cy.location().should(e=>{expect(e.search).to.contain("filters.field1=value1.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2006-05-04"),expect(e.search).to.contain("filters.field7=2005-02-01"),expect(e.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")}),l(),i(),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field4=Inigo+Montoya"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4")})}),it("should correctly set the request query parameters when inputs are updated",()=>{l(),i(),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field4=Inigo+Montoya"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4")})}),it("should correctly set the input values from the query parameters",()=>{cy.visit(`${c}?filters.field1=value1.3&filters.field3.start=2004-02-01&filters.field3.end=2006-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",8).each((e,t)=>{switch(t){case 0:cy.wrap(e).contains("Field 1"),cy.wrap(e).contains("Value 1.3");break;case 1:cy.wrap(e).contains("Field 3 start"),cy.wrap(e).contains("01/02/2004");break;case 2:cy.wrap(e).contains("Field 3 end"),cy.wrap(e).contains("04/05/2006");break;case 3:cy.wrap(e).contains("Field 7"),cy.wrap(e).contains("01/02/2004");break;case 4:cy.wrap(e).contains("Field 8"),cy.wrap(e).contains("Value 8.1, Value 8.2, Value 8.3 + 1 more");break;case 5:cy.wrap(e).contains("Field 2"),cy.wrap(e).contains("Value 2.3");break;case 6:cy.wrap(e).contains("Field 4"),cy.wrap(e).contains("Prince Humperdink");break;case 7:cy.wrap(e).contains("Reset filters");break;default:break}})})}),it("should correctly set the input values from the query parameters with constraints",()=>{cy.visit(`${c}?filters.field1=value1.3&filters.field3.start=2002-02-01&filters.field3.end=2008-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",8).each((e,t)=>{switch(t){case 0:cy.wrap(e).contains("Field 1"),cy.wrap(e).contains("Value 1.3");break;case 1:cy.wrap(e).contains("Field 3 start"),cy.wrap(e).contains("01/02/2003");break;case 2:cy.wrap(e).contains("Field 3 end"),cy.wrap(e).contains("04/05/2007");break;case 3:cy.wrap(e).contains("Field 7"),cy.wrap(e).contains("01/02/2004");break;case 4:cy.wrap(e).contains("Field 8"),cy.wrap(e).contains("Value 8.1, Value 8.2, Value 8.3 + 1 more");break;case 5:cy.wrap(e).contains("Field 2"),cy.wrap(e).contains("Value 2.3");break;case 6:cy.wrap(e).contains("Field 4"),cy.wrap(e).contains("Prince Humperdink");break;case 7:cy.wrap(e).contains("Reset filters");break;default:break}})})})}),context("User defined defaults",()=>{it("should save the user defined defaults",()=>{l(),i(),cy.findByRole("button",{name:"Save current filter values as defaults"}).click(),cy.location().should(e=>{expect(e.search).to.contain("defaultsSaved=true")}),cy.findByRole("button",{name:"Update defaults"}).should("exist"),cy.findByRole("button",{name:"Delete defaults"}).should("exist")}),it("should pre-fill the filter values with the saved defaults next visit",()=>{cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field4=Inigo+Montoya"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).not.to.contain("defaultsSaved=true"),expect(e.search).to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4")}),cy.findByRole("button",{name:"Update defaults"}).should("exist"),cy.findByRole("button",{name:"Delete defaults"}).should("exist")}),it("should update the saved defaults",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").eq(1).click(1,1),cy.findAllByRole("link").eq(1).click(1,1),cy.findAllByRole("link").eq(1).click(1,1)}),cy.findByRole("checkbox",{name:"Value 8.2"}).uncheck(),cy.findByRole("checkbox",{name:"Value 8.3"}).uncheck(),cy.findByRole("combobox",{name:"Field 2"}).select("value2.3"),cy.findByRole("button",{name:"Update defaults"}).click(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",5)}),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.3"),expect(e.search).not.to.contain("filters.field3.start=2003-02-01"),expect(e.search).not.to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).to.contain("defaultsSaved=true"),expect(e.search).not.to.contain("filters.field4=Inigo+Montoya"),expect(e.search).not.to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4"),expect(e.search).to.contain("&filters.field8=value8.1&filters.field8=value8.4")}),cy.reload(),cy.location().should(e=>{expect(e.search).to.contain("filters.field2=value2.3"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2007-05-04"),expect(e.search).to.contain("filters.field6=Value+6.1"),expect(e.search).to.contain("filters.field7=2005-05-05"),expect(e.search).to.contain("defaultsSaved=true"),expect(e.search).not.to.contain("filters.field4=Inigo+Montoya"),expect(e.search).not.to.contain("filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4"),expect(e.search).to.contain("&filters.field8=value8.1&filters.field8=value8.4")})}),it("should reset the defaults back to the user saved defaults",()=>{cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").eq(1).click(1,1),cy.findAllByRole("link").eq(1).click(1,1),cy.findAllByRole("link").eq(1).click(1,1)}),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",2)}),cy.findByRole("link",{name:"Reset filters"}).click(),cy.findByLabelText(/Selected filters.*/i).within(()=>{cy.findAllByRole("link").should("have.length",5)})}),it("should remove the save defaults",()=>{cy.findByRole("button",{name:"Delete defaults"}).click(),cy.location().should(e=>{expect(e.search).to.contain("filters.field1=value1.2"),expect(e.search).to.contain("filters.field3.start=2003-02-01"),expect(e.search).to.contain("filters.field3.end=2006-05-04"),expect(e.search).to.contain("filters.field7=2005-02-01"),expect(e.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")})})}),context("Submission",()=>{it("should submit the report details in the request",()=>{cy.intercept({method:"POST",url:"/embedded/platform/dpr/request-report/report/**/**/filters?**"}).as("requestSubmit"),cy.findByRole("button",{name:/Request/}).click(),cy.wait("@requestSubmit").its("request").then(e=>{cy.wrap(e).its("body").should("include","reportId=request-examples"),cy.wrap(e).its("body").should("include","name=Successful+Report"),cy.wrap(e).its("body").should("include","reportName=Successful+Report"),cy.wrap(e).its("body").should("include","id=request-example-success")})}),it("should submit the request with the correct query params",()=>{cy.intercept({method:"POST",url:"/embedded/platform/dpr/request-report/report/**/**/filters?**"}).as("requestSubmit"),cy.findByRole("button",{name:/Request/}).click(),cy.wait("@requestSubmit").its("request").then(e=>{expect(e.query).to.have.property("filters.field1","value1.2"),expect(e.query).to.have.property("filters.field3.end","2006-05-04"),expect(e.query).to.have.property("filters.field3.start","2003-02-01"),expect(e.query).to.have.property("filters.field7","2005-02-01"),expect(e.query).to.have.property("filters.field8"),cy.wrap(e.query["filters.field8"]).should("deep.eq",["value8.2","value8.3"]),expect(e.query).to.have.property("sortColumn","field1"),expect(e.query).to.have.property("sortedAsc","false")})})}),context("Filter order",()=>{beforeEach(()=>{cy.visit(h)}),it("should order the filters correctly",()=>{cy.findAllByLabelText(/Filters/).within(()=>{cy.findAllByRole("textbox").each((e,t)=>{switch(t){case 0:cy.wrap(e).should("have.attr","display-name").then(a=>{expect(a).contains("Field 2")});break;case 1:cy.wrap(e).should("have.attr","display-name").then(a=>{expect(a).contains("Field 3")});break;case 2:cy.wrap(e).should("have.attr","display-name").then(a=>{expect(a).contains("Field 1")});break;default:break}})})})})});
2
2
  //# sourceMappingURL=tests.cy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/routes/journeys/request-report/filters/tests.cy.ts"],
4
- "sourcesContent": ["import { executeReportStubs } from '../../../../../../cypress-tests/cypressUtils'\n\ndescribe('Request a report', () => {\n const path = '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters'\n const orderPath = '/embedded/platform/dpr/request-report/report/feature-testing/feature-testing-filter-order/filters'\n let field2: Cypress.Chainable<JQuery<HTMLElement>>\n let field3Start: Cypress.Chainable<JQuery<HTMLElement>>\n let field3End: Cypress.Chainable<JQuery<HTMLElement>>\n let field4: Cypress.Chainable<JQuery<HTMLElement>>\n let field5: Cypress.Chainable<JQuery<HTMLElement>>\n let field6: Cypress.Chainable<JQuery<HTMLElement>>\n let field7: Cypress.Chainable<JQuery<HTMLElement>>\n\n const clearSelectedFilters = () => {\n for (let index = 0; index < 5; index += 1) {\n const selectedFilter = cy.get('#dpr-selected-filters > a:nth-child(1)')\n selectedFilter.click(1, 1)\n }\n }\n\n const updateFilterValues = () => {\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.2')\n cy.findByRole('textbox', { name: 'From' }).type('1/2/2003')\n cy.findByRole('textbox', { name: 'To' }).type('4/5/2007')\n cy.findByRole('combobox', { name: 'Field 4' }).type('Inigo Montoya')\n cy.findByRole('textbox', { name: 'Field 6' }).type('Value 6.1')\n cy.findByRole('textbox', { name: 'Field 7' }).type('05/05/2005')\n // multiselect\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.2' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.4' }).check()\n }\n\n before(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubDefinitionOrderFilters')\n })\n\n beforeEach(() => {\n cy.visit(path)\n\n field2 = cy.findByRole('combobox', { name: 'Field 2' })\n field3Start = cy.findByRole('textbox', { name: 'From' })\n field3End = cy.findByRole('textbox', { name: 'To' })\n field4 = cy.findByRole('combobox', { name: 'Field 4' })\n field5 = cy.findByRole('combobox', { name: 'Field 5' })\n field6 = cy.findByRole('textbox', { name: 'Field 6' })\n field7 = cy.findByRole('textbox', { name: 'Field 7' })\n })\n\n it('is accessible', () => {\n cy.injectAxe()\n cy.checkA11y()\n })\n\n context('Selected filters', () => {\n it('should show the default selected filters', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 6)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 1')\n cy.wrap(filter).contains('Value 1.2')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2003')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('04/05/2006')\n break\n case 3:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('01/02/2005')\n break\n case 4:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.2, Value 8.3')\n break\n case 5:\n cy.wrap(filter).contains('Reset filters')\n break\n default:\n break\n }\n })\n })\n })\n\n it('should remove the selected filter and reset the input', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 6)\n })\n clearSelectedFilters()\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 1)\n })\n\n cy.findByRole('radio', { name: 'None' }).should('not.be.checked')\n cy.findByRole('radio', { name: 'Value 1.1' }).should('not.be.checked')\n cy.findByRole('radio', { name: 'Value 1.2' }).should('not.be.checked')\n cy.findByRole('radio', { name: 'Value 1.3' }).should('not.be.checked')\n field2.find('option:selected').should('have.text', 'Select your option')\n field3Start.should('have.value', '')\n field3End.should('have.value', '')\n field4.should('have.value', '')\n field5.should('have.value', '')\n field6.should('have.value', '')\n field7.should('have.value', '')\n })\n\n it('should add selected filters when inputs values are updated', () => {\n clearSelectedFilters()\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 1)\n })\n\n updateFilterValues()\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 8)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 2')\n cy.wrap(filter).contains('Value 2.2')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2003')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('4/5/2007')\n break\n case 3:\n cy.wrap(filter).contains('Field 4')\n cy.wrap(filter).contains('Inigo Montoya')\n break\n case 4:\n cy.wrap(filter).contains('Field 6')\n cy.wrap(filter).contains('Value 6.1')\n break\n case 5:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('05/05/2005')\n break\n case 6:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.1, Value 8.2, Value 8.3 + 1 more')\n break\n default:\n break\n }\n })\n })\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n })\n })\n\n it('should reset the filters back to their DPD defaults', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 6)\n })\n clearSelectedFilters()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 1)\n })\n\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 6)\n })\n })\n })\n\n context('Request query parameters', () => {\n it('should correctly set the request query parameters from DPD defaults', () => {\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n\n clearSelectedFilters()\n updateFilterValues()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n })\n })\n\n it('should correctly set the request query parameters when inputs are updated', () => {\n clearSelectedFilters()\n updateFilterValues()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n })\n })\n\n it('should correctly set the input values from the query parameters', () => {\n cy.visit(\n `${path}?filters.field1=value1.3&filters.field3.start=2004-02-01&filters.field3.end=2006-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`,\n )\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 8)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 1')\n cy.wrap(filter).contains('Value 1.3')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2004')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('04/05/2006')\n break\n case 3:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('01/02/2004')\n break\n case 4:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.1, Value 8.2, Value 8.3 + 1 more')\n break\n case 5:\n cy.wrap(filter).contains('Field 2')\n cy.wrap(filter).contains('Value 2.3')\n break\n case 6:\n cy.wrap(filter).contains('Field 4')\n cy.wrap(filter).contains('Prince Humperdink')\n break\n case 7:\n cy.wrap(filter).contains('Reset filters')\n break\n default:\n break\n }\n })\n })\n })\n\n it('should correctly set the input values from the query parameters with constraints', () => {\n cy.visit(\n `${path}?filters.field1=value1.3&filters.field3.start=2002-02-01&filters.field3.end=2008-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`,\n )\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 8)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 1')\n cy.wrap(filter).contains('Value 1.3')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2003')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('04/05/2007')\n break\n case 3:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('01/02/2004')\n break\n case 4:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.1, Value 8.2, Value 8.3 + 1 more')\n break\n case 5:\n cy.wrap(filter).contains('Field 2')\n cy.wrap(filter).contains('Value 2.3')\n break\n case 6:\n cy.wrap(filter).contains('Field 4')\n cy.wrap(filter).contains('Prince Humperdink')\n break\n case 7:\n cy.wrap(filter).contains('Reset filters')\n break\n default:\n break\n }\n })\n })\n })\n })\n\n context('User defined defaults', () => {\n it('should save the user defined defaults', () => {\n clearSelectedFilters()\n updateFilterValues()\n\n cy.findByRole('button', { name: 'Save current filter values as defaults' }).click()\n\n cy.location().should((location) => {\n expect(location.search).to.contain('defaultsSaved=true')\n })\n\n cy.findByRole('button', { name: 'Update defaults' }).should('exist')\n cy.findByRole('button', { name: 'Delete defaults' }).should('exist')\n })\n\n it('should pre-fill the filter values with the saved defaults next visit', () => {\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).not.to.contain(`defaultsSaved=true`)\n expect(location.search).to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n })\n\n cy.findByRole('button', { name: 'Update defaults' }).should('exist')\n cy.findByRole('button', { name: 'Delete defaults' }).should('exist')\n })\n\n it('should update the saved defaults', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n })\n\n cy.findByRole('checkbox', { name: 'Value 8.2' }).uncheck()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).uncheck()\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.3')\n\n cy.findByRole('button', { name: 'Update defaults' }).click()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 5)\n })\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.3`)\n expect(location.search).not.to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).not.to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(`defaultsSaved=true`)\n expect(location.search).not.to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).not.to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n expect(location.search).to.contain(`&filters.field8=value8.1&filters.field8=value8.4`)\n })\n\n cy.reload()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.3`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(`defaultsSaved=true`)\n expect(location.search).not.to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).not.to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n expect(location.search).to.contain(`&filters.field8=value8.1&filters.field8=value8.4`)\n })\n })\n\n it('should reset the defaults back to the user saved defaults', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n })\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 2)\n })\n\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 5)\n })\n })\n\n it('should remove the save defaults', () => {\n cy.findByRole('button', { name: 'Delete defaults' }).click()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n })\n })\n\n context('Submission', () => {\n it('should submit the report details in the request', () => {\n cy.intercept({\n method: 'POST',\n url: '/embedded/platform/dpr/request-report/report/**/**/filters?**',\n }).as('requestSubmit')\n\n cy.findByRole('button', { name: /Request/ }).click()\n\n cy.wait('@requestSubmit')\n .its('request')\n .then((request) => {\n cy.wrap(request).its('body').should('include', 'reportId=request-examples')\n cy.wrap(request).its('body').should('include', 'name=Successful+Report')\n cy.wrap(request).its('body').should('include', 'reportName=Successful+Report')\n cy.wrap(request).its('body').should('include', 'id=request-example-success')\n })\n })\n\n it('should submit the request with the correct query params', () => {\n cy.intercept({\n method: 'POST',\n url: '/embedded/platform/dpr/request-report/report/**/**/filters?**',\n }).as('requestSubmit')\n\n cy.findByRole('button', { name: /Request/ }).click()\n\n cy.wait('@requestSubmit')\n .its('request')\n .then((request) => {\n expect(request.query).to.have.property('filters.field1', 'value1.2')\n expect(request.query).to.have.property('filters.field3.end', '2006-05-04')\n expect(request.query).to.have.property('filters.field3.start', '2003-02-01')\n expect(request.query).to.have.property('filters.field7', '2005-02-01')\n expect(request.query).to.have.property('filters.field8')\n cy.wrap(request.query['filters.field8']).should('deep.eq', ['value8.2', 'value8.3'])\n expect(request.query).to.have.property('sortColumn', 'field1')\n expect(request.query).to.have.property('sortedAsc', 'false')\n })\n })\n })\n\n context('Filter order', () => {\n beforeEach(() => {\n cy.visit(orderPath)\n })\n\n it('should order the filters correctly', () => {\n cy.findAllByLabelText(/Filters/).within(() => {\n cy.findAllByRole('textbox').each((el, idx) => {\n switch (idx) {\n case 0:\n cy.wrap(el)\n .should('have.attr', 'display-name')\n .then((displayName) => {\n expect(displayName).contains('Field 2')\n })\n break\n case 1:\n cy.wrap(el)\n .should('have.attr', 'display-name')\n .then((displayName) => {\n expect(displayName).contains('Field 3')\n })\n break\n case 2:\n cy.wrap(el)\n .should('have.attr', 'display-name')\n .then((displayName) => {\n expect(displayName).contains('Field 1')\n })\n break\n default:\n break\n }\n })\n })\n })\n })\n})\n"],
5
- "mappings": "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",
6
- "names": ["import_cypressUtils", "path", "orderPath", "field2", "field3Start", "field3End", "field4", "field5", "field6", "field7", "clearSelectedFilters", "index", "updateFilterValues", "filter", "location", "request", "el", "idx", "displayName"]
4
+ "sourcesContent": ["import { executeReportStubs } from '../../../../../../cypress-tests/cypressUtils'\n\ndescribe('Request a report', () => {\n const path = '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters'\n const orderPath = '/embedded/platform/dpr/request-report/report/feature-testing/feature-testing-filter-order/filters'\n let field2: Cypress.Chainable<JQuery<HTMLElement>>\n let field3Start: Cypress.Chainable<JQuery<HTMLElement>>\n let field3End: Cypress.Chainable<JQuery<HTMLElement>>\n let field4: Cypress.Chainable<JQuery<HTMLElement>>\n let field5: Cypress.Chainable<JQuery<HTMLElement>>\n let field6: Cypress.Chainable<JQuery<HTMLElement>>\n let field7: Cypress.Chainable<JQuery<HTMLElement>>\n\n const clearSelectedFilters = () => {\n Array.from(Array(5).keys()).forEach(() =>\n cy.findByLabelText(/Selected filters/).within(() => cy.findAllByRole('link').first().click(1, 1)),\n )\n }\n\n const updateFilterValues = () => {\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.2')\n cy.findByRole('textbox', { name: 'From' }).type('1/2/2003')\n cy.findByRole('textbox', { name: 'To' }).type('4/5/2007')\n cy.findByRole('combobox', { name: 'Field 4' }).type('Inigo Montoya')\n cy.findByRole('textbox', { name: 'Field 6' }).type('Value 6.1')\n cy.findByRole('textbox', { name: 'Field 7' }).type('05/05/2005')\n // multiselect\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.2' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.4' }).check()\n }\n\n before(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubDefinitionOrderFilters')\n })\n\n beforeEach(() => {\n cy.visit(path)\n\n field2 = cy.findByRole('combobox', { name: 'Field 2' })\n field3Start = cy.findByRole('textbox', { name: 'From' })\n field3End = cy.findByRole('textbox', { name: 'To' })\n field4 = cy.findByRole('combobox', { name: 'Field 4' })\n field5 = cy.findByRole('combobox', { name: 'Field 5' })\n field6 = cy.findByRole('textbox', { name: 'Field 6' })\n field7 = cy.findByRole('textbox', { name: 'Field 7' })\n })\n\n it('is accessible', () => {\n cy.injectAxe()\n cy.checkA11y()\n })\n\n context('Selected filters', () => {\n it('should show the default selected filters', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 6)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 1')\n cy.wrap(filter).contains('Value 1.2')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2003')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('04/05/2006')\n break\n case 3:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('01/02/2005')\n break\n case 4:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.2, Value 8.3')\n break\n case 5:\n cy.wrap(filter).contains('Reset filters')\n break\n default:\n break\n }\n })\n })\n })\n\n it('should remove the selected filter and reset the input', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 6)\n })\n clearSelectedFilters()\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 1)\n })\n\n cy.findByRole('radio', { name: 'None' }).should('not.be.checked')\n cy.findByRole('radio', { name: 'Value 1.1' }).should('not.be.checked')\n cy.findByRole('radio', { name: 'Value 1.2' }).should('not.be.checked')\n cy.findByRole('radio', { name: 'Value 1.3' }).should('not.be.checked')\n field2.find('option:selected').should('have.text', 'Select your option')\n field3Start.should('have.value', '')\n field3End.should('have.value', '')\n field4.should('have.value', '')\n field5.should('have.value', '')\n field6.should('have.value', '')\n field7.should('have.value', '')\n })\n\n it('should add selected filters when inputs values are updated', () => {\n clearSelectedFilters()\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 1)\n })\n\n updateFilterValues()\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 8)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 2')\n cy.wrap(filter).contains('Value 2.2')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2003')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('4/5/2007')\n break\n case 3:\n cy.wrap(filter).contains('Field 4')\n cy.wrap(filter).contains('Inigo Montoya')\n break\n case 4:\n cy.wrap(filter).contains('Field 6')\n cy.wrap(filter).contains('Value 6.1')\n break\n case 5:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('05/05/2005')\n break\n case 6:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.1, Value 8.2, Value 8.3 + 1 more')\n break\n default:\n break\n }\n })\n })\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n })\n })\n\n it('should reset the filters back to their DPD defaults', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 6)\n })\n clearSelectedFilters()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 1)\n })\n\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 6)\n })\n })\n })\n\n context('Request query parameters', () => {\n it('should correctly set the request query parameters from DPD defaults', () => {\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n\n clearSelectedFilters()\n updateFilterValues()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n })\n })\n\n it('should correctly set the request query parameters when inputs are updated', () => {\n clearSelectedFilters()\n updateFilterValues()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n })\n })\n\n it('should correctly set the input values from the query parameters', () => {\n cy.visit(\n `${path}?filters.field1=value1.3&filters.field3.start=2004-02-01&filters.field3.end=2006-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`,\n )\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 8)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 1')\n cy.wrap(filter).contains('Value 1.3')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2004')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('04/05/2006')\n break\n case 3:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('01/02/2004')\n break\n case 4:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.1, Value 8.2, Value 8.3 + 1 more')\n break\n case 5:\n cy.wrap(filter).contains('Field 2')\n cy.wrap(filter).contains('Value 2.3')\n break\n case 6:\n cy.wrap(filter).contains('Field 4')\n cy.wrap(filter).contains('Prince Humperdink')\n break\n case 7:\n cy.wrap(filter).contains('Reset filters')\n break\n default:\n break\n }\n })\n })\n })\n\n it('should correctly set the input values from the query parameters with constraints', () => {\n cy.visit(\n `${path}?filters.field1=value1.3&filters.field3.start=2002-02-01&filters.field3.end=2008-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`,\n )\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 8)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 1')\n cy.wrap(filter).contains('Value 1.3')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2003')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('04/05/2007')\n break\n case 3:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('01/02/2004')\n break\n case 4:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.1, Value 8.2, Value 8.3 + 1 more')\n break\n case 5:\n cy.wrap(filter).contains('Field 2')\n cy.wrap(filter).contains('Value 2.3')\n break\n case 6:\n cy.wrap(filter).contains('Field 4')\n cy.wrap(filter).contains('Prince Humperdink')\n break\n case 7:\n cy.wrap(filter).contains('Reset filters')\n break\n default:\n break\n }\n })\n })\n })\n })\n\n context('User defined defaults', () => {\n it('should save the user defined defaults', () => {\n clearSelectedFilters()\n updateFilterValues()\n\n cy.findByRole('button', { name: 'Save current filter values as defaults' }).click()\n\n cy.location().should((location) => {\n expect(location.search).to.contain('defaultsSaved=true')\n })\n\n cy.findByRole('button', { name: 'Update defaults' }).should('exist')\n cy.findByRole('button', { name: 'Delete defaults' }).should('exist')\n })\n\n it('should pre-fill the filter values with the saved defaults next visit', () => {\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).not.to.contain(`defaultsSaved=true`)\n expect(location.search).to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n })\n\n cy.findByRole('button', { name: 'Update defaults' }).should('exist')\n cy.findByRole('button', { name: 'Delete defaults' }).should('exist')\n })\n\n it('should update the saved defaults', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n })\n\n cy.findByRole('checkbox', { name: 'Value 8.2' }).uncheck()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).uncheck()\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.3')\n\n cy.findByRole('button', { name: 'Update defaults' }).click()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 5)\n })\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.3`)\n expect(location.search).not.to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).not.to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(`defaultsSaved=true`)\n expect(location.search).not.to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).not.to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n expect(location.search).to.contain(`&filters.field8=value8.1&filters.field8=value8.4`)\n })\n\n cy.reload()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.3`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(`defaultsSaved=true`)\n expect(location.search).not.to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).not.to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n expect(location.search).to.contain(`&filters.field8=value8.1&filters.field8=value8.4`)\n })\n })\n\n it('should reset the defaults back to the user saved defaults', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n })\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 2)\n })\n\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 5)\n })\n })\n\n it('should remove the save defaults', () => {\n cy.findByRole('button', { name: 'Delete defaults' }).click()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n })\n })\n\n context('Submission', () => {\n it('should submit the report details in the request', () => {\n cy.intercept({\n method: 'POST',\n url: '/embedded/platform/dpr/request-report/report/**/**/filters?**',\n }).as('requestSubmit')\n\n cy.findByRole('button', { name: /Request/ }).click()\n\n cy.wait('@requestSubmit')\n .its('request')\n .then((request) => {\n cy.wrap(request).its('body').should('include', 'reportId=request-examples')\n cy.wrap(request).its('body').should('include', 'name=Successful+Report')\n cy.wrap(request).its('body').should('include', 'reportName=Successful+Report')\n cy.wrap(request).its('body').should('include', 'id=request-example-success')\n })\n })\n\n it('should submit the request with the correct query params', () => {\n cy.intercept({\n method: 'POST',\n url: '/embedded/platform/dpr/request-report/report/**/**/filters?**',\n }).as('requestSubmit')\n\n cy.findByRole('button', { name: /Request/ }).click()\n\n cy.wait('@requestSubmit')\n .its('request')\n .then((request) => {\n expect(request.query).to.have.property('filters.field1', 'value1.2')\n expect(request.query).to.have.property('filters.field3.end', '2006-05-04')\n expect(request.query).to.have.property('filters.field3.start', '2003-02-01')\n expect(request.query).to.have.property('filters.field7', '2005-02-01')\n expect(request.query).to.have.property('filters.field8')\n cy.wrap(request.query['filters.field8']).should('deep.eq', ['value8.2', 'value8.3'])\n expect(request.query).to.have.property('sortColumn', 'field1')\n expect(request.query).to.have.property('sortedAsc', 'false')\n })\n })\n })\n\n context('Filter order', () => {\n beforeEach(() => {\n cy.visit(orderPath)\n })\n\n it('should order the filters correctly', () => {\n cy.findAllByLabelText(/Filters/).within(() => {\n cy.findAllByRole('textbox').each((el, idx) => {\n switch (idx) {\n case 0:\n cy.wrap(el)\n .should('have.attr', 'display-name')\n .then((displayName) => {\n expect(displayName).contains('Field 2')\n })\n break\n case 1:\n cy.wrap(el)\n .should('have.attr', 'display-name')\n .then((displayName) => {\n expect(displayName).contains('Field 3')\n })\n break\n case 2:\n cy.wrap(el)\n .should('have.attr', 'display-name')\n .then((displayName) => {\n expect(displayName).contains('Field 1')\n })\n break\n default:\n break\n }\n })\n })\n })\n })\n})\n"],
5
+ "mappings": "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",
6
+ "names": ["import_cypressUtils", "path", "orderPath", "field2", "field3Start", "field3End", "field4", "field5", "field6", "field7", "clearSelectedFilters", "updateFilterValues", "filter", "index", "location", "request", "el", "idx", "displayName"]
7
7
  }
@@ -12,10 +12,9 @@ describe('Request a report', () => {
12
12
  let field7: Cypress.Chainable<JQuery<HTMLElement>>
13
13
 
14
14
  const clearSelectedFilters = () => {
15
- for (let index = 0; index < 5; index += 1) {
16
- const selectedFilter = cy.get('#dpr-selected-filters > a:nth-child(1)')
17
- selectedFilter.click(1, 1)
18
- }
15
+ Array.from(Array(5).keys()).forEach(() =>
16
+ cy.findByLabelText(/Selected filters/).within(() => cy.findAllByRole('link').first().click(1, 1)),
17
+ )
19
18
  }
20
19
 
21
20
  const updateFilterValues = () => {
@@ -13,7 +13,7 @@
13
13
  {% if filters %}
14
14
  <p class="govuk-body">{{ filterDescription }}</p>
15
15
  {% endif %}
16
-
16
+
17
17
  {% set reportDetailsHtml %}
18
18
  {{ dprRequestDetails(reportData)}}
19
19
  {% endset %}
@@ -25,7 +25,7 @@
25
25
  open: (filtersData.filters.length == null or filtersData.filters.length == 0)
26
26
  }) }}
27
27
 
28
- {{ dprFiltersHelp() }}
28
+ {{ dprFiltersHelp(saveDefaultsEnabled) }}
29
29
 
30
30
  {{ dprAsyncFiltersForm({
31
31
  filters: filtersData.filters,
@@ -1,2 +1,2 @@
1
- "use strict";var d=Object.create;var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var r=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var h=(e,i,s,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let c of y(i))!b.call(e,c)&&c!==s&&n(e,c,{get:()=>i[c],enumerable:!(t=a(i,c))||t.enumerable});return e};var R=(e,i,s)=>(s=e!=null?d(r(e)):{},h(i||!e||!e.__esModule?n(s,"default",{value:e,enumerable:!0}):s,e));var o=require("cypress-tests/cypressUtils"),u=R(require("dayjs")),l=require("test-app/routes/integrationTests/redisStateTestUtils");context("Request status",()=>{const e="/embedded/platform/";beforeEach(()=>{(0,o.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20WithDelay")}),describe("post request",()=>{const i="";it("should show the status pages",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,o.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText(/picked/i).should("be.visible"),(0,o.checkA11y)(),cy.task("stubReportsStartedStatus"),cy.findByText(/started/i).should("be.visible"),(0,o.checkA11y)(),cy.task("stubReportsFinishedStatus"),cy.findAllByRole("heading",{name:/successful report/i}).should("be.visible")}),it("should timeout",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,o.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText("PICKED").should("be.visible"),(0,l.getRedisState)().then(s=>{const t={...s.body};t.requestedReports[0].timestamp.requested=(0,u.default)(s.body.requestedReports[0].timestamp.requested).add(-1,"days").toDate(),(0,l.setRedisState)(t)}),cy.findAllByText(/Request taking too long/).eq(0).should("be.visible"),(0,o.checkA11y)()}),describe("failure status pages",()=>{beforeEach(()=>{cy.task("resetRedis"),cy.task("stubReportsPickedStatus"),cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),cy.findByText(/submitted/i).should("be.visible"),cy.findByText(/picked/i).should("be.visible")}),it("should show the aborted status page",()=>{cy.task("stubReportsAbortedStatus"),cy.findByText(/aborted/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the expired status page",()=>{cy.task("stubReportsExpiredStatus"),cy.findByText(/expired/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the failed status page",()=>{cy.task("stubReportsFailedStatus"),cy.findByText(/your report has failed to generate/i).should("be.visible"),cy.findByRole("group").contains("Show full error").should("be.visible"),cy.findByText(/Show full error/).click(),cy.findByText(/a developer message goes here/).should("be.visible"),cy.findAllByRole("list").contains("Report ID: request-examples").should("be.visible"),cy.findAllByRole("list").contains(`Execution ID: ${i}`).should("be.visible"),cy.findAllByRole("list").contains("Table ID: tblId_").should("be.visible"),cy.injectAxe(),cy.checkA11y()})})})});
1
+ "use strict";var d=Object.create;var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var r=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var h=(e,i,s,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let c of y(i))!b.call(e,c)&&c!==s&&n(e,c,{get:()=>i[c],enumerable:!(t=a(i,c))||t.enumerable});return e};var R=(e,i,s)=>(s=e!=null?d(r(e)):{},h(i||!e||!e.__esModule?n(s,"default",{value:e,enumerable:!0}):s,e));var o=require("cypress-tests/cypressUtils"),u=R(require("dayjs")),l=require("test-app/routes/integrationTests/appStateUtils");context("Request status",()=>{const e="/embedded/platform/";beforeEach(()=>{(0,o.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20WithDelay")}),describe("post request",()=>{const i="";it("should show the status pages",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,o.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText(/picked/i).should("be.visible"),(0,o.checkA11y)(),cy.task("stubReportsStartedStatus"),cy.findByText(/started/i).should("be.visible"),(0,o.checkA11y)(),cy.task("stubReportsFinishedStatus"),cy.findAllByRole("heading",{name:/successful report/i}).should("be.visible")}),it("should timeout",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,o.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText("PICKED").should("be.visible"),(0,l.getRedisState)().then(s=>{const t={...s.body};t.requestedReports[0].timestamp.requested=(0,u.default)(s.body.requestedReports[0].timestamp.requested).add(-1,"days").toDate(),(0,l.setRedisState)(t)}),cy.findAllByText(/Request taking too long/).eq(0).should("be.visible"),(0,o.checkA11y)()}),describe("failure status pages",()=>{beforeEach(()=>{cy.task("resetRedis"),cy.task("stubReportsPickedStatus"),cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),cy.findByText(/submitted/i).should("be.visible"),cy.findByText(/picked/i).should("be.visible")}),it("should show the aborted status page",()=>{cy.task("stubReportsAbortedStatus"),cy.findByText(/aborted/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the expired status page",()=>{cy.task("stubReportsExpiredStatus"),cy.findByText(/expired/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the failed status page",()=>{cy.task("stubReportsFailedStatus"),cy.findByText(/your report has failed to generate/i).should("be.visible"),cy.findByRole("group").contains("Show full error").should("be.visible"),cy.findByText(/Show full error/).click(),cy.findByText(/a developer message goes here/).should("be.visible"),cy.findAllByRole("list").contains("Report ID: request-examples").should("be.visible"),cy.findAllByRole("list").contains(`Execution ID: ${i}`).should("be.visible"),cy.findAllByRole("list").contains("Table ID: tblId_").should("be.visible"),cy.injectAxe(),cy.checkA11y()})})})});
2
2
  //# sourceMappingURL=tests.cy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/routes/journeys/request-report/status/tests.cy.ts"],
4
- "sourcesContent": ["import { checkA11y, executeReportStubs } from 'cypress-tests/cypressUtils'\nimport dayjs from 'dayjs'\nimport { getRedisState, setRedisState } from 'test-app/routes/integrationTests/redisStateTestUtils'\n\ncontext('Request status', () => {\n const path = '/embedded/platform/'\n\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20WithDelay')\n })\n\n describe('post request', () => {\n const executionId = ''\n\n it('should show the status pages', () => {\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('button', { name: /Request/ }).click()\n checkA11y()\n cy.task('stubReportsPickedStatus')\n cy.findByText(/picked/i).should('be.visible')\n checkA11y()\n cy.task('stubReportsStartedStatus')\n cy.findByText(/started/i).should('be.visible')\n checkA11y()\n cy.task('stubReportsFinishedStatus')\n cy.findAllByRole('heading', { name: /successful report/i }).should('be.visible')\n })\n\n it('should timeout', () => {\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('button', { name: /Request/ }).click()\n checkA11y()\n cy.task('stubReportsPickedStatus')\n cy.findByText('PICKED').should('be.visible')\n getRedisState().then((state) => {\n const newState = {\n ...state.body,\n }\n newState.requestedReports[0].timestamp.requested = dayjs(state.body.requestedReports[0].timestamp.requested)\n .add(-1, 'days')\n .toDate()\n setRedisState(newState)\n })\n cy.findAllByText(/Request taking too long/)\n .eq(0)\n .should('be.visible')\n checkA11y()\n })\n\n describe('failure status pages', () => {\n beforeEach(() => {\n cy.task('resetRedis')\n cy.task('stubReportsPickedStatus')\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('button', { name: /Request/ }).click()\n cy.findByText(/submitted/i).should('be.visible')\n cy.findByText(/picked/i).should('be.visible')\n })\n\n it('should show the aborted status page', () => {\n cy.task('stubReportsAbortedStatus')\n cy.findByText(/aborted/i).should('be.visible')\n cy.injectAxe()\n cy.checkA11y()\n })\n it('should show the expired status page', () => {\n cy.task('stubReportsExpiredStatus')\n cy.findByText(/expired/i).should('be.visible')\n cy.injectAxe()\n cy.checkA11y()\n })\n it('should show the failed status page', () => {\n cy.task('stubReportsFailedStatus')\n cy.findByText(/your report has failed to generate/i).should('be.visible')\n cy.findByRole('group').contains('Show full error').should('be.visible')\n cy.findByText(/Show full error/).click()\n cy.findByText(/a developer message goes here/).should('be.visible')\n cy.findAllByRole('list').contains('Report ID: request-examples').should('be.visible')\n cy.findAllByRole('list').contains(`Execution ID: ${executionId}`).should('be.visible')\n cy.findAllByRole('list').contains('Table ID: tblId_').should('be.visible')\n cy.injectAxe()\n cy.checkA11y()\n })\n })\n })\n})\n"],
5
- "mappings": "wdAAA,IAAAA,EAA8C,sCAC9CC,EAAkB,oBAClBC,EAA6C,gEAE7C,QAAQ,iBAAkB,IAAM,CAC9B,MAAMC,EAAO,sBAEb,WAAW,IAAM,IACf,sBAAmB,EACnB,GAAG,KAAK,sCAAsC,EAC9C,GAAG,KAAK,qCAAqC,CAC/C,CAAC,EAED,SAAS,eAAgB,IAAM,CAC7B,MAAMC,EAAc,GAEpB,GAAG,+BAAgC,IAAM,CACvC,GAAG,MAAMD,CAAI,EACb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACE,EAAGC,IAEN,EAAQA,EAAQ,aAAa,SAAS,mBAAmB,GACzD,EAAQA,EAAQ,aAAa,SAAS,mBAAmB,CAG/D,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,CAC1D,CAAC,CACH,CAAC,EACD,GAAG,WAAW,SAAU,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,KACnD,aAAU,EACV,GAAG,KAAK,yBAAyB,EACjC,GAAG,WAAW,SAAS,EAAE,OAAO,YAAY,KAC5C,aAAU,EACV,GAAG,KAAK,0BAA0B,EAClC,GAAG,WAAW,UAAU,EAAE,OAAO,YAAY,KAC7C,aAAU,EACV,GAAG,KAAK,2BAA2B,EACnC,GAAG,cAAc,UAAW,CAAE,KAAM,oBAAqB,CAAC,EAAE,OAAO,YAAY,CACjF,CAAC,EAED,GAAG,iBAAkB,IAAM,CACzB,GAAG,MAAMH,CAAI,EACb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACE,EAAGC,IAEN,EAAQA,EAAQ,aAAa,SAAS,mBAAmB,GACzD,EAAQA,EAAQ,aAAa,SAAS,mBAAmB,CAG/D,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,CAC1D,CAAC,CACH,CAAC,EACD,GAAG,WAAW,SAAU,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,KACnD,aAAU,EACV,GAAG,KAAK,yBAAyB,EACjC,GAAG,WAAW,QAAQ,EAAE,OAAO,YAAY,KAC3C,iBAAc,EAAE,KAAMC,GAAU,CAC9B,MAAMC,EAAW,CACf,GAAGD,EAAM,IACX,EACAC,EAAS,iBAAiB,CAAC,EAAE,UAAU,aAAY,EAAAC,SAAMF,EAAM,KAAK,iBAAiB,CAAC,EAAE,UAAU,SAAS,EACxG,IAAI,GAAI,MAAM,EACd,OAAO,KACV,iBAAcC,CAAQ,CACxB,CAAC,EACD,GAAG,cAAc,yBAAyB,EACvC,GAAG,CAAC,EACJ,OAAO,YAAY,KACtB,aAAU,CACZ,CAAC,EAED,SAAS,uBAAwB,IAAM,CACrC,WAAW,IAAM,CACf,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,yBAAyB,EACjC,GAAG,MAAML,CAAI,EACb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACE,EAAGC,IAEN,EAAQA,EAAQ,aAAa,SAAS,mBAAmB,GACzD,EAAQA,EAAQ,aAAa,SAAS,mBAAmB,CAG/D,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,CAC1D,CAAC,CACH,CAAC,EACD,GAAG,WAAW,SAAU,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,EACnD,GAAG,WAAW,YAAY,EAAE,OAAO,YAAY,EAC/C,GAAG,WAAW,SAAS,EAAE,OAAO,YAAY,CAC9C,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,GAAG,KAAK,0BAA0B,EAClC,GAAG,WAAW,UAAU,EAAE,OAAO,YAAY,EAC7C,GAAG,UAAU,EACb,GAAG,UAAU,CACf,CAAC,EACD,GAAG,sCAAuC,IAAM,CAC9C,GAAG,KAAK,0BAA0B,EAClC,GAAG,WAAW,UAAU,EAAE,OAAO,YAAY,EAC7C,GAAG,UAAU,EACb,GAAG,UAAU,CACf,CAAC,EACD,GAAG,qCAAsC,IAAM,CAC7C,GAAG,KAAK,yBAAyB,EACjC,GAAG,WAAW,qCAAqC,EAAE,OAAO,YAAY,EACxE,GAAG,WAAW,OAAO,EAAE,SAAS,iBAAiB,EAAE,OAAO,YAAY,EACtE,GAAG,WAAW,iBAAiB,EAAE,MAAM,EACvC,GAAG,WAAW,+BAA+B,EAAE,OAAO,YAAY,EAClE,GAAG,cAAc,MAAM,EAAE,SAAS,6BAA6B,EAAE,OAAO,YAAY,EACpF,GAAG,cAAc,MAAM,EAAE,SAAS,iBAAiBF,CAAW,EAAE,EAAE,OAAO,YAAY,EACrF,GAAG,cAAc,MAAM,EAAE,SAAS,kBAAkB,EAAE,OAAO,YAAY,EACzE,GAAG,UAAU,EACb,GAAG,UAAU,CACf,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
6
- "names": ["import_cypressUtils", "import_dayjs", "import_redisStateTestUtils", "path", "executionId", "_", "element", "state", "newState", "dayjs"]
4
+ "sourcesContent": ["import { checkA11y, executeReportStubs } from 'cypress-tests/cypressUtils'\nimport dayjs from 'dayjs'\nimport { getRedisState, setRedisState } from 'test-app/routes/integrationTests/appStateUtils'\n\ncontext('Request status', () => {\n const path = '/embedded/platform/'\n\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20WithDelay')\n })\n\n describe('post request', () => {\n const executionId = ''\n\n it('should show the status pages', () => {\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('button', { name: /Request/ }).click()\n checkA11y()\n cy.task('stubReportsPickedStatus')\n cy.findByText(/picked/i).should('be.visible')\n checkA11y()\n cy.task('stubReportsStartedStatus')\n cy.findByText(/started/i).should('be.visible')\n checkA11y()\n cy.task('stubReportsFinishedStatus')\n cy.findAllByRole('heading', { name: /successful report/i }).should('be.visible')\n })\n\n it('should timeout', () => {\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('button', { name: /Request/ }).click()\n checkA11y()\n cy.task('stubReportsPickedStatus')\n cy.findByText('PICKED').should('be.visible')\n getRedisState().then((state) => {\n const newState = {\n ...state.body,\n }\n newState.requestedReports[0].timestamp.requested = dayjs(state.body.requestedReports[0].timestamp.requested)\n .add(-1, 'days')\n .toDate()\n setRedisState(newState)\n })\n cy.findAllByText(/Request taking too long/)\n .eq(0)\n .should('be.visible')\n checkA11y()\n })\n\n describe('failure status pages', () => {\n beforeEach(() => {\n cy.task('resetRedis')\n cy.task('stubReportsPickedStatus')\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('button', { name: /Request/ }).click()\n cy.findByText(/submitted/i).should('be.visible')\n cy.findByText(/picked/i).should('be.visible')\n })\n\n it('should show the aborted status page', () => {\n cy.task('stubReportsAbortedStatus')\n cy.findByText(/aborted/i).should('be.visible')\n cy.injectAxe()\n cy.checkA11y()\n })\n it('should show the expired status page', () => {\n cy.task('stubReportsExpiredStatus')\n cy.findByText(/expired/i).should('be.visible')\n cy.injectAxe()\n cy.checkA11y()\n })\n it('should show the failed status page', () => {\n cy.task('stubReportsFailedStatus')\n cy.findByText(/your report has failed to generate/i).should('be.visible')\n cy.findByRole('group').contains('Show full error').should('be.visible')\n cy.findByText(/Show full error/).click()\n cy.findByText(/a developer message goes here/).should('be.visible')\n cy.findAllByRole('list').contains('Report ID: request-examples').should('be.visible')\n cy.findAllByRole('list').contains(`Execution ID: ${executionId}`).should('be.visible')\n cy.findAllByRole('list').contains('Table ID: tblId_').should('be.visible')\n cy.injectAxe()\n cy.checkA11y()\n })\n })\n })\n})\n"],
5
+ "mappings": "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",
6
+ "names": ["import_cypressUtils", "import_dayjs", "import_appStateUtils", "path", "executionId", "_", "element", "state", "newState", "dayjs"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import { checkA11y, executeReportStubs } from 'cypress-tests/cypressUtils'
2
2
  import dayjs from 'dayjs'
3
- import { getRedisState, setRedisState } from 'test-app/routes/integrationTests/redisStateTestUtils'
3
+ import { getRedisState, setRedisState } from 'test-app/routes/integrationTests/appStateUtils'
4
4
 
5
5
  context('Request status', () => {
6
6
  const path = '/embedded/platform/'
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var p=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},c=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of l(e))!g.call(n,a)&&a!==t&&r(n,a,{get:()=>e[a],enumerable:!(s=o(e,a))||s.enumerable});return n};var F=n=>c(r({},"__esModule",{value:!0}),n);var h={};p(h,{FeatureFlagService:()=>u,isBooleanFlagEnabled:()=>f});module.exports=F(h);var i=require("@flipt-io/flipt");class u{constructor(e={}){const{namespace:t,token:s,url:a}=e&&e;Object.keys(e).length!==3||!t||!s||!a||(this.restClient=new i.FliptClient({headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},url:a}),this.namespace=t)}async getFlags(){return!this.restClient||!this.namespace?{flags:[],nextPageToken:"",totalCount:0}:this.restClient.flags.listFlags(this.namespace)}}const f=(n,e)=>{const t=e.locals.featureFlags?.flags?.[n];if(t&&t.type!=="BOOLEAN_FLAG_TYPE")throw Error("Tried to validate whether a non-boolean flag was enabled");return!t||t.enabled};0&&(module.exports={FeatureFlagService,isBooleanFlagEnabled});
2
+ //# sourceMappingURL=featureFlagService.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dpr/services/featureFlagService.ts"],
4
+ "sourcesContent": ["import { FliptClient, ListFlagsResponse } from '@flipt-io/flipt'\nimport { Application } from 'express'\nimport { FeatureFlagConfig } from '../data/types'\n\nexport class FeatureFlagService {\n restClient: FliptClient | undefined\n\n namespace: string | undefined\n\n constructor(config: FeatureFlagConfig | Record<string, unknown> = {}) {\n const { namespace, token, url } = config && (config as FeatureFlagConfig)\n if (Object.keys(config).length !== 3 || !namespace || !token || !url) {\n return\n }\n this.restClient = new FliptClient({\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n url,\n })\n this.namespace = namespace\n }\n\n async getFlags(): Promise<ListFlagsResponse> {\n if (!this.restClient || !this.namespace) {\n return {\n flags: [],\n nextPageToken: '',\n totalCount: 0,\n }\n }\n return this.restClient.flags.listFlags(this.namespace)\n }\n}\n\nexport const isBooleanFlagEnabled = (flagName: string, app: Application): boolean => {\n const flag = app.locals.featureFlags?.flags?.[flagName]\n if (flag && flag.type !== 'BOOLEAN_FLAG_TYPE') {\n throw Error('Tried to validate whether a non-boolean flag was enabled')\n }\n return !flag || flag.enabled\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,yBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAA+C,2BAIxC,MAAMH,CAAmB,CAK9B,YAAYI,EAAsD,CAAC,EAAG,CACpE,KAAM,CAAE,UAAAC,EAAW,MAAAC,EAAO,IAAAC,CAAI,EAAIH,GAAWA,EACzC,OAAO,KAAKA,CAAM,EAAE,SAAW,GAAK,CAACC,GAAa,CAACC,GAAS,CAACC,IAGjE,KAAK,WAAa,IAAI,cAAY,CAChC,QAAS,CACP,cAAe,UAAUD,CAAK,GAC9B,eAAgB,kBAClB,EACA,IAAAC,CACF,CAAC,EACD,KAAK,UAAYF,EACnB,CAEA,MAAM,UAAuC,CAC3C,MAAI,CAAC,KAAK,YAAc,CAAC,KAAK,UACrB,CACL,MAAO,CAAC,EACR,cAAe,GACf,WAAY,CACd,EAEK,KAAK,WAAW,MAAM,UAAU,KAAK,SAAS,CACvD,CACF,CAEO,MAAMJ,EAAuB,CAACO,EAAkBC,IAA8B,CACnF,MAAMC,EAAOD,EAAI,OAAO,cAAc,QAAQD,CAAQ,EACtD,GAAIE,GAAQA,EAAK,OAAS,oBACxB,MAAM,MAAM,0DAA0D,EAExE,MAAO,CAACA,GAAQA,EAAK,OACvB",
6
+ "names": ["featureFlagService_exports", "__export", "FeatureFlagService", "isBooleanFlagEnabled", "__toCommonJS", "import_flipt", "config", "namespace", "token", "url", "flagName", "app", "flag"]
7
+ }
@@ -0,0 +1,43 @@
1
+ import { FliptClient, ListFlagsResponse } from '@flipt-io/flipt'
2
+ import { Application } from 'express'
3
+ import { FeatureFlagConfig } from '../data/types'
4
+
5
+ export class FeatureFlagService {
6
+ restClient: FliptClient | undefined
7
+
8
+ namespace: string | undefined
9
+
10
+ constructor(config: FeatureFlagConfig | Record<string, unknown> = {}) {
11
+ const { namespace, token, url } = config && (config as FeatureFlagConfig)
12
+ if (Object.keys(config).length !== 3 || !namespace || !token || !url) {
13
+ return
14
+ }
15
+ this.restClient = new FliptClient({
16
+ headers: {
17
+ Authorization: `Bearer ${token}`,
18
+ 'Content-Type': 'application/json',
19
+ },
20
+ url,
21
+ })
22
+ this.namespace = namespace
23
+ }
24
+
25
+ async getFlags(): Promise<ListFlagsResponse> {
26
+ if (!this.restClient || !this.namespace) {
27
+ return {
28
+ flags: [],
29
+ nextPageToken: '',
30
+ totalCount: 0,
31
+ }
32
+ }
33
+ return this.restClient.flags.listFlags(this.namespace)
34
+ }
35
+ }
36
+
37
+ export const isBooleanFlagEnabled = (flagName: string, app: Application): boolean => {
38
+ const flag = app.locals.featureFlags?.flags?.[flagName]
39
+ if (flag && flag.type !== 'BOOLEAN_FLAG_TYPE') {
40
+ throw Error('Tried to validate whether a non-boolean flag was enabled')
41
+ }
42
+ return !flag || flag.enabled
43
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var l=require("cypress-tests/cypressUtils"),a=require("test-app/routes/integrationTests/appStateUtils");context("Viewing a report",()=>{const s="/embedded/platform/";after(()=>{cy.task("stubFeatureFlags"),(0,a.resetFeatureFlags)()}),describe("Feature flags",()=>{beforeEach(()=>{(0,l.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),(0,a.resetFeatureFlags)()}),it("should show the ability to save filters as default with feature flag enabled",()=>{cy.task("stubFeatureFlags"),cy.visit(s),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(i,t)=>!!t?.textContent?.includes("Successful Report")&&!!t?.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Save current filter values as defaults/}).should("be.visible");const e=cy.contains("summary",/Help/);e.click(),e.parent("details").invoke("attr","open").should("exist"),cy.findByRole("heading",{name:/Save current filter values as defaults/}).should("be.visible")}),it("should show the ability to save filters as default with feature flag not existing",()=>{cy.task("stubFeatureFlagsEmpty"),cy.visit(s),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(i,t)=>!!t?.textContent?.includes("Successful Report")&&!!t?.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Save current filter values as defaults/}).should("be.visible");const e=cy.contains("summary",/Help/);e.click(),e.parent("details").invoke("attr","open").should("exist"),cy.findByRole("heading",{name:/Save current filter values as defaults/}).should("be.visible")}),it("should not show the ability to save filters as default with feature flag disabled",()=>{cy.task("stubFeatureFlagsDisabled"),cy.visit(s),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(i,t)=>!!t?.textContent?.includes("Successful Report")&&!!t?.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Save current filter values as defaults/}).should("not.exist");const e=cy.contains("summary",/Help/);e.click(),e.parent("details").invoke("attr","open").should("exist"),cy.findByRole("heading",{name:/Save current filter values as defaults/}).should("not.exist")})})});
2
+ //# sourceMappingURL=featureFlags.cy.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dpr/services/featureFlags.cy.ts"],
4
+ "sourcesContent": ["import { executeReportStubs } from 'cypress-tests/cypressUtils'\nimport { resetFeatureFlags } from 'test-app/routes/integrationTests/appStateUtils'\n\ncontext('Viewing a report', () => {\n const path = '/embedded/platform/'\n\n // Do a reset so that any tests after this re-query for feature flags\n after(() => {\n cy.task('stubFeatureFlags')\n resetFeatureFlags()\n })\n\n describe('Feature flags', () => {\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n resetFeatureFlags()\n })\n\n it('should show the ability to save filters as default with feature flag enabled', () => {\n cy.task('stubFeatureFlags')\n\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element?.textContent?.includes('Successful Report')) &&\n Boolean(element?.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n\n cy.findByRole('button', { name: /Save current filter values as defaults/ }).should('be.visible')\n const helpSummary = cy.contains('summary', /Help/)\n helpSummary.click()\n helpSummary.parent('details').invoke('attr', 'open').should('exist')\n cy.findByRole('heading', { name: /Save current filter values as defaults/ }).should('be.visible')\n })\n\n it('should show the ability to save filters as default with feature flag not existing', () => {\n cy.task('stubFeatureFlagsEmpty')\n\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element?.textContent?.includes('Successful Report')) &&\n Boolean(element?.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n\n cy.findByRole('button', { name: /Save current filter values as defaults/ }).should('be.visible')\n const helpSummary = cy.contains('summary', /Help/)\n helpSummary.click()\n helpSummary.parent('details').invoke('attr', 'open').should('exist')\n cy.findByRole('heading', { name: /Save current filter values as defaults/ }).should('be.visible')\n })\n\n it('should not show the ability to save filters as default with feature flag disabled', () => {\n cy.task('stubFeatureFlagsDisabled')\n\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element?.textContent?.includes('Successful Report')) &&\n Boolean(element?.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n\n cy.findByRole('button', { name: /Save current filter values as defaults/ }).should('not.exist')\n const helpSummary = cy.contains('summary', /Help/)\n helpSummary.click()\n helpSummary.parent('details').invoke('attr', 'open').should('exist')\n cy.findByRole('heading', { name: /Save current filter values as defaults/ }).should('not.exist')\n })\n })\n})\n"],
5
+ "mappings": "aAAA,IAAAA,EAAmC,sCACnCC,EAAkC,0DAElC,QAAQ,mBAAoB,IAAM,CAChC,MAAMC,EAAO,sBAGb,MAAM,IAAM,CACV,GAAG,KAAK,kBAAkB,KAC1B,qBAAkB,CACpB,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,WAAW,IAAM,IACf,sBAAmB,EACnB,GAAG,KAAK,sCAAsC,EAC9C,GAAG,KAAK,4BAA4B,KACpC,qBAAkB,CACpB,CAAC,EAED,GAAG,+EAAgF,IAAM,CACvF,GAAG,KAAK,kBAAkB,EAE1B,GAAG,MAAMA,CAAI,EACb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IAEN,EAAQA,GAAS,aAAa,SAAS,mBAAmB,GAC1D,EAAQA,GAAS,aAAa,SAAS,mBAAmB,CAGhE,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,CAC1D,CAAC,CACH,CAAC,EAED,GAAG,WAAW,SAAU,CAAE,KAAM,wCAAyC,CAAC,EAAE,OAAO,YAAY,EAC/F,MAAMC,EAAc,GAAG,SAAS,UAAW,MAAM,EACjDA,EAAY,MAAM,EAClBA,EAAY,OAAO,SAAS,EAAE,OAAO,OAAQ,MAAM,EAAE,OAAO,OAAO,EACnE,GAAG,WAAW,UAAW,CAAE,KAAM,wCAAyC,CAAC,EAAE,OAAO,YAAY,CAClG,CAAC,EAED,GAAG,oFAAqF,IAAM,CAC5F,GAAG,KAAK,uBAAuB,EAE/B,GAAG,MAAMH,CAAI,EACb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IAEN,EAAQA,GAAS,aAAa,SAAS,mBAAmB,GAC1D,EAAQA,GAAS,aAAa,SAAS,mBAAmB,CAGhE,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,CAC1D,CAAC,CACH,CAAC,EAED,GAAG,WAAW,SAAU,CAAE,KAAM,wCAAyC,CAAC,EAAE,OAAO,YAAY,EAC/F,MAAMC,EAAc,GAAG,SAAS,UAAW,MAAM,EACjDA,EAAY,MAAM,EAClBA,EAAY,OAAO,SAAS,EAAE,OAAO,OAAQ,MAAM,EAAE,OAAO,OAAO,EACnE,GAAG,WAAW,UAAW,CAAE,KAAM,wCAAyC,CAAC,EAAE,OAAO,YAAY,CAClG,CAAC,EAED,GAAG,oFAAqF,IAAM,CAC5F,GAAG,KAAK,0BAA0B,EAElC,GAAG,MAAMH,CAAI,EACb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IAEN,EAAQA,GAAS,aAAa,SAAS,mBAAmB,GAC1D,EAAQA,GAAS,aAAa,SAAS,mBAAmB,CAGhE,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,CAC1D,CAAC,CACH,CAAC,EAED,GAAG,WAAW,SAAU,CAAE,KAAM,wCAAyC,CAAC,EAAE,OAAO,WAAW,EAC9F,MAAMC,EAAc,GAAG,SAAS,UAAW,MAAM,EACjDA,EAAY,MAAM,EAClBA,EAAY,OAAO,SAAS,EAAE,OAAO,OAAQ,MAAM,EAAE,OAAO,OAAO,EACnE,GAAG,WAAW,UAAW,CAAE,KAAM,wCAAyC,CAAC,EAAE,OAAO,WAAW,CACjG,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_cypressUtils", "import_appStateUtils", "path", "_", "element", "helpSummary"]
7
+ }
@@ -0,0 +1,93 @@
1
+ import { executeReportStubs } from 'cypress-tests/cypressUtils'
2
+ import { resetFeatureFlags } from 'test-app/routes/integrationTests/appStateUtils'
3
+
4
+ context('Viewing a report', () => {
5
+ const path = '/embedded/platform/'
6
+
7
+ // Do a reset so that any tests after this re-query for feature flags
8
+ after(() => {
9
+ cy.task('stubFeatureFlags')
10
+ resetFeatureFlags()
11
+ })
12
+
13
+ describe('Feature flags', () => {
14
+ beforeEach(() => {
15
+ executeReportStubs()
16
+ cy.task('stubDefinitionRequestExamplesSuccess')
17
+ cy.task('stubRequestSuccessResult20')
18
+ resetFeatureFlags()
19
+ })
20
+
21
+ it('should show the ability to save filters as default with feature flag enabled', () => {
22
+ cy.task('stubFeatureFlags')
23
+
24
+ cy.visit(path)
25
+ cy.findByLabelText(/Reports catalogue.*/i).within(() => {
26
+ cy.findByRole('row', {
27
+ name: (_, element) => {
28
+ return (
29
+ Boolean(element?.textContent?.includes('Successful Report')) &&
30
+ Boolean(element?.textContent?.includes('this will succeed'))
31
+ )
32
+ },
33
+ }).within(() => {
34
+ cy.findByRole('link', { name: 'Request report' }).click()
35
+ })
36
+ })
37
+
38
+ cy.findByRole('button', { name: /Save current filter values as defaults/ }).should('be.visible')
39
+ const helpSummary = cy.contains('summary', /Help/)
40
+ helpSummary.click()
41
+ helpSummary.parent('details').invoke('attr', 'open').should('exist')
42
+ cy.findByRole('heading', { name: /Save current filter values as defaults/ }).should('be.visible')
43
+ })
44
+
45
+ it('should show the ability to save filters as default with feature flag not existing', () => {
46
+ cy.task('stubFeatureFlagsEmpty')
47
+
48
+ cy.visit(path)
49
+ cy.findByLabelText(/Reports catalogue.*/i).within(() => {
50
+ cy.findByRole('row', {
51
+ name: (_, element) => {
52
+ return (
53
+ Boolean(element?.textContent?.includes('Successful Report')) &&
54
+ Boolean(element?.textContent?.includes('this will succeed'))
55
+ )
56
+ },
57
+ }).within(() => {
58
+ cy.findByRole('link', { name: 'Request report' }).click()
59
+ })
60
+ })
61
+
62
+ cy.findByRole('button', { name: /Save current filter values as defaults/ }).should('be.visible')
63
+ const helpSummary = cy.contains('summary', /Help/)
64
+ helpSummary.click()
65
+ helpSummary.parent('details').invoke('attr', 'open').should('exist')
66
+ cy.findByRole('heading', { name: /Save current filter values as defaults/ }).should('be.visible')
67
+ })
68
+
69
+ it('should not show the ability to save filters as default with feature flag disabled', () => {
70
+ cy.task('stubFeatureFlagsDisabled')
71
+
72
+ cy.visit(path)
73
+ cy.findByLabelText(/Reports catalogue.*/i).within(() => {
74
+ cy.findByRole('row', {
75
+ name: (_, element) => {
76
+ return (
77
+ Boolean(element?.textContent?.includes('Successful Report')) &&
78
+ Boolean(element?.textContent?.includes('this will succeed'))
79
+ )
80
+ },
81
+ }).within(() => {
82
+ cy.findByRole('link', { name: 'Request report' }).click()
83
+ })
84
+ })
85
+
86
+ cy.findByRole('button', { name: /Save current filter values as defaults/ }).should('not.exist')
87
+ const helpSummary = cy.contains('summary', /Help/)
88
+ helpSummary.click()
89
+ helpSummary.parent('details').invoke('attr', 'open').should('exist')
90
+ cy.findByRole('heading', { name: /Save current filter values as defaults/ }).should('not.exist')
91
+ })
92
+ })
93
+ })
@@ -1,2 +1,2 @@
1
- "use strict";var t=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var s=(r,e,c,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of v(e))!l.call(r,i)&&i!==c&&t(r,i,{get:()=>e[i],enumerable:!(o=S(e,i))||o.enumerable});return r};var n=r=>s(t({},"__esModule",{value:!0}),r);var d={};module.exports=n(d);
1
+ "use strict";var t=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var s=(r,e,c,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of v(e))!l.call(r,i)&&i!==c&&t(r,i,{get:()=>e[i],enumerable:!(o=S(e,i))||o.enumerable});return r};var a=r=>s(t({},"__esModule",{value:!0}),r);var n={};module.exports=a(n);
2
2
  //# sourceMappingURL=Services.d.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/types/Services.d.ts"],
4
- "sourcesContent": ["import {\n BookmarkService,\n DefaultFilterValuesService,\n DownloadPermissionService,\n RecentlyViewedStoreService,\n RequestedReportService,\n} from '../services'\nimport { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'\nimport MissingReportService from '../services/missingReport/missingReportService'\nimport ReportingService from '../services/reportingService'\nimport DashboardService from '../services/dashboardService'\nimport { ProductCollectionService } from '../services/productCollection/productCollectionService'\n\nexport type Services = UserStoreServices & {\n reportingService: ReportingService\n dashboardService: DashboardService\n missingReportService: MissingReportService\n productCollectionService: ProductCollectionService\n}\n\nexport interface UserStoreServices {\n downloadPermissionService: DownloadPermissionService\n requestedReportService: RequestedReportService\n recentlyViewedService: RecentlyViewedStoreService\n bookmarkService: BookmarkService\n defaultFilterValuesService: DefaultFilterValuesService\n productCollectionStoreService: ProductCollectionStoreService\n}\n"],
4
+ "sourcesContent": ["import {\n BookmarkService,\n DefaultFilterValuesService,\n DownloadPermissionService,\n RecentlyViewedStoreService,\n RequestedReportService,\n} from '../services'\nimport { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'\nimport MissingReportService from '../services/missingReport/missingReportService'\nimport ReportingService from '../services/reportingService'\nimport DashboardService from '../services/dashboardService'\nimport { ProductCollectionService } from '../services/productCollection/productCollectionService'\nimport { FeatureFlagService } from '../services/featureFlagService'\n\nexport type Services = UserStoreServices & {\n reportingService: ReportingService\n dashboardService: DashboardService\n missingReportService: MissingReportService\n productCollectionService: ProductCollectionService\n featureFlagService: FeatureFlagService\n}\n\nexport interface UserStoreServices {\n downloadPermissionService: DownloadPermissionService\n requestedReportService: RequestedReportService\n recentlyViewedService: RecentlyViewedStoreService\n bookmarkService: BookmarkService\n defaultFilterValuesService: DefaultFilterValuesService\n productCollectionStoreService: ProductCollectionStoreService\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["Services_d_exports", "__toCommonJS"]
7
7
  }