diff --git a/.circleci/config.yml b/.circleci/config.yml
index e5da89d6f0d..a79d55dcf3f 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -259,7 +259,7 @@ executors:
commands:
create_dot_go_version:
- description: "Creates a .go-version file (if needed) which can be used for cache keys specific to golang"
+ description: 'Creates a .go-version file (if needed) which can be used for cache keys specific to golang'
steps:
- run:
name: Create a .go-version file
@@ -1237,7 +1237,7 @@ jobs:
#
# The trailing hyphen in restore_cache seems important
# according to the page linked above
- - v6-spectral-lint-
+ - v7-spectral-lint-
- run:
name: Save Baseline Spectral Lint
command: |
@@ -1296,7 +1296,7 @@ jobs:
# Use the BuildNum to update the cache key so that the
# coverage cache is always updated
- save_cache:
- key: v6-spectral-lint-{{ .BuildNum }}
+ key: v7-spectral-lint-{{ .BuildNum }}
paths:
- ~/transcom/mymove/spectral
- store_artifacts:
diff --git a/pkg/gen/internalapi/embedded_spec.go b/pkg/gen/internalapi/embedded_spec.go
index be339cd9c02..f13223db818 100644
--- a/pkg/gen/internalapi/embedded_spec.go
+++ b/pkg/gen/internalapi/embedded_spec.go
@@ -4160,6 +4160,9 @@ func init() {
"department_indicator": {
"$ref": "#/definitions/DeptIndicator"
},
+ "grade": {
+ "$ref": "#/definitions/OrderPayGrade"
+ },
"has_dependents": {
"type": "boolean",
"title": "Are dependents included in your orders?"
@@ -4188,6 +4191,11 @@ func init() {
"orders_type_detail": {
"$ref": "#/definitions/OrdersTypeDetail"
},
+ "origin_duty_location_id": {
+ "type": "string",
+ "format": "uuid",
+ "example": "c56a4180-65aa-42ec-a945-5fd21dec0538"
+ },
"report_by_date": {
"description": "Report By Date",
"type": "string",
@@ -5548,6 +5556,73 @@ func init() {
"x-nullable": true,
"x-omitempty": false
},
+ "OrderPayGrade": {
+ "type": "string",
+ "title": "Rank",
+ "enum": [
+ "E_1",
+ "E_2",
+ "E_3",
+ "E_4",
+ "E_5",
+ "E_6",
+ "E_7",
+ "E_8",
+ "E_9",
+ "E_9_SPECIAL_SENIOR_ENLISTED",
+ "O_1_ACADEMY_GRADUATE",
+ "O_2",
+ "O_3",
+ "O_4",
+ "O_5",
+ "O_6",
+ "O_7",
+ "O_8",
+ "O_9",
+ "O_10",
+ "W_1",
+ "W_2",
+ "W_3",
+ "W_4",
+ "W_5",
+ "AVIATION_CADET",
+ "CIVILIAN_EMPLOYEE",
+ "ACADEMY_CADET",
+ "MIDSHIPMAN"
+ ],
+ "x-display-value": {
+ "ACADEMY_CADET": "Service Academy Cadet",
+ "AVIATION_CADET": "Aviation Cadet",
+ "CIVILIAN_EMPLOYEE": "Civilian Employee",
+ "E_1": "E-1",
+ "E_2": "E-2",
+ "E_3": "E-3",
+ "E_4": "E-4",
+ "E_5": "E-5",
+ "E_6": "E-6",
+ "E_7": "E-7",
+ "E_8": "E-8",
+ "E_9": "E-9",
+ "E_9_SPECIAL_SENIOR_ENLISTED": "E-9 (Special Senior Enlisted)",
+ "MIDSHIPMAN": "Midshipman",
+ "O_10": "O-10",
+ "O_1_ACADEMY_GRADUATE": "O-1 or Service Academy Graduate",
+ "O_2": "O-2",
+ "O_3": "O-3",
+ "O_4": "O-4",
+ "O_5": "O-5",
+ "O_6": "O-6",
+ "O_7": "O-7",
+ "O_8": "O-8",
+ "O_9": "O-9",
+ "W_1": "W-1",
+ "W_2": "W-2",
+ "W_3": "W-3",
+ "W_4": "W-4",
+ "W_5": "W-5"
+ },
+ "x-nullable": true
+ },
"Orders": {
"type": "object",
"required": [
@@ -12741,6 +12816,9 @@ func init() {
"department_indicator": {
"$ref": "#/definitions/DeptIndicator"
},
+ "grade": {
+ "$ref": "#/definitions/OrderPayGrade"
+ },
"has_dependents": {
"type": "boolean",
"title": "Are dependents included in your orders?"
@@ -12769,6 +12847,11 @@ func init() {
"orders_type_detail": {
"$ref": "#/definitions/OrdersTypeDetail"
},
+ "origin_duty_location_id": {
+ "type": "string",
+ "format": "uuid",
+ "example": "c56a4180-65aa-42ec-a945-5fd21dec0538"
+ },
"report_by_date": {
"description": "Report By Date",
"type": "string",
@@ -14133,6 +14216,73 @@ func init() {
"x-nullable": true,
"x-omitempty": false
},
+ "OrderPayGrade": {
+ "type": "string",
+ "title": "Rank",
+ "enum": [
+ "E_1",
+ "E_2",
+ "E_3",
+ "E_4",
+ "E_5",
+ "E_6",
+ "E_7",
+ "E_8",
+ "E_9",
+ "E_9_SPECIAL_SENIOR_ENLISTED",
+ "O_1_ACADEMY_GRADUATE",
+ "O_2",
+ "O_3",
+ "O_4",
+ "O_5",
+ "O_6",
+ "O_7",
+ "O_8",
+ "O_9",
+ "O_10",
+ "W_1",
+ "W_2",
+ "W_3",
+ "W_4",
+ "W_5",
+ "AVIATION_CADET",
+ "CIVILIAN_EMPLOYEE",
+ "ACADEMY_CADET",
+ "MIDSHIPMAN"
+ ],
+ "x-display-value": {
+ "ACADEMY_CADET": "Service Academy Cadet",
+ "AVIATION_CADET": "Aviation Cadet",
+ "CIVILIAN_EMPLOYEE": "Civilian Employee",
+ "E_1": "E-1",
+ "E_2": "E-2",
+ "E_3": "E-3",
+ "E_4": "E-4",
+ "E_5": "E-5",
+ "E_6": "E-6",
+ "E_7": "E-7",
+ "E_8": "E-8",
+ "E_9": "E-9",
+ "E_9_SPECIAL_SENIOR_ENLISTED": "E-9 (Special Senior Enlisted)",
+ "MIDSHIPMAN": "Midshipman",
+ "O_10": "O-10",
+ "O_1_ACADEMY_GRADUATE": "O-1 or Service Academy Graduate",
+ "O_2": "O-2",
+ "O_3": "O-3",
+ "O_4": "O-4",
+ "O_5": "O-5",
+ "O_6": "O-6",
+ "O_7": "O-7",
+ "O_8": "O-8",
+ "O_9": "O-9",
+ "W_1": "W-1",
+ "W_2": "W-2",
+ "W_3": "W-3",
+ "W_4": "W-4",
+ "W_5": "W-5"
+ },
+ "x-nullable": true
+ },
"Orders": {
"type": "object",
"required": [
diff --git a/pkg/gen/internalmessages/create_update_orders.go b/pkg/gen/internalmessages/create_update_orders.go
index dec96caa98b..2eeba1bfa95 100644
--- a/pkg/gen/internalmessages/create_update_orders.go
+++ b/pkg/gen/internalmessages/create_update_orders.go
@@ -22,6 +22,9 @@ type CreateUpdateOrders struct {
// department indicator
DepartmentIndicator *DeptIndicator `json:"department_indicator,omitempty"`
+ // grade
+ Grade *OrderPayGrade `json:"grade,omitempty"`
+
// Are dependents included in your orders?
// Required: true
HasDependents *bool `json:"has_dependents"`
@@ -51,6 +54,11 @@ type CreateUpdateOrders struct {
// orders type detail
OrdersTypeDetail *OrdersTypeDetail `json:"orders_type_detail,omitempty"`
+ // origin duty location id
+ // Example: c56a4180-65aa-42ec-a945-5fd21dec0538
+ // Format: uuid
+ OriginDutyLocationID strfmt.UUID `json:"origin_duty_location_id,omitempty"`
+
// Report-by date
//
// Report By Date
@@ -86,6 +94,10 @@ func (m *CreateUpdateOrders) Validate(formats strfmt.Registry) error {
res = append(res, err)
}
+ if err := m.validateGrade(formats); err != nil {
+ res = append(res, err)
+ }
+
if err := m.validateHasDependents(formats); err != nil {
res = append(res, err)
}
@@ -106,6 +118,10 @@ func (m *CreateUpdateOrders) Validate(formats strfmt.Registry) error {
res = append(res, err)
}
+ if err := m.validateOriginDutyLocationID(formats); err != nil {
+ res = append(res, err)
+ }
+
if err := m.validateReportByDate(formats); err != nil {
res = append(res, err)
}
@@ -143,6 +159,25 @@ func (m *CreateUpdateOrders) validateDepartmentIndicator(formats strfmt.Registry
return nil
}
+func (m *CreateUpdateOrders) validateGrade(formats strfmt.Registry) error {
+ if swag.IsZero(m.Grade) { // not required
+ return nil
+ }
+
+ if m.Grade != nil {
+ if err := m.Grade.Validate(formats); err != nil {
+ if ve, ok := err.(*errors.Validation); ok {
+ return ve.ValidateName("grade")
+ } else if ce, ok := err.(*errors.CompositeError); ok {
+ return ce.ValidateName("grade")
+ }
+ return err
+ }
+ }
+
+ return nil
+}
+
func (m *CreateUpdateOrders) validateHasDependents(formats strfmt.Registry) error {
if err := validate.Required("has_dependents", "body", m.HasDependents); err != nil {
@@ -221,6 +256,18 @@ func (m *CreateUpdateOrders) validateOrdersTypeDetail(formats strfmt.Registry) e
return nil
}
+func (m *CreateUpdateOrders) validateOriginDutyLocationID(formats strfmt.Registry) error {
+ if swag.IsZero(m.OriginDutyLocationID) { // not required
+ return nil
+ }
+
+ if err := validate.FormatOf("origin_duty_location_id", "body", "uuid", m.OriginDutyLocationID.String(), formats); err != nil {
+ return err
+ }
+
+ return nil
+}
+
func (m *CreateUpdateOrders) validateReportByDate(formats strfmt.Registry) error {
if err := validate.Required("report_by_date", "body", m.ReportByDate); err != nil {
@@ -264,6 +311,10 @@ func (m *CreateUpdateOrders) ContextValidate(ctx context.Context, formats strfmt
res = append(res, err)
}
+ if err := m.contextValidateGrade(ctx, formats); err != nil {
+ res = append(res, err)
+ }
+
if err := m.contextValidateOrdersType(ctx, formats); err != nil {
res = append(res, err)
}
@@ -299,6 +350,27 @@ func (m *CreateUpdateOrders) contextValidateDepartmentIndicator(ctx context.Cont
return nil
}
+func (m *CreateUpdateOrders) contextValidateGrade(ctx context.Context, formats strfmt.Registry) error {
+
+ if m.Grade != nil {
+
+ if swag.IsZero(m.Grade) { // not required
+ return nil
+ }
+
+ if err := m.Grade.ContextValidate(ctx, formats); err != nil {
+ if ve, ok := err.(*errors.Validation); ok {
+ return ve.ValidateName("grade")
+ } else if ce, ok := err.(*errors.CompositeError); ok {
+ return ce.ValidateName("grade")
+ }
+ return err
+ }
+ }
+
+ return nil
+}
+
func (m *CreateUpdateOrders) contextValidateOrdersType(ctx context.Context, formats strfmt.Registry) error {
if m.OrdersType != nil {
diff --git a/pkg/gen/internalmessages/order_pay_grade.go b/pkg/gen/internalmessages/order_pay_grade.go
new file mode 100644
index 00000000000..0b783c8fc4e
--- /dev/null
+++ b/pkg/gen/internalmessages/order_pay_grade.go
@@ -0,0 +1,159 @@
+// Code generated by go-swagger; DO NOT EDIT.
+
+package internalmessages
+
+// This file was generated by the swagger tool.
+// Editing this file might prove futile when you re-run the swagger generate command
+
+import (
+ "context"
+ "encoding/json"
+
+ "github.com/go-openapi/errors"
+ "github.com/go-openapi/strfmt"
+ "github.com/go-openapi/validate"
+)
+
+// OrderPayGrade Rank
+//
+// swagger:model OrderPayGrade
+type OrderPayGrade string
+
+func NewOrderPayGrade(value OrderPayGrade) *OrderPayGrade {
+ return &value
+}
+
+// Pointer returns a pointer to a freshly-allocated OrderPayGrade.
+func (m OrderPayGrade) Pointer() *OrderPayGrade {
+ return &m
+}
+
+const (
+
+ // OrderPayGradeE1 captures enum value "E_1"
+ OrderPayGradeE1 OrderPayGrade = "E_1"
+
+ // OrderPayGradeE2 captures enum value "E_2"
+ OrderPayGradeE2 OrderPayGrade = "E_2"
+
+ // OrderPayGradeE3 captures enum value "E_3"
+ OrderPayGradeE3 OrderPayGrade = "E_3"
+
+ // OrderPayGradeE4 captures enum value "E_4"
+ OrderPayGradeE4 OrderPayGrade = "E_4"
+
+ // OrderPayGradeE5 captures enum value "E_5"
+ OrderPayGradeE5 OrderPayGrade = "E_5"
+
+ // OrderPayGradeE6 captures enum value "E_6"
+ OrderPayGradeE6 OrderPayGrade = "E_6"
+
+ // OrderPayGradeE7 captures enum value "E_7"
+ OrderPayGradeE7 OrderPayGrade = "E_7"
+
+ // OrderPayGradeE8 captures enum value "E_8"
+ OrderPayGradeE8 OrderPayGrade = "E_8"
+
+ // OrderPayGradeE9 captures enum value "E_9"
+ OrderPayGradeE9 OrderPayGrade = "E_9"
+
+ // OrderPayGradeE9SPECIALSENIORENLISTED captures enum value "E_9_SPECIAL_SENIOR_ENLISTED"
+ OrderPayGradeE9SPECIALSENIORENLISTED OrderPayGrade = "E_9_SPECIAL_SENIOR_ENLISTED"
+
+ // OrderPayGradeO1ACADEMYGRADUATE captures enum value "O_1_ACADEMY_GRADUATE"
+ OrderPayGradeO1ACADEMYGRADUATE OrderPayGrade = "O_1_ACADEMY_GRADUATE"
+
+ // OrderPayGradeO2 captures enum value "O_2"
+ OrderPayGradeO2 OrderPayGrade = "O_2"
+
+ // OrderPayGradeO3 captures enum value "O_3"
+ OrderPayGradeO3 OrderPayGrade = "O_3"
+
+ // OrderPayGradeO4 captures enum value "O_4"
+ OrderPayGradeO4 OrderPayGrade = "O_4"
+
+ // OrderPayGradeO5 captures enum value "O_5"
+ OrderPayGradeO5 OrderPayGrade = "O_5"
+
+ // OrderPayGradeO6 captures enum value "O_6"
+ OrderPayGradeO6 OrderPayGrade = "O_6"
+
+ // OrderPayGradeO7 captures enum value "O_7"
+ OrderPayGradeO7 OrderPayGrade = "O_7"
+
+ // OrderPayGradeO8 captures enum value "O_8"
+ OrderPayGradeO8 OrderPayGrade = "O_8"
+
+ // OrderPayGradeO9 captures enum value "O_9"
+ OrderPayGradeO9 OrderPayGrade = "O_9"
+
+ // OrderPayGradeO10 captures enum value "O_10"
+ OrderPayGradeO10 OrderPayGrade = "O_10"
+
+ // OrderPayGradeW1 captures enum value "W_1"
+ OrderPayGradeW1 OrderPayGrade = "W_1"
+
+ // OrderPayGradeW2 captures enum value "W_2"
+ OrderPayGradeW2 OrderPayGrade = "W_2"
+
+ // OrderPayGradeW3 captures enum value "W_3"
+ OrderPayGradeW3 OrderPayGrade = "W_3"
+
+ // OrderPayGradeW4 captures enum value "W_4"
+ OrderPayGradeW4 OrderPayGrade = "W_4"
+
+ // OrderPayGradeW5 captures enum value "W_5"
+ OrderPayGradeW5 OrderPayGrade = "W_5"
+
+ // OrderPayGradeAVIATIONCADET captures enum value "AVIATION_CADET"
+ OrderPayGradeAVIATIONCADET OrderPayGrade = "AVIATION_CADET"
+
+ // OrderPayGradeCIVILIANEMPLOYEE captures enum value "CIVILIAN_EMPLOYEE"
+ OrderPayGradeCIVILIANEMPLOYEE OrderPayGrade = "CIVILIAN_EMPLOYEE"
+
+ // OrderPayGradeACADEMYCADET captures enum value "ACADEMY_CADET"
+ OrderPayGradeACADEMYCADET OrderPayGrade = "ACADEMY_CADET"
+
+ // OrderPayGradeMIDSHIPMAN captures enum value "MIDSHIPMAN"
+ OrderPayGradeMIDSHIPMAN OrderPayGrade = "MIDSHIPMAN"
+)
+
+// for schema
+var orderPayGradeEnum []interface{}
+
+func init() {
+ var res []OrderPayGrade
+ if err := json.Unmarshal([]byte(`["E_1","E_2","E_3","E_4","E_5","E_6","E_7","E_8","E_9","E_9_SPECIAL_SENIOR_ENLISTED","O_1_ACADEMY_GRADUATE","O_2","O_3","O_4","O_5","O_6","O_7","O_8","O_9","O_10","W_1","W_2","W_3","W_4","W_5","AVIATION_CADET","CIVILIAN_EMPLOYEE","ACADEMY_CADET","MIDSHIPMAN"]`), &res); err != nil {
+ panic(err)
+ }
+ for _, v := range res {
+ orderPayGradeEnum = append(orderPayGradeEnum, v)
+ }
+}
+
+func (m OrderPayGrade) validateOrderPayGradeEnum(path, location string, value OrderPayGrade) error {
+ if err := validate.EnumCase(path, location, value, orderPayGradeEnum, true); err != nil {
+ return err
+ }
+ return nil
+}
+
+// Validate validates this order pay grade
+func (m OrderPayGrade) Validate(formats strfmt.Registry) error {
+ var res []error
+
+ // value enum
+ if err := m.validateOrderPayGradeEnum("", "body", m); err != nil {
+ return err
+ }
+
+ if len(res) > 0 {
+ return errors.CompositeValidationError(res...)
+ }
+ return nil
+}
+
+// ContextValidate validates this order pay grade based on context it is used
+func (m OrderPayGrade) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
+ return nil
+}
diff --git a/pkg/handlers/internalapi/orders.go b/pkg/handlers/internalapi/orders.go
index aafb6903f5b..fe15e223800 100644
--- a/pkg/handlers/internalapi/orders.go
+++ b/pkg/handlers/internalapi/orders.go
@@ -294,6 +294,19 @@ func (h UpdateOrdersHandler) Handle(params ordersop.UpdateOrdersParams) middlewa
return handlers.ResponseForError(appCtx.Logger(), err), err
}
+ if payload.OriginDutyLocationID != "" {
+ originDutyLocationID, errorOrigin := uuid.FromString(payload.OriginDutyLocationID.String())
+ if errorOrigin != nil {
+ return handlers.ResponseForError(appCtx.Logger(), errorOrigin), errorOrigin
+ }
+ originDutyLocation, errorOrigin := models.FetchDutyLocation(appCtx.DB(), originDutyLocationID)
+ if errorOrigin != nil {
+ return handlers.ResponseForError(appCtx.Logger(), errorOrigin), errorOrigin
+ }
+ order.OriginDutyLocation = &originDutyLocation
+ order.OriginDutyLocationID = &originDutyLocationID
+ }
+
if payload.OrdersType == nil {
errMsg := "missing required field: OrdersType"
return handlers.ResponseForError(appCtx.Logger(), errors.New(errMsg)), apperror.NewBadDataError("missing required field: OrdersType")
@@ -310,6 +323,7 @@ func (h UpdateOrdersHandler) Handle(params ordersop.UpdateOrdersParams) middlewa
order.NewDutyLocation = dutyLocation
order.TAC = payload.Tac
order.SAC = payload.Sac
+ order.Grade = (*string)(payload.Grade)
if payload.DepartmentIndicator != nil {
order.DepartmentIndicator = handlers.FmtString(string(*payload.DepartmentIndicator))
diff --git a/src/components/Customer/DodInfoForm/DodInfoForm.jsx b/src/components/Customer/DodInfoForm/DodInfoForm.jsx
index a2957ffa46f..4c89aee32db 100644
--- a/src/components/Customer/DodInfoForm/DodInfoForm.jsx
+++ b/src/components/Customer/DodInfoForm/DodInfoForm.jsx
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import { Formik } from 'formik';
import * as Yup from 'yup';
-import { ORDERS_RANK_OPTIONS } from 'constants/orders';
+import { ORDERS_PAY_GRADE_OPTIONS } from 'constants/orders';
import { SERVICE_MEMBER_AGENCY_LABELS } from 'content/serviceMemberAgencies';
import { Form } from 'components/form/Form';
import TextField from 'components/form/fields/TextField/TextField';
@@ -15,14 +15,14 @@ import formStyles from 'styles/form.module.scss';
const DodInfoForm = ({ initialValues, onSubmit, onBack }) => {
const branchOptions = dropdownInputOptions(SERVICE_MEMBER_AGENCY_LABELS);
- const rankOptions = dropdownInputOptions(ORDERS_RANK_OPTIONS);
+ const payGradeOptions = dropdownInputOptions(ORDERS_PAY_GRADE_OPTIONS);
const validationSchema = Yup.object().shape({
affiliation: Yup.mixed().oneOf(Object.keys(SERVICE_MEMBER_AGENCY_LABELS)).required('Required'),
edipi: Yup.string()
.matches(/[0-9]{10}/, 'Enter a 10-digit DOD ID number')
.required('Required'),
- rank: Yup.mixed().oneOf(Object.keys(ORDERS_RANK_OPTIONS)).required('Required'),
+ grade: Yup.mixed().oneOf(Object.keys(ORDERS_PAY_GRADE_OPTIONS)).required('Required'),
});
return (
@@ -49,7 +49,7 @@ const DodInfoForm = ({ initialValues, onSubmit, onBack }) => {
inputMode="numeric"
pattern="[0-9]{10}"
/>
-
-
- {ORDERS_BRANCH_OPTIONS[`${order.agency}`]} {ORDERS_RANK_OPTIONS[`${order.grade}`]}
+
+ {ORDERS_BRANCH_OPTIONS[`${order.agency}`]} {ORDERS_PAY_GRADE_OPTIONS[`${order.grade}`]}
|
diff --git a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx
index 303ce1ecae9..e1b7ed6ee9b 100644
--- a/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx
+++ b/src/components/Office/AllowancesDetailForm/AllowancesDetailForm.jsx
@@ -10,7 +10,7 @@ import { EntitlementShape } from 'types/order';
import { formatWeight } from 'utils/formatters';
import Hint from 'components/Hint';
-const AllowancesDetailForm = ({ header, entitlements, rankOptions, branchOptions, formIsDisabled }) => {
+const AllowancesDetailForm = ({ header, entitlements, payGradeOptions, branchOptions, formIsDisabled }) => {
return (
{header}
}
@@ -72,10 +72,11 @@ const AllowancesDetailForm = ({ header, entitlements, rankOptions, branchOptions
isDisabled={formIsDisabled}
/>
{customerInfo.phone}
- {ORDERS_RANK_OPTIONS[grade]}
+ {ORDERS_PAY_GRADE_OPTIONS[grade]}
{ORDERS_BRANCH_OPTIONS[customerInfo.agency] ? ORDERS_BRANCH_OPTIONS[customerInfo.agency] : customerInfo.agency}
>
diff --git a/src/components/Office/EvaluationReportPreview/EvaluationReportPreview.jsx b/src/components/Office/EvaluationReportPreview/EvaluationReportPreview.jsx
index d087ff61504..a78994dcb3b 100644
--- a/src/components/Office/EvaluationReportPreview/EvaluationReportPreview.jsx
+++ b/src/components/Office/EvaluationReportPreview/EvaluationReportPreview.jsx
@@ -12,7 +12,7 @@ import DataTable from 'components/DataTable';
import DataTableWrapper from 'components/DataTableWrapper';
import EvaluationReportList from 'components/Office/DefinitionLists/EvaluationReportList';
import EvaluationReportViolationsList from 'components/Office/DefinitionLists/EvaluationReportViolationsList';
-import { ORDERS_BRANCH_OPTIONS, ORDERS_RANK_OPTIONS } from 'constants/orders';
+import { ORDERS_BRANCH_OPTIONS, ORDERS_PAY_GRADE_OPTIONS } from 'constants/orders';
import { CustomerShape, EvaluationReportShape, ShipmentShape } from 'types';
import { formatDateFromIso, formatQAReportID } from 'utils/formatters';
import { formatDate } from 'shared/dates';
@@ -42,7 +42,7 @@ const EvaluationReportPreview = ({
{customerInfo.phone}
- {ORDERS_RANK_OPTIONS[grade]}
+ {ORDERS_PAY_GRADE_OPTIONS[grade]}
{ORDERS_BRANCH_OPTIONS[customerInfo.agency] ? ORDERS_BRANCH_OPTIONS[customerInfo.agency] : customerInfo.agency}
>
diff --git a/src/components/Office/EvaluationReportShipmentInfo/EvaluationReportShipmentInfo.jsx b/src/components/Office/EvaluationReportShipmentInfo/EvaluationReportShipmentInfo.jsx
index bc07cf9431c..640012e722d 100644
--- a/src/components/Office/EvaluationReportShipmentInfo/EvaluationReportShipmentInfo.jsx
+++ b/src/components/Office/EvaluationReportShipmentInfo/EvaluationReportShipmentInfo.jsx
@@ -8,7 +8,7 @@ import evaluationReportStyles from './EvaluationReportShipmentInfo.module.scss';
import styles from 'components/Office/EvaluationReportPreview/EvaluationReportPreview.module.scss';
import 'styles/office.scss';
import DataTable from 'components/DataTable';
-import { ORDERS_BRANCH_OPTIONS, ORDERS_RANK_OPTIONS } from 'constants/orders';
+import { ORDERS_BRANCH_OPTIONS, ORDERS_PAY_GRADE_OPTIONS } from 'constants/orders';
import { shipmentTypeLabels } from 'content/shipments';
import EvaluationReportShipmentDisplay from 'components/Office/EvaluationReportShipmentDisplay/EvaluationReportShipmentDisplay';
@@ -33,7 +33,7 @@ const EvaluationReportShipmentInfo = ({
{customerInfo.phone}
- {ORDERS_RANK_OPTIONS[grade]}
+ {ORDERS_PAY_GRADE_OPTIONS[grade]}
{ORDERS_BRANCH_OPTIONS[customerInfo.agency] ? ORDERS_BRANCH_OPTIONS[customerInfo.agency] : customerInfo.agency}
>
diff --git a/src/components/Office/RequestedShipments/RequestedShipmentsTestData.js b/src/components/Office/RequestedShipments/RequestedShipmentsTestData.js
index d4ac3d31287..f572c254a12 100644
--- a/src/components/Office/RequestedShipments/RequestedShipmentsTestData.js
+++ b/src/components/Office/RequestedShipments/RequestedShipmentsTestData.js
@@ -1,4 +1,4 @@
-import { ORDERS_TYPE, ORDERS_BRANCH_OPTIONS, ORDERS_RANK_OPTIONS } from '../../../constants/orders';
+import { ORDERS_TYPE, ORDERS_BRANCH_OPTIONS, ORDERS_PAY_GRADE_OPTIONS } from '../../../constants/orders';
import { DEPARTMENT_INDICATOR_OPTIONS } from '../../../constants/departmentIndicators';
import { SHIPMENT_OPTIONS, MTOAgentType } from 'shared/constants';
@@ -341,7 +341,7 @@ export const ordersInfo = {
export const allowancesInfo = {
branch: ORDERS_BRANCH_OPTIONS.NAVY,
- rank: ORDERS_RANK_OPTIONS.E_6,
+ rank: ORDERS_PAY_GRADE_OPTIONS.E_6,
weightAllowance: 11000,
authorizedWeight: 11000,
progear: 2000,
diff --git a/src/constants/MoveHistory/Database/OptionFields.js b/src/constants/MoveHistory/Database/OptionFields.js
index 869a1bd93dc..75c8d2d27ff 100644
--- a/src/constants/MoveHistory/Database/OptionFields.js
+++ b/src/constants/MoveHistory/Database/OptionFields.js
@@ -1,6 +1,6 @@
import {
ORDERS_BRANCH_OPTIONS,
- ORDERS_RANK_OPTIONS,
+ ORDERS_PAY_GRADE_OPTIONS,
ORDERS_TYPE_DETAILS_OPTIONS,
ORDERS_TYPE_OPTIONS,
ORDERS_DEPARTMENT_INDICATOR,
@@ -12,7 +12,7 @@ export default {
...ORDERS_BRANCH_OPTIONS,
...ORDERS_TYPE_DETAILS_OPTIONS,
...ORDERS_TYPE_OPTIONS,
- ...ORDERS_RANK_OPTIONS,
+ ...ORDERS_PAY_GRADE_OPTIONS,
...ORDERS_DEPARTMENT_INDICATOR,
...shipmentDestinationTypes,
};
diff --git a/src/constants/MoveHistory/EventTemplates/ApproveShipmentDiversion/approveShipmentDiversion.test.jsx b/src/constants/MoveHistory/EventTemplates/ApproveShipmentDiversion/approveShipmentDiversion.test.jsx
index 23688ded5db..3da8733ffe8 100644
--- a/src/constants/MoveHistory/EventTemplates/ApproveShipmentDiversion/approveShipmentDiversion.test.jsx
+++ b/src/constants/MoveHistory/EventTemplates/ApproveShipmentDiversion/approveShipmentDiversion.test.jsx
@@ -28,4 +28,10 @@ describe('when given an Approved shipment diversion history record', () => {
render(template.getDetails(historyRecord));
expect(screen.getByText('HHG shipment #2FA5C')).toBeInTheDocument();
});
+ it('displays the proper name in the event name display column', () => {
+ const template = getTemplate(historyRecord);
+
+ render(template.getEventNameDisplay(historyRecord));
+ expect(screen.getByText('Approved shipment')).toBeInTheDocument();
+ });
});
diff --git a/src/constants/MoveHistory/EventTemplates/UpdateMTOStatusServiceCounselingCompleted/updateMTOStatusServiceCounselingCompleted.test.jsx b/src/constants/MoveHistory/EventTemplates/UpdateMTOStatusServiceCounselingCompleted/updateMTOStatusServiceCounselingCompleted.test.jsx
index 35ec260e8c3..2f921cb9701 100644
--- a/src/constants/MoveHistory/EventTemplates/UpdateMTOStatusServiceCounselingCompleted/updateMTOStatusServiceCounselingCompleted.test.jsx
+++ b/src/constants/MoveHistory/EventTemplates/UpdateMTOStatusServiceCounselingCompleted/updateMTOStatusServiceCounselingCompleted.test.jsx
@@ -20,4 +20,10 @@ describe('When given a completed services counseling for a move', () => {
render(template.getDetails(historyRecord));
expect(screen.getByText('Counseling Completed')).toBeInTheDocument();
});
+ it('displays the proper name in the event name display column', () => {
+ const template = getTemplate(historyRecord);
+
+ render(template.getEventNameDisplay(historyRecord));
+ expect(screen.getByText('Updated shipment')).toBeInTheDocument();
+ });
});
diff --git a/src/constants/orders.js b/src/constants/orders.js
index 121c7ce2009..3b578bcd84b 100644
--- a/src/constants/orders.js
+++ b/src/constants/orders.js
@@ -32,7 +32,7 @@ export const ORDERS_TYPE_DETAILS_OPTIONS = {
DELAYED_APPROVAL: 'Delayed Approval 20 Weeks or More',
};
-export const ORDERS_RANK_OPTIONS = {
+export const ORDERS_PAY_GRADE_OPTIONS = {
E_1: 'E-1',
E_2: 'E-2',
E_3: 'E-3',
diff --git a/src/pages/MyMove/Profile/DodInfo.jsx b/src/pages/MyMove/Profile/DodInfo.jsx
index eee4b13722a..283b43c0a5e 100644
--- a/src/pages/MyMove/Profile/DodInfo.jsx
+++ b/src/pages/MyMove/Profile/DodInfo.jsx
@@ -21,7 +21,7 @@ export const DodInfo = ({ updateServiceMember, serviceMember }) => {
const initialValues = {
affiliation: serviceMember?.affiliation || '',
edipi: serviceMember?.edipi || '',
- rank: serviceMember?.rank || '',
+ grade: serviceMember?.rank || '',
};
const handleBack = () => {
@@ -37,7 +37,7 @@ export const DodInfo = ({ updateServiceMember, serviceMember }) => {
id: serviceMember.id,
affiliation: values.affiliation,
edipi: values.edipi,
- rank: values.rank,
+ rank: values.grade,
};
return patchServiceMember(payload)
diff --git a/src/pages/MyMove/Profile/EditOktaInfo.test.jsx b/src/pages/MyMove/Profile/EditOktaInfo.test.jsx
index 19af799f76b..0623168cb7c 100644
--- a/src/pages/MyMove/Profile/EditOktaInfo.test.jsx
+++ b/src/pages/MyMove/Profile/EditOktaInfo.test.jsx
@@ -6,6 +6,7 @@ import userEvent from '@testing-library/user-event';
import { EditOktaInfo } from './EditOktaInfo';
import { customerRoutes } from 'constants/routes';
+import { updateOktaUser } from 'services/internalApi';
const mockNavigate = jest.fn();
jest.mock('react-router-dom', () => ({
@@ -26,11 +27,11 @@ describe('EditOktaInfo page', () => {
const testProps = {
oktaUser: {
id: 'testServiceMemberID',
- oktaUsername: 'test@okta.mil',
- oktaEmail: 'test@okta.mil',
- oktaFirstName: 'Jim',
- oktaLastName: 'Dunk',
- oktaEdipi: '1234123412',
+ login: 'test@okta.mil',
+ email: 'test@okta.mil',
+ firstName: 'Jim',
+ lastName: 'Dunk',
+ cac_edipi: '1234123412',
},
serviceMember: {
id: 'testServiceMemberId',
@@ -50,6 +51,45 @@ describe('EditOktaInfo page', () => {
expect(contactHeader).toBeInTheDocument();
});
+ it('shows error if no changes were made', async () => {
+ render(
+