From 56bfc1734fc82d71e420e064227ea155900a23db Mon Sep 17 00:00:00 2001
From: mghisilieri <175352110+mghisilieri@users.noreply.github.com>
Date: Thu, 19 Dec 2024 09:06:18 -0800
Subject: [PATCH] VEBT-843: 22-10216 Intro Page (#33680)
* Initial draft of 22-10216 Intro page
* 22-10216 Intro page minor updates after design requirements
* 22-10216 form config/title updates
* 22-10216 spacing to match design
* 22-10216 Intro page unit tests
* 22-10216 form title update to match h1
* 22-10215 removed circular dependency on ConfirmationPage
---
.../10215/containers/ConfirmationPage.jsx | 5 +-
.../edu-benefits/10216/22-10216-schema.json | 10 +-
.../10216/containers/ConfirmationPage.jsx | 6 +-
.../10216/containers/IntroductionPage.jsx | 288 +++++++++++++-----
.../edu-benefits/10216/manifest.json | 2 +-
.../containers/IntroductionPage.unit.spec.jsx | 101 ++++++
6 files changed, 315 insertions(+), 97 deletions(-)
create mode 100644 src/applications/edu-benefits/10216/tests/containers/IntroductionPage.unit.spec.jsx
diff --git a/src/applications/edu-benefits/10215/containers/ConfirmationPage.jsx b/src/applications/edu-benefits/10215/containers/ConfirmationPage.jsx
index 80788f39c91c..af9e1f5cda83 100644
--- a/src/applications/edu-benefits/10215/containers/ConfirmationPage.jsx
+++ b/src/applications/edu-benefits/10215/containers/ConfirmationPage.jsx
@@ -2,7 +2,6 @@ import React from 'react';
import PropTypes from 'prop-types';
import { connect, useSelector } from 'react-redux';
import { ConfirmationView } from 'platform/forms-system/src/js/components/ConfirmationView';
-import formConfig from '../config/form';
const childContent = (
@@ -75,7 +74,7 @@ const childContent = (
);
-export const ConfirmationPage = () => {
+export const ConfirmationPage = props => {
const form = useSelector(state => state.form || {});
const { submission } = form;
@@ -84,7 +83,7 @@ export const ConfirmationPage = () => {
return (
{
return (
{
+ useEffect(() => {
+ focusElement('.schemaform-title > h1');
+ scrollToTop();
+ }, []);
- render() {
- const { route } = this.props;
- const { formConfig, pageList } = route;
+ const startForm = event => {
+ event.preventDefault();
+ router.push('/institution-details');
+ };
- return (
-
-
-
- Please complete the 22-10216 form to apply for education benefits.
-
-
- Follow the steps below to apply for education benefits.
-
-
-
- Prepare
- To fill out this application, you’ll need your:
+ return (
+
+
+
+ 35% exemption request from 85/15 Rule reporting requirement (VA Form
+ 22-10216)
+
+
+ For educational institutions only
+
+ Note: This form is not for Veterans. It is intended for educational
+ institutions submitting reports regarding VA benefits.
+
+
+
+
+ What to know before you fill out this form
+
+
+ -
+ Accredited schools: Submit a copy of VA Form 22-10216 by uploading it
+ to the{' '}
+
+
+ -
+ Non-accredited schools: Submit both VA Form 22-10216 and VA Form
+ 22-10215 (Statement of Assurance of Compliance with 85% Enrollment
+ Ratios) for the corresponding term to the{' '}
+
+
+ -
+ Note for non-accredited schools: This exemption
+ applies only to the submission of routine reports. Your Educational &
+ Training Institution must maintain compliance with the provisions of
+ the 85/15 Rule for all programs approved to receive GI Bill Benefits
+ and must provide 85/15 calculations for any term requested by a VA
+ employee or State Approval Agency representative.
+
+
+
+
+ How do I submit my exemption request?
+
+
+
+
+ Fill out the exemption request form online. You’ll need to download
+ and upload the form during this process. After completing the form,
+ you will download a PDF, which you will need to submit later by
+ uploading it to the VA Education Portal. Ensure you have all the
+ necessary details, such as your enrollment information, institution,
+ and any required documentaion, before continuing.
+
+
+ Note for non-accredited schools:
+ If you are submitting on behalf of a non-accredited institution, you
+ will need to complete and submit both the exemption request form, VA
+ Form 22-10216, and VA Form 22-10215 (Statement of Assurance of
+ Compliance with 85% Enrollment Ratios) for the corresponding term.
+ You’ll need to upload all forms through the VA Education File Upload
+ Portal in Step 3.
+
+
+
+
+ When you reach the final step of this form, be sure to download and
+ save the PDF to your device. Please note: this
+ online tool does not submit the form for you. You must download your
+ completed form as a PDF and proceed to the next step.
+
+
+
+
+ Finally, upload your completed exemption request PDF. For
+ non-accredited schools, upload both VA Form 22-10216 and VA Form
+ 22-10215.
+
+
+
+
+
+ What happens after I submit my exemption request?
+
+
+ After submitting your exemption request, we will review your submission
+ within 7-10 business days. Once the review is complete, we will email
+ your school a letter with the decision. If your request is accepted, we
+ will send a letter that includes a copy of the WEAMS form from 1998 as
+ confirmation. If your request is denied, the letter will explain the
+ reason for rejection, and we may provide you with further instructions
+ for re-submission or additional steps.
+
+
+
+ Information and instructions for completing the 35% exemption request
+
+
+
+
+ If you need help calculating your facility’s potential eligibility
+ for the 35% exemption, or have questions concerning the 85/15 Rule,
+ contact the{' '}
+ {' '}
+ of jurisdiction.
+
+
+ Note: The numbers on the instructions match the
+ item numbers on the form. Items not shown are self-explanatory.
- - Social Security number (required)
+ -
+ Provide the full name of your institution as listed on the Web
+ Enabled Approval Management System (WEAMS) report (VA Form
+ 22-1998).
+
+ - Provide your institution’s VA assigned facility code.
-
- What if I need help filling out my application?{' '}
- An accredited representative, like a Veterans Service Officer
- (VSO), can help you fill out your claim.{' '}
-
- Get help filing your claim
-
-
-
-
- Apply
- Complete this education benefits form.
-
- After submitting the form, you’ll get a confirmation message. You
- can print this for your records.
-
-
-
- VA Review
-
- We process claims within a week. If more than a week has passed
- since you submitted your application and you haven’t heard back,
- please don’t apply again. Call us at.
-
-
-
- Decision
-
- Once we’ve processed your claim, you’ll get a notice in the mail
- with our decision.
-
-
-
-
-
-
-
- );
- }
-}
+
+
+ Note: Separate exemption requests (and
+ calculations) are required for the main campus and any branch
+ campuses with separate administrative capability seeking the 35%
+ exemption. Branches and extensions without separate administrative
+ capability are part of the main or branch campus under which that
+ extension is approved.
+
+
+
+
+ The result of students provided in the "total number of VA
+ beneficiary students" field divided by the "total number of
+ students" field.
+
+
+
+
+ Provide the date that 85/15 calculation was completed. This must be
+ within 30 days of the term state date.
+
+ 35% calculation example
+
+ - Total number of students enrolled at your school: 1,000
+ -
+ Total number of VA beneficiaries enrolled at your school: 250
+
+
+
+ Note: To calculate the percentage for the 35%
+ exemption, divide the total number of enrolled students (1,000).
+
+
+ 250 divided by 1,000 is .25. To convert the quotient to a
+ percentage, move the decimal point two spaces to the right and add
+ the '%' sign after the last digit (.25 is 25%).
+
+
+
+
+
+ Start the form
+
+
+
+
+
+
+ );
+};
+
+IntroductionPage.propTypes = {
+ router: PropTypes.shape({
+ push: PropTypes.func,
+ }).isRequired,
+};
export default IntroductionPage;
diff --git a/src/applications/edu-benefits/10216/manifest.json b/src/applications/edu-benefits/10216/manifest.json
index 1cb979064136..c7903786f8c7 100644
--- a/src/applications/edu-benefits/10216/manifest.json
+++ b/src/applications/edu-benefits/10216/manifest.json
@@ -1,5 +1,5 @@
{
- "appName": "22-10216 5% EXEMPTION REQUEST FROM 85/15 REPORTING REQUIREMENT GENERAL INFORMATION",
+ "appName": "35% exemption of the routine reporting",
"entryFile": "./app-entry.jsx",
"entryName": "10216-edu-benefits",
"rootUrl": "/education/apply-for-education-benefits/application/10216",
diff --git a/src/applications/edu-benefits/10216/tests/containers/IntroductionPage.unit.spec.jsx b/src/applications/edu-benefits/10216/tests/containers/IntroductionPage.unit.spec.jsx
new file mode 100644
index 000000000000..3e1367a8a2c6
--- /dev/null
+++ b/src/applications/edu-benefits/10216/tests/containers/IntroductionPage.unit.spec.jsx
@@ -0,0 +1,101 @@
+import React from 'react';
+import { expect } from 'chai';
+import { shallow } from 'enzyme';
+import sinon from 'sinon';
+
+import IntroductionPage from '../../containers/IntroductionPage';
+
+describe('22-10216 ', () => {
+ const fakeStore = {
+ getState: () => ({
+ showWizard: false,
+ route: { formConfig: {} },
+ }),
+ subscribe: () => {},
+ dispatch: () => {},
+ };
+
+ it('should render form title', () => {
+ const wrapper = shallow();
+
+ expect(wrapper.find('FormTitle').props().title).to.contain(
+ '35% exemption of the routine reporting',
+ );
+
+ wrapper.unmount();
+ });
+
+ it('should render info alert box', () => {
+ const wrapper = shallow();
+
+ expect(wrapper.find('va-alert').props().status).to.contain('info');
+ expect(wrapper.find('va-alert').length).to.equal(1);
+ expect(wrapper.find('va-alert').text()).to.contain(
+ 'For educational institutions only',
+ );
+
+ wrapper.unmount();
+ });
+
+ it('should render section headers', () => {
+ const wrapper = shallow();
+
+ expect(wrapper.find('h2').length).to.equal(6);
+
+ wrapper.unmount();
+ });
+
+ it('should render process list', () => {
+ const wrapper = shallow();
+
+ expect(wrapper.find('va-process-list').length).to.equal(1);
+ expect(wrapper.find('va-process-list-item').length).to.equal(3);
+
+ wrapper.unmount();
+ });
+
+ it('should render accordion', () => {
+ const wrapper = shallow();
+
+ expect(wrapper.find('va-accordion').length).to.equal(1);
+ expect(wrapper.find('va-accordion-item').length).to.equal(3);
+
+ wrapper.unmount();
+ });
+
+ it('should render form start button', () => {
+ const wrapper = shallow();
+
+ expect(wrapper.find('va-link-action').length).to.equal(1);
+ expect(wrapper.find('va-link-action').props().text).to.contain(
+ 'Start your 35% exemption request',
+ );
+
+ wrapper.unmount();
+ });
+
+ it('should render omb info', () => {
+ const wrapper = shallow();
+
+ expect(wrapper.find('va-omb-info').length).to.equal(1);
+
+ wrapper.unmount();
+ });
+
+ it('should start form when start application link is clicked', () => {
+ const router = {
+ push: () => {},
+ };
+ const wrapper = shallow(
+ ,
+ );
+ const vaLink = wrapper.find('va-link-action');
+ const event = { preventDefault: () => {} };
+ const preventDefault = sinon.spy(event, 'preventDefault');
+
+ expect(vaLink).to.exist;
+ vaLink.simulate('click', event);
+ expect(preventDefault.called).to.be.true;
+ wrapper.unmount();
+ });
+});