diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 88c5d6b6196c..e27444d75b09 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -266,7 +266,7 @@ jobs: name: Unit Tests needs: [fetch-allow-lists, tests-prep] timeout-minutes: 30 - runs-on: ubuntu-16-cores-latest + runs-on: ubuntu-16-cores-22.04 outputs: app_folders: ${{ steps.get-changed-apps.outputs.folders }} changed-files: ${{ steps.get-changed-apps.outputs.changed_files }} diff --git a/src/applications/post-911-gib-status/components/UserInfoSection.jsx b/src/applications/post-911-gib-status/components/UserInfoSection.jsx index e30b9e3507d1..21e4d247f3c7 100644 --- a/src/applications/post-911-gib-status/components/UserInfoSection.jsx +++ b/src/applications/post-911-gib-status/components/UserInfoSection.jsx @@ -101,7 +101,11 @@ function UserInfoSection({ enrollmentData = {}, showCurrentAsOfAlert }) { You can print your statement and use it as a replacement for a Certificate of Eligibility (COE) to show that you qualify for - benefits. + benefits. This statement only includes entitlement earned through + your own military service. If you recently transferred entitlement, + it may not be reflected here.

+

+ The Supreme Court’s Rudisill decision may increase your months of + entitlement if you have two or more qualifying periods of active + duty. +

+ ); printButton = ( -
+

How can I see my Post-9/11 GI Bill benefit payments?

-
+
If you've received education benefit payments through this program,{' '} @@ -66,10 +77,11 @@ class StatusPage extends React.Component {
-

- Call us at . We're here - Monday through Friday, 8:00 a.m to 9:00 p.m ET. If you have - hearing loss, call . +

+ Call 888-GI-BILL-1 ( + ). We're here from Monday through Friday, 8:00 a.m to 7:00 p.m + ET. If you have hearing loss, call{' '} + .

diff --git a/src/applications/post-911-gib-status/sass/post-911-gib-status.scss b/src/applications/post-911-gib-status/sass/post-911-gib-status.scss index 21206b6383ce..f28651b3da1a 100644 --- a/src/applications/post-911-gib-status/sass/post-911-gib-status.scss +++ b/src/applications/post-911-gib-status/sass/post-911-gib-status.scss @@ -5,8 +5,8 @@ margin-bottom: 5em; h3 { - margin: 1em 0 .5em 0; - padding: 0 0 .25em 0; + margin-bottom: 8.5px; + padding: 0; } hr { @@ -16,18 +16,20 @@ margin-top: 1em; margin-bottom: 1em; } + h2 { + margin-top: 0; + } .section { margin-bottom: 2em; } .section-line { - margin-bottom: .25em; + margin-bottom: 0.25em; + } + #benefit-level { + margin-top: 2em; } - - /*.usa-alert { - margin: 1em 0 1em 0; - }*/ .not-qualified h5 { margin-top: 1em; diff --git a/src/applications/post-911-gib-status/tests/components/UserInfoSection.unit.spec.jsx b/src/applications/post-911-gib-status/tests/components/UserInfoSection.unit.spec.jsx index 6f111e5aa446..fb00ccb41e83 100644 --- a/src/applications/post-911-gib-status/tests/components/UserInfoSection.unit.spec.jsx +++ b/src/applications/post-911-gib-status/tests/components/UserInfoSection.unit.spec.jsx @@ -136,4 +136,29 @@ describe('', () => { expect(benefitEndDate.text()).to.contain('Since you’re on active duty'); }); }); + describe('date of birth InfoPair', () => { + it('should display the formatted date of birth if present', () => { + const tree = SkinDeep.shallowRender(); + const dobInfoPair = tree + .everySubTree('InfoPair') + .find(pair => pair.props.label === 'Date of birth'); + expect(dobInfoPair).to.exist; + expect(dobInfoPair.props.value).to.equal('November 12, 1995'); + }); + + it('should display "Unavailable" if dateOfBirth is missing', () => { + // Create a copy of props but remove dateOfBirth + const noDobProps = _.merge({}, props, { + enrollmentData: { + dateOfBirth: null, + }, + }); + const tree = SkinDeep.shallowRender(); + const dobInfoPair = tree + .everySubTree('InfoPair') + .find(pair => pair.props.label === 'Date of birth'); + expect(dobInfoPair).to.exist; + expect(dobInfoPair.props.value).to.equal('Unavailable'); + }); + }); }); diff --git a/src/applications/vaos/new-appointment/components/DateTimeSelectPage/index.jsx b/src/applications/vaos/new-appointment/components/DateTimeSelectPage/index.jsx index 41a46b1243a4..57d8c9334324 100644 --- a/src/applications/vaos/new-appointment/components/DateTimeSelectPage/index.jsx +++ b/src/applications/vaos/new-appointment/components/DateTimeSelectPage/index.jsx @@ -178,7 +178,12 @@ export default function DateTimeSelectPage() { return (
-

{pageTitle}

+

+ {pageTitle} + + (*Required) + +

{!loadingSlots && ( { }); expect(screen.history.push.called).to.be.false; }); + it('should show required text next to page heading', async () => { + const preferredDate = moment(); + const slot308Date = moment().add(6, 'days'); + + setDateTimeSelectMockFetches({ + typeOfCareId: 'outpatientMentalHealth', + slotDatesByClinicId: { + '308': [slot308Date], + }, + }); + + const store = createTestStore(initialState); + + await setTypeOfCare(store, /mental health/i); + await setVAFacility(store, '983', 'outpatientMentalHealth'); + await setClinic(store, '983_308'); + await setPreferredDate(store, preferredDate); + + const screen = renderWithStoreAndRouter( + , + { + store, + }, + ); + + expect(await screen.findByText(/Required/i)).to.exist; + }); }); diff --git a/src/applications/vaos/referral-appointments/ChooseDateAndTime.jsx b/src/applications/vaos/referral-appointments/ChooseDateAndTime.jsx index 24b172a4758b..10f49b1b9bff 100644 --- a/src/applications/vaos/referral-appointments/ChooseDateAndTime.jsx +++ b/src/applications/vaos/referral-appointments/ChooseDateAndTime.jsx @@ -3,8 +3,10 @@ import PropTypes from 'prop-types'; import { useDispatch, useSelector, shallowEqual } from 'react-redux'; import { useLocation } from 'react-router-dom'; import ReferralLayout from './components/ReferralLayout'; +// eslint-disable-next-line import/no-restricted-paths import { getUpcomingAppointmentListInfo } from '../appointment-list/redux/selectors'; import { setFormCurrentPage, fetchProviderDetails } from './redux/actions'; +// eslint-disable-next-line import/no-restricted-paths import { fetchFutureAppointments } from '../appointment-list/redux/actions'; import { getProviderInfo } from './redux/selectors'; import { FETCH_STATUS } from '../utils/constants'; diff --git a/src/applications/vaos/referral-appointments/components/RequestsList.jsx b/src/applications/vaos/referral-appointments/components/RequestsList.jsx index d0dac5e7c89a..a88b485a1b71 100644 --- a/src/applications/vaos/referral-appointments/components/RequestsList.jsx +++ b/src/applications/vaos/referral-appointments/components/RequestsList.jsx @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import RequestAppointmentLayout from '../../components/RequestAppointmentLayout'; import { APPOINTMENT_STATUS } from '../../utils/constants'; import InfoAlert from '../../components/InfoAlert'; +// eslint-disable-next-line import/no-restricted-paths import ScheduleAppointmentLink from '../../appointment-list/components/ScheduleAppointmentLink'; const RequestList = ({ appointments, requestsError }) => { diff --git a/src/applications/verify/components/UnifiedVerify.jsx b/src/applications/verify/components/UnifiedVerify.jsx index 19c590dff3e4..fbdf69f82322 100644 --- a/src/applications/verify/components/UnifiedVerify.jsx +++ b/src/applications/verify/components/UnifiedVerify.jsx @@ -19,10 +19,12 @@ const Verify = () => { let buttonContent; if (isAuthenticated) { - <> - - - ; + buttonContent = ( + <> + + + + ); } else if (isAuthenticatedOAuth) { // Use the loginServiceName to determine which button to show if (loginServiceName === 'idme') {