diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index e868156b90..675ddc1d5c 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -8,8 +8,14 @@ permissions: read-all jobs: install: + name: cypress-e2e-run runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + containers: [chrome, firefox, edge, webkit] + steps: - name: Checkout uses: actions/checkout@v3 @@ -26,6 +32,13 @@ jobs: - name: Install dependencies run: npm ci + - name: Install WebKit browser dependencies + if: ${{ (matrix.containers == 'webkit') }} + uses: cypress-io/github-action@v5 + with: + build: npx playwright install-deps webkit + runTests: false + - name: Set Branch Based Cypress Config file env: SITE_PREFIX: ${{ secrets.SITE_PREFIX }} @@ -38,14 +51,13 @@ jobs: cat cypress.config.js - name: Cypress run - uses: cypress-io/github-action@v3 + uses: cypress-io/github-action@v5 with: - browser: chrome - headless: true + browser: ${{ matrix.containers }} start: npm run federalist - uses: actions/upload-artifact@v3 - if: always () + if: failure () with: name: cypress-screenshots path: cypress/screenshots diff --git a/README.md b/README.md index 3da05c6157..f267cbfc6e 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,7 @@ docker compose down ```bash # To run cypress tests headlessly -$ npm run cypress:run_chrome +$ npm run cy:run:chrome # To open Cypress Test Runner and manually run tests $ npm run cypress:open diff --git a/cypress.config.js b/cypress.config.js index cbaed7a0aa..4551ad6c54 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -6,7 +6,7 @@ module.exports = defineConfig({ video: false, retries: { runMode: 2, - openMode: 2, + openMode: 1, }, e2e: { baseUrl: "https://benefits-tool-demo.usa.gov/", @@ -14,4 +14,5 @@ module.exports = defineConfig({ testIsolation: false, supportFile: false, }, + experimentalWebKitSupport: true, }) diff --git a/cypress/e2e/ui/accordions.cy.js b/cypress/e2e/ui/accordions.cy.js index e05b607659..e2bc29b0f7 100644 --- a/cypress/e2e/ui/accordions.cy.js +++ b/cypress/e2e/ui/accordions.cy.js @@ -20,14 +20,12 @@ describe("Validate opening and closing of accordion cards", () => { pages .accordions() .contains(EN_BENEFITS_COVID_19["fema-covid-19-funeral-assistance.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "true") + .should("have.attr", "aria-expanded", "true") pages.accordions().contains(EN_BENEFITS_COVID_19["fema-covid-19-funeral-assistance.title"]).click() pages .accordions() .contains(EN_BENEFITS_COVID_19["fema-covid-19-funeral-assistance.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "false") + .should("have.attr", "aria-expanded", "false") }) it("Validate opening and closing of Veteran's Burial Allowance accordion card in Death of a loved one Spanish page", () => { @@ -36,14 +34,12 @@ describe("Validate opening and closing of accordion cards", () => { pages .accordions() .contains(ES_BENEFITS_VA_BURIAL_ALLOWANCE["va-burial-allowance.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "true") + .should("have.attr", "aria-expanded", "true") pages.accordions().contains(ES_BENEFITS_VA_BURIAL_ALLOWANCE["va-burial-allowance.title"]).click() pages .accordions() .contains(ES_BENEFITS_VA_BURIAL_ALLOWANCE["va-burial-allowance.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "false") + .should("have.attr", "aria-expanded", "false") }) it("Validate opening and closing of Tax Relief Programs for People with Disabilites accordion card in Disabilites English page", () => { @@ -52,14 +48,12 @@ describe("Validate opening and closing of accordion cards", () => { pages .accordions() .contains(EN_BENEFITS_IRS_TAX_HELP_DISABILITY["irs-tax-help-disability.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "true") + .should("have.attr", "aria-expanded", "true") pages.accordions().contains(EN_BENEFITS_IRS_TAX_HELP_DISABILITY["irs-tax-help-disability.title"]).click() pages .accordions() .contains(EN_BENEFITS_IRS_TAX_HELP_DISABILITY["irs-tax-help-disability.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "false") + .should("have.attr", "aria-expanded", "false") }) it("Validate opening and closing of Social Security Disability Insurance for Spouse accordion card in Disabilites Spanish page", () => { @@ -72,8 +66,7 @@ describe("Validate opening and closing of accordion cards", () => { pages .accordions() .contains(ES_BENEFITS_SSA_DISABILITY_INSURANCE_SPOUSE["ssa-disability-insurance-spouse.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "true") + .should("have.attr", "aria-expanded", "true") pages .accordions() .contains(ES_BENEFITS_SSA_DISABILITY_INSURANCE_SPOUSE["ssa-disability-insurance-spouse.title"]) @@ -81,24 +74,18 @@ describe("Validate opening and closing of accordion cards", () => { pages .accordions() .contains(ES_BENEFITS_SSA_DISABILITY_INSURANCE_SPOUSE["ssa-disability-insurance-spouse.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "false") + .should("have.attr", "aria-expanded", "false") }) it("Validate opening and closing of Veteran's Pension accordion card in Retirement English page", () => { pages.otherBenefitsUsaCardGroup().contains(EN_LIFE_EVENTS_RETIREMENT["retirement.title"]).click() pages.accordions().contains(EN_BENEFITS_VA_PENSION["va-pension.title"]).click() - pages - .accordions() - .contains(EN_BENEFITS_VA_PENSION["va-pension.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "true") + pages.accordions().contains(EN_BENEFITS_VA_PENSION["va-pension.title"]).should("have.attr", "aria-expanded", "true") pages.accordions().contains(EN_BENEFITS_VA_PENSION["va-pension.title"]).click() pages .accordions() .contains(EN_BENEFITS_VA_PENSION["va-pension.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "false") + .should("have.attr", "aria-expanded", "false") }) it("Validate opening and closing of Retirement Benefits for Child with Disabilities accordion card in Retirement Spanish page", () => { @@ -111,8 +98,7 @@ describe("Validate opening and closing of accordion cards", () => { pages .accordions() .contains(ES_BENEFITS_SSA_RETIREMENT_BENEFITS_CHILD_DISABLED["ssa-retirement-benefits-child-disabled.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "true") + .should("have.attr", "aria-expanded", "true") pages .accordions() .contains(ES_BENEFITS_SSA_RETIREMENT_BENEFITS_CHILD_DISABLED["ssa-retirement-benefits-child-disabled.title"]) @@ -120,7 +106,6 @@ describe("Validate opening and closing of accordion cards", () => { pages .accordions() .contains(ES_BENEFITS_SSA_RETIREMENT_BENEFITS_CHILD_DISABLED["ssa-retirement-benefits-child-disabled.title"]) - .invoke("prop", "ariaExpanded") - .should("eq", "false") + .should("have.attr", "aria-expanded", "false") }) }) diff --git a/cypress/e2e/ui/open-all-close-all-button.cy.js b/cypress/e2e/ui/open-all-close-all-button.cy.js index 15c56fc983..1d3ff6b0de 100644 --- a/cypress/e2e/ui/open-all-close-all-button.cy.js +++ b/cypress/e2e/ui/open-all-close-all-button.cy.js @@ -11,7 +11,7 @@ describe("Validate Open All button functionality", () => { cy.visit({ url: sitePage.route }) pages.openAllButton().click() pages.accordions().each((accordion) => { - cy.wrap(accordion).invoke("prop", "ariaExpanded").should("eq", "true") + cy.wrap(accordion).should("have.attr", "aria-expanded", "true") }) }) }) @@ -24,7 +24,7 @@ describe("Validate Close All button functionality", () => { pages.openAllButton().click() pages.closeAllButton().click() pages.accordions().each((accordion) => { - cy.wrap(accordion).invoke("prop", "ariaExpanded").should("eq", "false") + cy.wrap(accordion).should("have.attr", "aria-expanded", "false") }) }) }) diff --git a/cypress/e2e/ui/selected-criteria-options.cy.js b/cypress/e2e/ui/selected-criteria-options.cy.js new file mode 100644 index 0000000000..368142c804 --- /dev/null +++ b/cypress/e2e/ui/selected-criteria-options.cy.js @@ -0,0 +1,162 @@ +/// + +import { pages } from "../../support/page-objects/pages.js" +import * as utils from "../../support/utils.js" +import * as EN_CRITERIA_DATA from "../../../locales/en/criteria.json" +import * as ES_CRITERIA_DATA from "../../../locales/es/criteria.json" +import * as EN_SURVIVOR_BENEFITS_CHILD_DATA from "../../../locales/en/benefits/ssa-survivor-benefits-child.json" +import * as ES_SURVIVOR_BENEFITS_PARENTS_DATA from "../../../locales/es/benefits/ssa-survivor-benefits-parents.json" +import * as EN_SSA_DISABILITY_INSURANCE_CHILD_DISABLED_DATA from "../../../locales/en/benefits/ssa-disability-insurance-child-disabled.json" +import * as ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS_DATA from "../../../locales/es/benefits/dod-retirement-and-disability-payments.json" +import * as EN_DOD_THRIFT_SAVINGS_PLAN_DATA from "../../../locales/en/benefits/dod-thrift-savings-plan.json" +import * as ES_DOI_HOUSING_IMPROVEMENT_PROGRAM_DATA from "../../../locales/es/benefits/doi-housing-improvement-program.json" + +describe("Validate selected creteria options in DOLO English Page", () => { + it("Validate Survivor Benefits for Child accordion is rendered correctly based on selected criteria options", () => { + //18 years ago minus one day - applicant under 18 years old + //1 day = 365.2425 (accounts for leap year) + const dateOfBirth = utils.getDateByOffset(-(18 * 365.2425 - 1)) + + const maritalStatus = encodeURI( + EN_SURVIVOR_BENEFITS_CHILD_DATA["ssa-survivor-benefits-child.eligibility.acceptableValues1"] + ) + const applicantRelationship = encodeURI(EN_CRITERIA_DATA["criteria.applicant_relationship.values2"]) + + cy.visit({ + url: `death-of-a-loved-one/?e782efd=1&b95c6d4=${dateOfBirth}&a748b56=${maritalStatus}&9d65c08=1&8f306c9=${applicantRelationship}`, + }) + + pages + .accordions() + .contains(EN_SURVIVOR_BENEFITS_CHILD_DATA["ssa-survivor-benefits-child.title"]) + .click() + .parent() + .should("have.class", "border-success-dark") + + pages.survivorBenefitsChildIcons().each(($icon) => { + cy.wrap($icon).parent().should("have.class", "text-success-dark") + }) + }) +}) + +describe("Validate selected creteria options in DOLO Spanish Page", () => { + it("Validate Beneficios para padre/madre sobreviviente accordion is rendered correctly based on selected criteria options", () => { + //62 years ago plus one day - applicant is at least 62 years old + const dateOfBirth = utils.getDateByOffset(-(62 * 365.2425 + 1)) + const applicantRelationship = encodeURI( + ES_SURVIVOR_BENEFITS_PARENTS_DATA["ssa-survivor-benefits-parents.eligibility.acceptableValues"] + ) + + cy.visit({ + url: `es/death-of-a-loved-one/?e782efd=1&b95c6d4=${dateOfBirth}&9d65c08=1&8f306c9=${applicantRelationship}`, + }) + + pages + .accordions() + .contains(ES_SURVIVOR_BENEFITS_PARENTS_DATA["ssa-survivor-benefits-parents.title"]) + .click() + .parent() + .should("have.class", "border-success-dark") + + pages.survivorBenefitsParentIcons().each(($icon) => { + cy.wrap($icon).parent().should("have.class", "text-success-dark") + }) + }) +}) + +describe("Validate selected creteria options in Disability English Page", () => { + it("Validate Social Security Disability Insurance for Child with Disabilities accordion is rendered correctly based on selected criteria options", () => { + //18 years ago plus one day - applicant at least 18 years old + const dateOfBirth = utils.getDateByOffset(-(18 * 365.2425 + 1)) + const applicantRelationship = encodeURI( + EN_SSA_DISABILITY_INSURANCE_CHILD_DISABLED_DATA[ + "ssa-disability-insurance-child-disabled.eligibility.acceptableValues" + ] + ) + + cy.visit({ + url: `disability/?b95c6d4=${dateOfBirth}&a748b56=${applicantRelationship}&9d65c08=1&8c5fff1=1&32c6b93=1&52fb8ed=1`, + }) + + pages + .accordions() + .contains(EN_SSA_DISABILITY_INSURANCE_CHILD_DISABLED_DATA["ssa-disability-insurance-child-disabled.title"]) + .click() + .parent() + .should("have.class", "border-success-dark") + + pages.disabilityInsuranceChildDisabledIcons().each(($icon) => { + cy.wrap($icon).parent().should("have.class", "text-success-dark") + }) + }) +}) + +describe("Validate selected creteria options in Disability Spanish Page", () => { + it("Validate Pagos Concurrentes de Jubilación y de Discapacidad (CRDP) accordion is rendered correctly based on selected criteria options", () => { + //60 years ago plus one day - applicant at least 60 years old + const dateOfBirth = utils.getDateByOffset(-(60 * 365.2425 + 1)) + const applicantServiceStatus = encodeURI(ES_CRITERIA_DATA["criteria.applicant_service_status.values3"]) + const applicantServedMilitary = encodeURI( + ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS_DATA[ + "dod-retirement-and-disability-payments.eligibility.acceptableValues" + ] + ) + + cy.visit({ + url: `es/disability/?b95c6d4=${dateOfBirth}&8c5fff1=1&2fe2b3a=${applicantServedMilitary}&633dad2=${applicantServiceStatus}`, + }) + + pages + .accordions() + .contains(ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS_DATA["dod-retirement-and-disability-payments.title"]) + .click() + .parent() + .should("have.class", "border-success-dark") + + pages.retirementAndDisabilityPaymentsIcons().each(($icon) => { + cy.wrap($icon).parent().should("have.class", "text-success-dark") + }) + }) +}) + +describe("Validate selected creteria options in Retirement English Page", () => { + it("Validate Thrift Savings Plan (TSP) accordion is rendered correctly based on selected criteria options", () => { + //60 years ago plus one day - applicant is at least 60 years old + const dateOfBirth = utils.getDateByOffset(-(60 * 365.2425 + 1)) + const applicantRelationship = + EN_DOD_THRIFT_SAVINGS_PLAN_DATA["dod-thrift-savings-plan.eligibility.acceptableValues"] + + cy.visit({ url: `retirement/?b95c6d4=${dateOfBirth}&2fe2b3a=${applicantRelationship}` }) + + pages + .accordions() + .contains(EN_DOD_THRIFT_SAVINGS_PLAN_DATA["dod-thrift-savings-plan.title"]) + .click() + .parent() + .should("have.class", "border-success-dark") + + pages.thriftSavingsPlanIcons().each(($icon) => { + cy.wrap($icon).parent().should("have.class", "text-success-dark") + }) + }) +}) + +describe("Validate selected creteria options in Retirement Spanish Page", () => { + it("Validate Programa de mejoramiento de vivienda (HIP) accordion is rendered correctly based on selected criteria options", () => { + const applicantAmericanIndia = + ES_DOI_HOUSING_IMPROVEMENT_PROGRAM_DATA["doi-housing-improvement-program.eligibility.acceptableValues"] + + cy.visit({ url: `es/retirement/?05c56fb=1&6c8cb1d=${applicantAmericanIndia}` }) + + pages + .accordions() + .contains(ES_DOI_HOUSING_IMPROVEMENT_PROGRAM_DATA["doi-housing-improvement-program.title"]) + .click() + .parent() + .should("have.class", "border-success-dark") + + pages.housingImprovementProgramIcons().each(($icon) => { + cy.wrap($icon).parent().should("have.class", "text-success-dark") + }) + }) +}) diff --git a/cypress/e2e/ui/ui-render-content.cy.js b/cypress/e2e/ui/ui-render-content.cy.js index cc1c12b8b8..efb7523848 100644 --- a/cypress/e2e/ui/ui-render-content.cy.js +++ b/cypress/e2e/ui/ui-render-content.cy.js @@ -2,6 +2,14 @@ import { pages } from "../../support/page-objects/pages.js" import * as SITE_PAGES_DATA from "../../fixtures/site-pages.json" +import * as EN_SURVIVOR_BENEFITS_CHILD from "../../../locales/en/benefits/ssa-survivor-benefits-child.json" +import * as ES_SURVIVOR_BENEFITS_PARENTS from "../../../locales/es/benefits/ssa-survivor-benefits-parents.json" +import * as EN_CMS_MEDICARE_SAVINGS_PROGRAMS from "../../../locales/en/benefits/cms-medicare-savings-programs.json" +import * as ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS from "../../../locales/es/benefits/dod-retirement-and-disability-payments.json" +import * as EN_DOD_THRIFT_SAVINGS_PLAN from "../../../locales/en/benefits/dod-thrift-savings-plan.json" +import * as ES_DOI_HOUSING_IMPROVEMENT_PROGRAM from "../../../locales/es/benefits/doi-housing-improvement-program.json" +import * as EN_LIFE_EVENTS_DISABILITY from "../../../locales/en/life-events/disability.json" +import * as EN_LIFE_EVENTS_RETIREMENT from "../../../locales/en/life-events/retirement.json" const sitePages = SITE_PAGES_DATA.sitePages @@ -16,3 +24,110 @@ describe("Verify UI is rendering content correctly", () => { }) }) }) + +describe("Verify Benefits Card content is displaying correctly", () => { + beforeEach(() => { + cy.visit("/") + }) + it("Verify content on Survivor Benefits for Child accordion is displaying correctly on DOLO English page", () => { + pages.accordions().contains(EN_SURVIVOR_BENEFITS_CHILD["ssa-survivor-benefits-child.title"]).click() + pages + .survivorBenefitsChildCard() + .should("contain", EN_SURVIVOR_BENEFITS_CHILD["ssa-survivor-benefits-child.source.name"]) + .and("contain", EN_SURVIVOR_BENEFITS_CHILD["ssa-survivor-benefits-child.summary"]) + .and("contain", EN_SURVIVOR_BENEFITS_CHILD["ssa-survivor-benefits-child.criticalApplicationInformation"]) + .and("contain", EN_SURVIVOR_BENEFITS_CHILD["ssa-survivor-benefits-child.eligibility.acceptableValues"]) + .and("contain", EN_SURVIVOR_BENEFITS_CHILD["ssa-survivor-benefits-child.eligibility.label"]) + .and("contain", EN_SURVIVOR_BENEFITS_CHILD["ssa-survivor-benefits-child.eligibility.acceptableValues1"]) + }) + + it("Verify content on Beneficios para padre/madre sobreviviente accordion is displaying correctly on DOLO Spanish page", () => { + pages.languageSwitcher().click() + pages.accordions().contains(ES_SURVIVOR_BENEFITS_PARENTS["ssa-survivor-benefits-parents.title"]).click() + pages + .survivorBenefitsParentCard() + .should("contain", ES_SURVIVOR_BENEFITS_PARENTS["ssa-survivor-benefits-parents.source.name"]) + .and("contain", ES_SURVIVOR_BENEFITS_PARENTS["ssa-survivor-benefits-parents.summary"]) + .and("contain", ES_SURVIVOR_BENEFITS_PARENTS["ssa-survivor-benefits-parents.criticalApplicationInformation"]) + .and("contain", ES_SURVIVOR_BENEFITS_PARENTS["ssa-survivor-benefits-parents.eligibility.acceptableValues"]) + .and("contain", ES_SURVIVOR_BENEFITS_PARENTS["ssa-survivor-benefits-parents.eligibility.label"]) + }) + + it("Verify content on Medicare Savings Programs (MSP) accordion is displaying correctly on Disability English page", () => { + pages.otherBenefitsUsaCardGroup().contains(EN_LIFE_EVENTS_DISABILITY["disability.title"]).click() + pages.accordions().contains(EN_CMS_MEDICARE_SAVINGS_PROGRAMS["cms-medicare-savings-programs.title"]).click() + pages + .medicareSavingsProgramsCard() + .should("contain", EN_CMS_MEDICARE_SAVINGS_PROGRAMS["cms-medicare-savings-programs.source.name"]) + .and("contain", EN_CMS_MEDICARE_SAVINGS_PROGRAMS["cms-medicare-savings-programs.summary"]) + .and("contain", EN_CMS_MEDICARE_SAVINGS_PROGRAMS["cms-medicare-savings-programs.criticalApplicationInformation"]) + .and("contain", EN_CMS_MEDICARE_SAVINGS_PROGRAMS["cms-medicare-savings-programs.eligibility.label"]) + .and("contain", EN_CMS_MEDICARE_SAVINGS_PROGRAMS["cms-medicare-savings-programs.source.link"]) + }) + + it("Verify content on Pagos Concurrentes de Jubilación y de Discapacidad (CRDP) accordion is displaying correctly on Disability Spanish page", () => { + pages.otherBenefitsUsaCardGroup().contains(EN_LIFE_EVENTS_DISABILITY["disability.title"]).click() + pages.languageSwitcher().click() + pages + .accordions() + .contains(ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS["dod-retirement-and-disability-payments.title"]) + .click() + pages + .retirementAndDisabilityPaymentsCard() + .should( + "contain", + ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS["dod-retirement-and-disability-payments.source.name"] + ) + .and("contain", ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS["dod-retirement-and-disability-payments.summary"]) + .and( + "contain", + ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS[ + "dod-retirement-and-disability-payments.criticalApplicationInformation" + ] + ) + .and( + "contain", + ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS["dod-retirement-and-disability-payments.eligibility.label"] + ) + .and( + "contain", + ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS["dod-retirement-and-disability-payments.eligibility.label1"] + ) + .and( + "contain", + ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS[ + "dod-retirement-and-disability-payments.eligibility.acceptableValues1" + ] + ) + .and( + "contain", + ES_DOD_RETIREMENT_AND_DISABILITY_PAYMENTS[ + "dod-retirement-and-disability-payments.eligibility.acceptableValues2" + ] + ) + }) + + it("Verify content on Thrift Savings Plan (TSP) accordion is displaying correctly on Retirement English page", () => { + pages.otherBenefitsUsaCardGroup().contains(EN_LIFE_EVENTS_RETIREMENT["retirement.title"]).click() + pages.accordions().contains(EN_DOD_THRIFT_SAVINGS_PLAN["dod-thrift-savings-plan.title"]).click() + pages + .thriftSavingsPlanCard() + .should("contain", EN_DOD_THRIFT_SAVINGS_PLAN["dod-thrift-savings-plan.source.name"]) + .and("contain", EN_DOD_THRIFT_SAVINGS_PLAN["dod-thrift-savings-plan.summary"]) + .and("contain", EN_DOD_THRIFT_SAVINGS_PLAN["dod-thrift-savings-plan.criticalApplicationInformation"]) + .and("contain", EN_DOD_THRIFT_SAVINGS_PLAN["dod-thrift-savings-plan.eligibility.label"]) + .and("contain", EN_DOD_THRIFT_SAVINGS_PLAN["dod-thrift-savings-plan.source.link"]) + }) + + it("Verify content on Programa de mejoramiento de vivienda (HIP) accordion is displaying correctly on Retirement Spanish page", () => { + pages.otherBenefitsUsaCardGroup().contains(EN_LIFE_EVENTS_RETIREMENT["retirement.title"]).click() + pages.languageSwitcher().click() + pages.accordions().contains(ES_DOI_HOUSING_IMPROVEMENT_PROGRAM["doi-housing-improvement-program.title"]).click() + pages + .housingImprovementProgramCard() + .should("contain", ES_DOI_HOUSING_IMPROVEMENT_PROGRAM["doi-housing-improvement-program.source.name"]) + .and("contain", ES_DOI_HOUSING_IMPROVEMENT_PROGRAM["doi-housing-improvement-program.summary"]) + .and("contain", ES_DOI_HOUSING_IMPROVEMENT_PROGRAM["doi-housing-improvement-program.eligibility.label"]) + .and("contain", ES_DOI_HOUSING_IMPROVEMENT_PROGRAM["doi-housing-improvement-program.source.link"]) + }) +}) diff --git a/cypress/support/page-objects/pages.js b/cypress/support/page-objects/pages.js index 6f7a0ba4c5..70889cf377 100644 --- a/cypress/support/page-objects/pages.js +++ b/cypress/support/page-objects/pages.js @@ -70,6 +70,42 @@ class Pages { buttons() { return cy.get(".usa-button") } + survivorBenefitsChildCard() { + return cy.get("#acc-content-ssa-survivor-benefits-child") + } + survivorBenefitsChildIcons() { + return cy.get("#acc-content-ssa-survivor-benefits-child .print\\:display-none .usa-icon") + } + survivorBenefitsParentCard() { + return cy.get("#acc-content-ssa-survivor-benefits-parents") + } + survivorBenefitsParentIcons() { + return cy.get("#acc-content-ssa-survivor-benefits-parents .print\\:display-none .usa-icon") + } + medicareSavingsProgramsCard() { + return cy.get("#acc-content-cms-medicare-savings-programs") + } + retirementAndDisabilityPaymentsCard() { + return cy.get("#acc-content-dod-retirement-and-disability-payments") + } + retirementAndDisabilityPaymentsIcons() { + return cy.get("#acc-content-dod-retirement-and-disability-payments .print\\:display-none .usa-icon") + } + thriftSavingsPlanCard() { + return cy.get("#acc-content-dod-thrift-savings-plan") + } + thriftSavingsPlanIcons() { + return cy.get("#acc-content-dod-thrift-savings-plan .print\\:display-none .usa-icon") + } + housingImprovementProgramCard() { + return cy.get("#acc-content-doi-housing-improvement-program") + } + housingImprovementProgramIcons() { + return cy.get("#acc-content-doi-housing-improvement-program .print\\:display-none .usa-icon") + } + disabilityInsuranceChildDisabledIcons() { + return cy.get("#acc-content-ssa-disability-insurance-child-disabled .print\\:display-none .usa-icon") + } } export const pages = new Pages() diff --git a/cypress/support/utils.js b/cypress/support/utils.js new file mode 100644 index 0000000000..549750f2c5 --- /dev/null +++ b/cypress/support/utils.js @@ -0,0 +1,15 @@ +export function getDateByOffset(offset) { + var date = new Date(Date.now()) + var n = Number(offset) + + if (n !== n || date.toString() == "Invalid Date") { + return date + } + + date.setDate(date.getDate() + n) + const month = date.getMonth() + 1 + const day = date.getDate() + const year = date.getFullYear() + + return month.toString() + "-" + day.toString() + "-" + year.toString() +} diff --git a/locales/en/benefits/dod-death-gratuity.json b/locales/en/benefits/dod-death-gratuity.json index 813708cdc3..85314a6a3d 100644 --- a/locales/en/benefits/dod-death-gratuity.json +++ b/locales/en/benefits/dod-death-gratuity.json @@ -8,7 +8,7 @@ "dod-death-gratuity.eligibility.acceptableValues": "yes", "dod-death-gratuity.eligibility.label": "The deceased served in the active military, naval, or air service.", "dod-death-gratuity.eligibility.acceptableValues1": "an active-duty service member", - "dod-death-gratuity.eligibility.acceptableValues2": "a member of the National Guard/Reserve", + "dod-death-gratuity.eligibility.acceptableValues2": "a member of the National Guard Reserves", "dod-death-gratuity.eligibility.acceptableValues3": "died while on active duty", "dod-death-gratuity.eligibility.acceptableValues4": "died while on inactive-duty training", "dod-death-gratuity.eligibility.acceptableValues5": "spouse", diff --git a/locales/en/benefits/dod-survivor-benefit-plan.json b/locales/en/benefits/dod-survivor-benefit-plan.json index 5293d3e00d..f640dfaf93 100644 --- a/locales/en/benefits/dod-survivor-benefit-plan.json +++ b/locales/en/benefits/dod-survivor-benefit-plan.json @@ -9,7 +9,7 @@ "dod-survivor-benefit-plan.eligibility.label": "The deceased served in the active military, naval, or air service.", "dod-survivor-benefit-plan.eligibility.acceptableValues1": "an active-duty service member", "dod-survivor-benefit-plan.eligibility.acceptableValues2": "retired from the service", - "dod-survivor-benefit-plan.eligibility.acceptableValues3": "a member of the National Guard/Reserve", + "dod-survivor-benefit-plan.eligibility.acceptableValues3": "a member of the National Guard Reserves", "dod-survivor-benefit-plan.eligibility.acceptableValues4": "died while on active duty", "dod-survivor-benefit-plan.eligibility.acceptableValues5": "died while on inactive-duty training", "dod-survivor-benefit-plan.eligibility.acceptableValues6": "spouse", diff --git a/locales/en/benefits/va-burial-flag.json b/locales/en/benefits/va-burial-flag.json index 3629676bf8..bec23a2c2a 100644 --- a/locales/en/benefits/va-burial-flag.json +++ b/locales/en/benefits/va-burial-flag.json @@ -9,7 +9,7 @@ "va-burial-flag.eligibility.label": "The deceased served in the active military, naval, or air service.", "va-burial-flag.eligibility.acceptableValues1": "an active-duty service member", "va-burial-flag.eligibility.acceptableValues2": "discharged under conditions other than dishonorable", - "va-burial-flag.eligibility.acceptableValues3": "a member of the National Guard/Reserve", + "va-burial-flag.eligibility.acceptableValues3": "a member of the National Guard Reserves", "va-burial-flag.eligibility.acceptableValues4": "spouse", "va-burial-flag.eligibility.acceptableValues5": "child", "va-burial-flag.eligibility.acceptableValues6": "parent", diff --git a/locales/en/benefits/va-burial-in-national-cemetery.json b/locales/en/benefits/va-burial-in-national-cemetery.json index b120befd88..4fc21621de 100644 --- a/locales/en/benefits/va-burial-in-national-cemetery.json +++ b/locales/en/benefits/va-burial-in-national-cemetery.json @@ -9,7 +9,7 @@ "va-burial-in-national-cemetery.eligibility.label": "The deceased served in the active military, naval, or air service.", "va-burial-in-national-cemetery.eligibility.acceptableValues1": "an active-duty service member", "va-burial-in-national-cemetery.eligibility.acceptableValues2": "discharged under conditions other than dishonorable", - "va-burial-in-national-cemetery.eligibility.acceptableValues3": "a member of the National Guard/Reserve", + "va-burial-in-national-cemetery.eligibility.acceptableValues3": "a member of the National Guard Reserves", "va-burial-in-national-cemetery.eligibility.acceptableValues4": "died while on active duty", "va-burial-in-national-cemetery.eligibility.acceptableValues5": "died as a result of a service-connected disability/illness", "va-burial-in-national-cemetery.eligibility.acceptableValues6": "died while receiving/traveling to VA care", diff --git a/locales/en/benefits/va-education-benefits.json b/locales/en/benefits/va-education-benefits.json index c20ac68901..ac9e38a2c7 100644 --- a/locales/en/benefits/va-education-benefits.json +++ b/locales/en/benefits/va-education-benefits.json @@ -7,5 +7,5 @@ "va-education-benefits.eligibility.acceptableValues": "yes", "va-education-benefits.eligibility.acceptableValues1": "an active-duty service member", "va-education-benefits.eligibility.acceptableValues2": "discharged under conditions other than dishonorable", - "va-education-benefits.eligibility.acceptableValues3": "a member of the National Guard/Reserve" + "va-education-benefits.eligibility.acceptableValues3": "a member of the National Guard Reserves" } diff --git a/locales/en/benefits/va-headstone-grave-marker.json b/locales/en/benefits/va-headstone-grave-marker.json index b657752737..f51101c06a 100644 --- a/locales/en/benefits/va-headstone-grave-marker.json +++ b/locales/en/benefits/va-headstone-grave-marker.json @@ -9,7 +9,7 @@ "va-headstone-grave-marker.eligibility.label": "The deceased served in the active military, naval, or air service.", "va-headstone-grave-marker.eligibility.acceptableValues1": "an active-duty service member", "va-headstone-grave-marker.eligibility.acceptableValues2": "discharged under conditions other than dishonorable", - "va-headstone-grave-marker.eligibility.acceptableValues3": "a member of the National Guard/Reserve", + "va-headstone-grave-marker.eligibility.acceptableValues3": "a member of the National Guard Reserves", "va-headstone-grave-marker.eligibility.acceptableValues4": "spouse", "va-headstone-grave-marker.eligibility.acceptableValues5": "child", "va-headstone-grave-marker.eligibility.acceptableValues6": "parent", diff --git a/locales/en/benefits/va-health-care-benefits.json b/locales/en/benefits/va-health-care-benefits.json index a3e04afa17..a009643275 100644 --- a/locales/en/benefits/va-health-care-benefits.json +++ b/locales/en/benefits/va-health-care-benefits.json @@ -6,5 +6,5 @@ "va-health-care-benefits.summary": "You may be eligible for VA health care benefits if you served in the active military, naval, or air service that covers regular checkups with your primary care provider and appointments with specialists.", "va-health-care-benefits.eligibility.acceptableValues": "yes", "va-health-care-benefits.eligibility.acceptableValues1": "discharged under conditions other than dishonorable", - "va-health-care-benefits.eligibility.acceptableValues2": "a member of the National Guard/Reserve" + "va-health-care-benefits.eligibility.acceptableValues2": "a member of the National Guard Reserves" } diff --git a/locales/en/benefits/va-home-loan-program.json b/locales/en/benefits/va-home-loan-program.json index fd09593837..7870ef8a95 100644 --- a/locales/en/benefits/va-home-loan-program.json +++ b/locales/en/benefits/va-home-loan-program.json @@ -7,5 +7,5 @@ "va-home-loan-program.eligibility.acceptableValues": "yes", "va-home-loan-program.eligibility.acceptableValues1": "an active-duty service member", "va-home-loan-program.eligibility.acceptableValues2": "discharged under conditions other than dishonorable", - "va-home-loan-program.eligibility.acceptableValues3": "a member of the National Guard/Reserve" + "va-home-loan-program.eligibility.acceptableValues3": "a member of the National Guard Reserves" } diff --git a/locales/en/benefits/va-life-insurance-for-survivors.json b/locales/en/benefits/va-life-insurance-for-survivors.json index c0ebf6f182..27d5e1e55a 100644 --- a/locales/en/benefits/va-life-insurance-for-survivors.json +++ b/locales/en/benefits/va-life-insurance-for-survivors.json @@ -10,7 +10,7 @@ "va-life-insurance-for-survivors.eligibility.acceptableValues1": "an active-duty service member", "va-life-insurance-for-survivors.eligibility.acceptableValues2": "discharged under conditions other than dishonorable", "va-life-insurance-for-survivors.eligibility.acceptableValues3": "retired from the service", - "va-life-insurance-for-survivors.eligibility.acceptableValues4": "a member of the National Guard/Reserve", + "va-life-insurance-for-survivors.eligibility.acceptableValues4": "a member of the National Guard Reserves", "va-life-insurance-for-survivors.eligibility.acceptableValues5": "spouse", "va-life-insurance-for-survivors.eligibility.acceptableValues6": "child", "va-life-insurance-for-survivors.eligibility.acceptableValues7": "parent", diff --git a/locales/en/benefits/va-medallion.json b/locales/en/benefits/va-medallion.json index ff0510ffad..064102d421 100644 --- a/locales/en/benefits/va-medallion.json +++ b/locales/en/benefits/va-medallion.json @@ -9,7 +9,7 @@ "va-medallion.eligibility.label": "The deceased served in the active military, naval, or air service.", "va-medallion.eligibility.acceptableValues1": "an active-duty service member", "va-medallion.eligibility.acceptableValues2": "discharged under conditions other than dishonorable", - "va-medallion.eligibility.acceptableValues3": "a member of the National Guard/Reserve", + "va-medallion.eligibility.acceptableValues3": "a member of the National Guard Reserves", "va-medallion.eligibility.acceptableValues4": "spouse", "va-medallion.eligibility.acceptableValues5": "child", "va-medallion.eligibility.acceptableValues6": "parent", diff --git a/locales/en/benefits/va-presidential-memorial-certificate.json b/locales/en/benefits/va-presidential-memorial-certificate.json index 03dfe7e7a8..69061b4ba3 100644 --- a/locales/en/benefits/va-presidential-memorial-certificate.json +++ b/locales/en/benefits/va-presidential-memorial-certificate.json @@ -9,7 +9,7 @@ "va-presidential-memorial-certificate.eligibility.label": "The deceased served in the active military, naval, or air service.", "va-presidential-memorial-certificate.eligibility.acceptableValues1": "an active-duty service member", "va-presidential-memorial-certificate.eligibility.acceptableValues2": "discharged under conditions other than dishonorable", - "va-presidential-memorial-certificate.eligibility.acceptableValues3": "a member of the National Guard/Reserve", + "va-presidential-memorial-certificate.eligibility.acceptableValues3": "a member of the National Guard Reserves", "va-presidential-memorial-certificate.eligibility.acceptableValues4": "died while on active duty", "va-presidential-memorial-certificate.eligibility.acceptableValues5": "died as a result of a service-connected disability/illness", "va-presidential-memorial-certificate.eligibility.acceptableValues6": "died while receiving/traveling to VA care", diff --git a/locales/en/criteria.json b/locales/en/criteria.json index 3d9d156d8e..43af3e85e0 100644 --- a/locales/en/criteria.json +++ b/locales/en/criteria.json @@ -19,7 +19,7 @@ "criteria.deceased_service_status.values1": "an active-duty service member", "criteria.deceased_service_status.values2": "discharged under conditions other than dishonorable", "criteria.deceased_service_status.values3": "retired from the service", - "criteria.deceased_service_status.values4": "a member of the National Guard/Reserve", + "criteria.deceased_service_status.values4": "a member of the National Guard Reserves", "criteria.deceased_death_circumstance.label": "One of the following circumstances apply to the deceased:", "criteria.deceased_death_circumstance.values1": "died while on active duty", "criteria.deceased_death_circumstance.values2": "died while on inactive-duty training", @@ -85,7 +85,7 @@ "criteria.applicant_service_status.values1": "an active-duty service member", "criteria.applicant_service_status.values2": "discharged under conditions other than dishonorable", "criteria.applicant_service_status.values3": "retired from the service", - "criteria.applicant_service_status.values4": "a member of the National Guard/Reserve", + "criteria.applicant_service_status.values4": "a member of the National Guard Reserves", "criteria.applicant_minimum_service_requirement.label": "You served for at least 90 days of active-duty service.", "criteria.applicant_service_disability.label": "Your disability was caused, or made worse by your active-duty military service." } diff --git a/locales/es/benefits/dod-death-gratuity.json b/locales/es/benefits/dod-death-gratuity.json index c7409bdc9a..3f73523938 100644 --- a/locales/es/benefits/dod-death-gratuity.json +++ b/locales/es/benefits/dod-death-gratuity.json @@ -8,7 +8,7 @@ "dod-death-gratuity.eligibility.acceptableValues": "sí", "dod-death-gratuity.eligibility.label": "La persona fallecida prestó servicio activo en el Ejército, la Marina o la Fuerza Aérea.", "dod-death-gratuity.eligibility.acceptableValues1": "miembro del servicio activo", - "dod-death-gratuity.eligibility.acceptableValues2": "miembro de la Guardia Nacional/Reserva", + "dod-death-gratuity.eligibility.acceptableValues2": "miembro de la Guardia Nacional Reserva", "dod-death-gratuity.eligibility.acceptableValues3": "falleció en servicio activo", "dod-death-gratuity.eligibility.acceptableValues4": "falleció durante instrucción para servicio inactivo", "dod-death-gratuity.eligibility.acceptableValues5": "cónyuge", diff --git a/locales/es/benefits/dod-forgotten-widows-annuity.json b/locales/es/benefits/dod-forgotten-widows-annuity.json index faf343fce5..b8a5658d97 100644 --- a/locales/es/benefits/dod-forgotten-widows-annuity.json +++ b/locales/es/benefits/dod-forgotten-widows-annuity.json @@ -7,7 +7,7 @@ "dod-forgotten-widows-annuity.summary": "Denominada usualmente Anualidad para viudas olvidadas, los cónyuges sobrevivientes calificados de miembros de los Servicios Uniformados podrían ser elegibles para recibir asistencia financiera.", "dod-forgotten-widows-annuity.eligibility.acceptableValues": "sí", "dod-forgotten-widows-annuity.eligibility.label": "La persona fallecida prestó servicio activo en el Ejército, la Marina o la Fuerza Aérea.", - "dod-forgotten-widows-annuity.eligibility.acceptableValues1": "retirada del servicio", + "dod-forgotten-widows-annuity.eligibility.acceptableValues1": "retirada/o del servicio", "dod-forgotten-widows-annuity.eligibility.label1": "La persona falleció antes de 1978.", "dod-forgotten-widows-annuity.eligibility.acceptableValues2": "cónyuge" } diff --git a/locales/es/benefits/dod-retirement-and-disability-payments.json b/locales/es/benefits/dod-retirement-and-disability-payments.json index ec5bfe4f6b..68c3f379d6 100644 --- a/locales/es/benefits/dod-retirement-and-disability-payments.json +++ b/locales/es/benefits/dod-retirement-and-disability-payments.json @@ -10,5 +10,5 @@ "dod-retirement-and-disability-payments.eligibility.label1": "Usted prestó servicio activo en el ejército, la marina o la fuerza aérea", "dod-retirement-and-disability-payments.eligibility.acceptableValues": "sí", "dod-retirement-and-disability-payments.eligibility.acceptableValues1": "retirada/o del servicio", - "dod-retirement-and-disability-payments.eligibility.acceptableValues2": "miembro de la Guardia Nacional/Reserva" + "dod-retirement-and-disability-payments.eligibility.acceptableValues2": "miembro de la Guardia Nacional Reserva" } diff --git a/locales/es/benefits/dod-special-compensation.json b/locales/es/benefits/dod-special-compensation.json index 202abea3a5..28e2f1d4b6 100644 --- a/locales/es/benefits/dod-special-compensation.json +++ b/locales/es/benefits/dod-special-compensation.json @@ -7,5 +7,5 @@ "dod-special-compensation.summary": "El programa de Compensación Especial Relacionada con el Combate (CRSC, sigla en inglés) le ofrece beneficios adicionales a personas jubiladas que reciben compensación por discapacidades relacionadas al combate.", "dod-special-compensation.eligibility.label": "Usted prestó servicio activo en el ejército, la marina o la fuerza aérea:", "dod-special-compensation.eligibility.acceptableValues": "sí", - "dod-special-compensation.eligibility.acceptableValues1": "retirada del servicio" + "dod-special-compensation.eligibility.acceptableValues1": "retirada/o del servicio" } diff --git a/locales/es/benefits/dod-survivor-benefit-plan.json b/locales/es/benefits/dod-survivor-benefit-plan.json index 55bdcbe75f..d6bf460447 100644 --- a/locales/es/benefits/dod-survivor-benefit-plan.json +++ b/locales/es/benefits/dod-survivor-benefit-plan.json @@ -8,8 +8,8 @@ "dod-survivor-benefit-plan.eligibility.acceptableValues": "sí", "dod-survivor-benefit-plan.eligibility.label": "La persona fallecida prestó servicio activo en el Ejército, la Marina o la Fuerza Aérea.", "dod-survivor-benefit-plan.eligibility.acceptableValues1": "miembro del servicio activo", - "dod-survivor-benefit-plan.eligibility.acceptableValues2": "retirada del servicio", - "dod-survivor-benefit-plan.eligibility.acceptableValues3": "miembro de la Guardia Nacional/Reserva", + "dod-survivor-benefit-plan.eligibility.acceptableValues2": "retirada/o del servicio", + "dod-survivor-benefit-plan.eligibility.acceptableValues3": "miembro de la Guardia Nacional Reserva", "dod-survivor-benefit-plan.eligibility.acceptableValues4": "falleció en servicio activo", "dod-survivor-benefit-plan.eligibility.acceptableValues5": "falleció durante instrucción para servicio inactivo", "dod-survivor-benefit-plan.eligibility.acceptableValues6": "cónyuge", diff --git a/locales/es/benefits/va-burial-flag.json b/locales/es/benefits/va-burial-flag.json index ffa4d2402a..2095743715 100644 --- a/locales/es/benefits/va-burial-flag.json +++ b/locales/es/benefits/va-burial-flag.json @@ -9,7 +9,7 @@ "va-burial-flag.eligibility.label": "La persona fallecida prestó servicio activo en el Ejército, la Marina o la Fuerza Aérea.", "va-burial-flag.eligibility.acceptableValues1": "miembro del servicio activo", "va-burial-flag.eligibility.acceptableValues2": "dada de baja en condiciones que no son deshonrosas", - "va-burial-flag.eligibility.acceptableValues3": "miembro de la Guardia Nacional/Reserva", + "va-burial-flag.eligibility.acceptableValues3": "miembro de la Guardia Nacional Reserva", "va-burial-flag.eligibility.acceptableValues4": "cónyuge", "va-burial-flag.eligibility.acceptableValues5": "hijo/hija", "va-burial-flag.eligibility.acceptableValues6": "padre/madre", diff --git a/locales/es/benefits/va-burial-in-national-cemetery.json b/locales/es/benefits/va-burial-in-national-cemetery.json index 3abe49cfe9..94e0dd7562 100644 --- a/locales/es/benefits/va-burial-in-national-cemetery.json +++ b/locales/es/benefits/va-burial-in-national-cemetery.json @@ -9,7 +9,7 @@ "va-burial-in-national-cemetery.eligibility.label": "La persona fallecida prestó servicio activo en el Ejército, la Marina o la Fuerza Aérea.", "va-burial-in-national-cemetery.eligibility.acceptableValues1": "miembro del servicio activo", "va-burial-in-national-cemetery.eligibility.acceptableValues2": "dada de baja en condiciones que no son deshonrosas", - "va-burial-in-national-cemetery.eligibility.acceptableValues3": "miembro de la Guardia Nacional/Reserva", + "va-burial-in-national-cemetery.eligibility.acceptableValues3": "miembro de la Guardia Nacional Reserva", "va-burial-in-national-cemetery.eligibility.acceptableValues4": "falleció en servicio activo", "va-burial-in-national-cemetery.eligibility.acceptableValues5": "falleció como resultado de una discapacidad/enfermedad relacionada con el servicio", "va-burial-in-national-cemetery.eligibility.acceptableValues6": "falleció mientras recibía/viajaba a la atención del VA", diff --git a/locales/es/benefits/va-headstone-grave-marker.json b/locales/es/benefits/va-headstone-grave-marker.json index 1b00c60b59..f3caeb1901 100644 --- a/locales/es/benefits/va-headstone-grave-marker.json +++ b/locales/es/benefits/va-headstone-grave-marker.json @@ -9,7 +9,7 @@ "va-headstone-grave-marker.eligibility.label": "La persona fallecida prestó servicio activo en el Ejército, la Marina o la Fuerza Aérea.", "va-headstone-grave-marker.eligibility.acceptableValues1": "miembro del servicio activo", "va-headstone-grave-marker.eligibility.acceptableValues2": "dada de baja en condiciones que no son deshonrosas", - "va-headstone-grave-marker.eligibility.acceptableValues3": "miembro de la Guardia Nacional/Reserva", + "va-headstone-grave-marker.eligibility.acceptableValues3": "miembro de la Guardia Nacional Reserva", "va-headstone-grave-marker.eligibility.acceptableValues4": "cónyuge", "va-headstone-grave-marker.eligibility.acceptableValues5": "hijo/hija", "va-headstone-grave-marker.eligibility.acceptableValues6": "padre/madre", diff --git a/locales/es/benefits/va-health-care-benefits.json b/locales/es/benefits/va-health-care-benefits.json index 33f47c1285..812743c403 100644 --- a/locales/es/benefits/va-health-care-benefits.json +++ b/locales/es/benefits/va-health-care-benefits.json @@ -7,5 +7,5 @@ "va-health-care-benefits.summary": "Si sirvió en el servicio militar, naval o aéreo activo, podría ser elegible para recibir beneficios de atención médica de VA que cubren exámenes regulares con su médico general y citas con especialistas.", "va-health-care-benefits.eligibility.acceptableValues": "sí", "va-health-care-benefits.eligibility.acceptableValues1": "dada de baja en condiciones que no son deshonrosas", - "va-health-care-benefits.eligibility.acceptableValues2": "miembro de la Guardia Nacional/Reserva" + "va-health-care-benefits.eligibility.acceptableValues2": "miembro de la Guardia Nacional Reserva" } diff --git a/locales/es/benefits/va-life-insurance-for-survivors.json b/locales/es/benefits/va-life-insurance-for-survivors.json index 4ca2b69537..46f7457dcc 100644 --- a/locales/es/benefits/va-life-insurance-for-survivors.json +++ b/locales/es/benefits/va-life-insurance-for-survivors.json @@ -9,8 +9,8 @@ "va-life-insurance-for-survivors.eligibility.label": "La persona fallecida prestó servicio activo en el Ejército, la Marina o la Fuerza Aérea.", "va-life-insurance-for-survivors.eligibility.acceptableValues1": "miembro del servicio activo", "va-life-insurance-for-survivors.eligibility.acceptableValues2": "dada de baja en condiciones que no son deshonrosas", - "va-life-insurance-for-survivors.eligibility.acceptableValues3": "retirada del servicio", - "va-life-insurance-for-survivors.eligibility.acceptableValues4": "miembro de la Guardia Nacional/Reserva", + "va-life-insurance-for-survivors.eligibility.acceptableValues3": "retirada/o del servicio", + "va-life-insurance-for-survivors.eligibility.acceptableValues4": "miembro de la Guardia Nacional Reserva", "va-life-insurance-for-survivors.eligibility.acceptableValues5": "cónyuge", "va-life-insurance-for-survivors.eligibility.acceptableValues6": "hijo/hija", "va-life-insurance-for-survivors.eligibility.acceptableValues7": "padre/madre", diff --git a/locales/es/benefits/va-life-insurance-for-veterans.json b/locales/es/benefits/va-life-insurance-for-veterans.json index acbf880abc..5120c986b0 100644 --- a/locales/es/benefits/va-life-insurance-for-veterans.json +++ b/locales/es/benefits/va-life-insurance-for-veterans.json @@ -8,5 +8,5 @@ "va-life-insurance-for-veterans.eligibility.acceptableValues": "sí", "va-life-insurance-for-veterans.eligibility.acceptableValues1": "miembro del servicio activo", "va-life-insurance-for-veterans.eligibility.acceptableValues2": "dada de baja en condiciones que no son deshonrosas", - "va-life-insurance-for-veterans.eligibility.acceptableValues3": "retirado del servicio" + "va-life-insurance-for-veterans.eligibility.acceptableValues3": "retirada/o del servicio" } diff --git a/locales/es/benefits/va-medallion.json b/locales/es/benefits/va-medallion.json index e62be7d24b..01d6991b43 100644 --- a/locales/es/benefits/va-medallion.json +++ b/locales/es/benefits/va-medallion.json @@ -9,7 +9,7 @@ "va-medallion.eligibility.label": "La persona fallecida prestó servicio activo en el Ejército, la Marina o la Fuerza Aérea.", "va-medallion.eligibility.acceptableValues1": "miembro del servicio activo", "va-medallion.eligibility.acceptableValues2": "dada de baja en condiciones que no son deshonrosas", - "va-medallion.eligibility.acceptableValues3": "miembro de la Guardia Nacional/Reserva", + "va-medallion.eligibility.acceptableValues3": "miembro de la Guardia Nacional Reserva", "va-medallion.eligibility.acceptableValues4": "cónyuge", "va-medallion.eligibility.acceptableValues5": "hijo/hija", "va-medallion.eligibility.acceptableValues6": "padre/madre", diff --git a/locales/es/benefits/va-presidential-memorial-certificate.json b/locales/es/benefits/va-presidential-memorial-certificate.json index a9ef1bd28b..9186fdba05 100644 --- a/locales/es/benefits/va-presidential-memorial-certificate.json +++ b/locales/es/benefits/va-presidential-memorial-certificate.json @@ -9,7 +9,7 @@ "va-presidential-memorial-certificate.eligibility.label": "La persona fallecida prestó servicio activo en el Ejército, la Marina o la Fuerza Aérea.", "va-presidential-memorial-certificate.eligibility.acceptableValues1": "miembro del servicio activo", "va-presidential-memorial-certificate.eligibility.acceptableValues2": "dada de baja en condiciones que no son deshonrosas", - "va-presidential-memorial-certificate.eligibility.acceptableValues3": "miembro de la Guardia Nacional/Reserva", + "va-presidential-memorial-certificate.eligibility.acceptableValues3": "miembro de la Guardia Nacional Reserva", "va-presidential-memorial-certificate.eligibility.acceptableValues4": "falleció en servicio activo", "va-presidential-memorial-certificate.eligibility.acceptableValues5": "falleció como resultado de una discapacidad/enfermedad relacionada con el servicio", "va-presidential-memorial-certificate.eligibility.acceptableValues6": "falleció mientras recibía/viajaba a la atención del VA", diff --git a/locales/es/benefits/va-special-disability-benefits.json b/locales/es/benefits/va-special-disability-benefits.json index 87fb7df272..9bbc5eb08f 100644 --- a/locales/es/benefits/va-special-disability-benefits.json +++ b/locales/es/benefits/va-special-disability-benefits.json @@ -9,6 +9,6 @@ "va-special-disability-benefits.eligibility.label": "¿Usted prestó servicio activo en el ejército, la marina o la fuerza aérea?", "va-special-disability-benefits.eligibility.acceptableValues1": "miembro del servicio activo", "va-special-disability-benefits.eligibility.acceptableValues2": "dada de baja en condiciones que no son deshonrosas", - "va-special-disability-benefits.eligibility.acceptableValues3": "retirada del servicio", - "va-special-disability-benefits.eligibility.acceptableValues4": "miembro de la Guardia Nacional/Reserva" + "va-special-disability-benefits.eligibility.acceptableValues3": "retirada/o del servicio", + "va-special-disability-benefits.eligibility.acceptableValues4": "miembro de la Guardia Nacional Reserva" } diff --git a/locales/es/criteria.json b/locales/es/criteria.json index 6e808e63ad..eb2f85cfa2 100644 --- a/locales/es/criteria.json +++ b/locales/es/criteria.json @@ -18,8 +18,8 @@ "criteria.deceased_service_status.label": "El estatus de servicio de la persona fallecida es", "criteria.deceased_service_status.values1": "miembro del servicio activo", "criteria.deceased_service_status.values2": "dada de baja en condiciones que no son deshonrosas", - "criteria.deceased_service_status.values3": "retirada del servicio", - "criteria.deceased_service_status.values4": "miembro de la Guardia Nacional/Reserva", + "criteria.deceased_service_status.values3": "retirada/o del servicio", + "criteria.deceased_service_status.values4": "miembro de la Guardia Nacional Reserva", "criteria.deceased_death_circumstance.label": "Una de las siguientes circunstancias se aplica a la persona fallecida:", "criteria.deceased_death_circumstance.values1": "falleció en servicio activo", "criteria.deceased_death_circumstance.values2": "falleció durante instrucción para servicio inactivo", @@ -81,8 +81,8 @@ "criteria.applicant_service_status.label": "Una de las siguientes opciones describe su situación de servicio:", "criteria.applicant_service_status.values1": "miembro del servicio activo", "criteria.applicant_service_status.values2": "dado de baja en condiciones que no son deshonrosas", - "criteria.applicant_service_status.values3": "retirado del servicio", - "criteria.applicant_service_status.values4": "miembro de la Guardia Nacional/Reserva", + "criteria.applicant_service_status.values3": "retirada/o del servicio", + "criteria.applicant_service_status.values4": "miembro de la Guardia Nacional Reserva", "criteria.applicant_minimum_service_requirement.label": "Usted prestó servicio activo al menos 90 días.", "criteria.applicant_service_disability.label": "Su discapacidad fue causada o empeorada por su servicio militar activo." } diff --git a/package-lock.json b/package-lock.json index 0f87c4b550..96b8929564 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "usagov-benefits-eligibility", - "version": "1.3.2", + "version": "1.3.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "usagov-benefits-eligibility", - "version": "1.3.2", + "version": "1.3.3", "license": "See license in CONTRIBUTING.md", "devDependencies": { "@babel/eslint-parser": "^7.17.0", @@ -32,7 +32,7 @@ "babel-core": "7.0.0-bridge.0", "babel-jest": "^28.0.2", "core-js": "^3.23.5", - "cypress": "^12.11.0", + "cypress": "^12.17.3", "date-fns": "^2.28.0", "eslint": "8.20.0", "eslint-config-prettier": "^8.5.0", @@ -54,6 +54,7 @@ "nuxt": "^2.15.8", "pa11y": "^6.2.3", "path-parse": ">=1.0.7", + "playwright-webkit": "^1.36.2", "prettier": "^2.6.2", "prismjs": "^1.27.0", "sass": "^1.50.1", @@ -9932,15 +9933,15 @@ "dev": true }, "node_modules/cypress": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.11.0.tgz", - "integrity": "sha512-TJE+CCWI26Hwr5Msb9GpQhFLubdYooW0fmlPwTsfiyxmngqc7+SZGLPeIkj2dTSSZSEtpQVzOzvcnzH0o8G7Vw==", + "version": "12.17.3", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.17.3.tgz", + "integrity": "sha512-/R4+xdIDjUSLYkiQfwJd630S81KIgicmQOLXotFxVXkl+eTeVO+3bHXxdi5KBh/OgC33HWN33kHX+0tQR/ZWpg==", "dev": true, "hasInstallScript": true, "dependencies": { - "@cypress/request": "^2.88.10", + "@cypress/request": "^2.88.11", "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", + "@types/node": "^16.18.39", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", @@ -9975,7 +9976,7 @@ "pretty-bytes": "^5.6.0", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.5.3", "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", @@ -9989,9 +9990,9 @@ } }, "node_modules/cypress/node_modules/@types/node": { - "version": "14.18.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.45.tgz", - "integrity": "sha512-Nd+FPp60jEaJpm4LAxuLT3wIhB4k0Jdj9DAP4ydqGyMg8DhE+7oM1we+QkwOkpMySTjcqcNfPOWY5kBuAOhkeg==", + "version": "16.18.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.39.tgz", + "integrity": "sha512-8q9ZexmdYYyc5/cfujaXb4YOucpQxAV4RMG0himLyDUOEr8Mr79VrqsFI+cQ2M2h89YIuy95lbxuYjxT4Hk4kQ==", "dev": true }, "node_modules/cypress/node_modules/ansi-styles": { @@ -10166,9 +10167,9 @@ "dev": true }, "node_modules/cypress/node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -21590,6 +21591,34 @@ "node": ">=8" } }, + "node_modules/playwright-core": { + "version": "1.36.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.36.2.tgz", + "integrity": "sha512-sQYZt31dwkqxOrP7xy2ggDfEzUxM1lodjhsQ3NMMv5uGTRDsLxU0e4xf4wwMkF2gplIxf17QMBCodSFgm6bFVQ==", + "dev": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/playwright-webkit": { + "version": "1.36.2", + "resolved": "https://registry.npmjs.org/playwright-webkit/-/playwright-webkit-1.36.2.tgz", + "integrity": "sha512-tvGCLKrT0NO2ElJjSJQ4MKFAUgUIAN1h7vZImwaE5G/odRrQyhLXF0SdJB6qfUojiYL2pONr3Wzp7iqJ+EtlnA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.36.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/plugin-error": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", @@ -37335,14 +37364,14 @@ "dev": true }, "cypress": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.11.0.tgz", - "integrity": "sha512-TJE+CCWI26Hwr5Msb9GpQhFLubdYooW0fmlPwTsfiyxmngqc7+SZGLPeIkj2dTSSZSEtpQVzOzvcnzH0o8G7Vw==", + "version": "12.17.3", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.17.3.tgz", + "integrity": "sha512-/R4+xdIDjUSLYkiQfwJd630S81KIgicmQOLXotFxVXkl+eTeVO+3bHXxdi5KBh/OgC33HWN33kHX+0tQR/ZWpg==", "dev": true, "requires": { - "@cypress/request": "^2.88.10", + "@cypress/request": "^2.88.11", "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", + "@types/node": "^16.18.39", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", @@ -37377,7 +37406,7 @@ "pretty-bytes": "^5.6.0", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.5.3", "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", @@ -37385,9 +37414,9 @@ }, "dependencies": { "@types/node": { - "version": "14.18.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.45.tgz", - "integrity": "sha512-Nd+FPp60jEaJpm4LAxuLT3wIhB4k0Jdj9DAP4ydqGyMg8DhE+7oM1we+QkwOkpMySTjcqcNfPOWY5kBuAOhkeg==", + "version": "16.18.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.39.tgz", + "integrity": "sha512-8q9ZexmdYYyc5/cfujaXb4YOucpQxAV4RMG0himLyDUOEr8Mr79VrqsFI+cQ2M2h89YIuy95lbxuYjxT4Hk4kQ==", "dev": true }, "ansi-styles": { @@ -37517,9 +37546,9 @@ "dev": true }, "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -46313,6 +46342,21 @@ "find-up": "^4.0.0" } }, + "playwright-core": { + "version": "1.36.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.36.2.tgz", + "integrity": "sha512-sQYZt31dwkqxOrP7xy2ggDfEzUxM1lodjhsQ3NMMv5uGTRDsLxU0e4xf4wwMkF2gplIxf17QMBCodSFgm6bFVQ==", + "dev": true + }, + "playwright-webkit": { + "version": "1.36.2", + "resolved": "https://registry.npmjs.org/playwright-webkit/-/playwright-webkit-1.36.2.tgz", + "integrity": "sha512-tvGCLKrT0NO2ElJjSJQ4MKFAUgUIAN1h7vZImwaE5G/odRrQyhLXF0SdJB6qfUojiYL2pONr3Wzp7iqJ+EtlnA==", + "dev": true, + "requires": { + "playwright-core": "1.36.2" + } + }, "plugin-error": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", diff --git a/package.json b/package.json index c4e8adefdd..cf27aeb70f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "usagov-benefits-eligibility", - "version": "1.3.2", + "version": "1.3.3", "description": "BEARS will be a proactive notification service that provides timely and personalized information about benefits eligibility, contextualized by life events.", "license": "See license in CONTRIBUTING.md", "repository": "https://github.com/GSA/usagov-benefits-eligibility", @@ -19,16 +19,19 @@ "federalist:local": "gulp && nuxt generate && cd ./_site/_nuxt/css && perl -pi -e 's/url\\(\\/fonts/url\\(..\\/fonts/g' *.css && cd ../../.. && ls -lhR _site && nuxt start", "federalist": "gulp && nuxt generate ; cd ./_site/_nuxt/css && if [ \"${BRANCH}\" = \"prod\" ] || [ \"${BRANCH}\" = \"release\" ]; then sed -i~ -Ee 's|(/?)fonts/|\\1../fonts/|g' *.css; else perl -pi -e 's/\\/fonts\\//\\/_nuxt\\/fonts\\//g' *.css; fi && cd ../../.. && ls -lhR _site", "format": "prettier --write \"./**/*.{js,jsx,json,vue,md,css}\"", - "cypress:run_chrome": "npx cypress run --browser chrome", + "cy:run:chrome": "npx cypress run --browser chrome", + "cy:run:edge": "npx cypress run --browser edge", + "cy:run:firefox": "npx cypress run --browser firefox", + "cy:run:webkit-safari": "npx cypress run --browser webkit", + "cy:run:cross-browser": "npm run cy:run:chrome && npm run cy:run:edge && npm run cy:run:firefox", "cypress:open": "npx cypress open" }, - "dependencies": {}, "devDependencies": { "@babel/eslint-parser": "^7.17.0", "@braintree/sanitize-url": "^6.0.0", "@lokidb/loki": "^2.1.0", - "@nuxtjs/axios": "^5.13.6", "@nuxt/content": "^1.15.1", + "@nuxtjs/axios": "^5.13.6", "@nuxtjs/dotenv": "^1.4.1", "@nuxtjs/eslint-config": "^10.0.0", "@nuxtjs/eslint-module": "^3.0.2", @@ -42,16 +45,16 @@ "@vue/test-utils": "^1.3.0", "ansi-html": "^0.0.9", "ansi-regex": ">=6.0.1", - "axios": "^0.27.2", "axe-core": "^4.4.1", + "axios": "^0.27.2", "babel-core": "7.0.0-bridge.0", "babel-jest": "^28.0.2", "core-js": "^3.23.5", - "cypress": "^12.11.0", + "cypress": "^12.17.3", "date-fns": "^2.28.0", "eslint": "8.20.0", - "eslint-plugin-jest": "^26.2.2", "eslint-config-prettier": "^8.5.0", + "eslint-plugin-jest": "^26.2.2", "eslint-plugin-nuxt": "^3.2.0", "eslint-plugin-promise": "^6.0.0", "eslint-plugin-sonarjs": "^0.13.0", @@ -69,6 +72,7 @@ "nuxt": "^2.15.8", "pa11y": "^6.2.3", "path-parse": ">=1.0.7", + "playwright-webkit": "^1.36.2", "prettier": "^2.6.2", "prismjs": "^1.27.0", "sass": "^1.50.1",