From 93c252086f2745e08327b7144182f244c1dfccfe Mon Sep 17 00:00:00 2001 From: pambecker Date: Tue, 15 Oct 2024 15:17:54 +0000 Subject: [PATCH 1/3] udpate H&AL for counseling office --- .../sql_scripts/move_history_fetcher.sql | 6 +++-- .../MoveHistory/Database/FieldMappings.js | 1 + .../CreateOrders/createMoves.jsx | 17 ++++++++++++- .../UpdateOrders/updateOrderUpdateMove.jsx | 25 ++++++++++++++++--- 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/pkg/assets/sql_scripts/move_history_fetcher.sql b/pkg/assets/sql_scripts/move_history_fetcher.sql index 819c8053db4..432f33b2d36 100644 --- a/pkg/assets/sql_scripts/move_history_fetcher.sql +++ b/pkg/assets/sql_scripts/move_history_fetcher.sql @@ -50,14 +50,16 @@ WITH move AS ( jsonb_agg(jsonb_strip_nulls( jsonb_build_object( 'closeout_office_name', - (SELECT transportation_offices.name FROM transportation_offices WHERE transportation_offices.id = uuid(c.closeout_office_id)) + (SELECT transportation_offices.name FROM transportation_offices WHERE transportation_offices.id = uuid(c.closeout_office_id)), + 'counseling_office_name', + (SELECT transportation_offices.name FROM transportation_offices WHERE transportation_offices.id = uuid(c.counseling_transportation_office_id)) )) )::TEXT AS context, NULL AS context_id FROM audit_history JOIN move ON audit_history.object_id = move.id - JOIN jsonb_to_record(audit_history.changed_data) as c(closeout_office_id TEXT) on TRUE + JOIN jsonb_to_record(audit_history.changed_data) as c(closeout_office_id TEXT, counseling_transportation_office_id TEXT) on TRUE WHERE audit_history.table_name = 'moves' -- Remove log for when shipment_seq_num updates AND NOT (audit_history.event_name = NULL AND audit_history.changed_data::TEXT LIKE '%shipment_seq_num%' AND LENGTH(audit_history.changed_data::TEXT) < 25) diff --git a/src/constants/MoveHistory/Database/FieldMappings.js b/src/constants/MoveHistory/Database/FieldMappings.js index b732635a1be..29dd438a8e3 100644 --- a/src/constants/MoveHistory/Database/FieldMappings.js +++ b/src/constants/MoveHistory/Database/FieldMappings.js @@ -140,4 +140,5 @@ export default { dest_sit_auth_end_date: 'Destination SIT authorized date', approvals_requested_at: 'Approvals requested at', approved_at: 'Approved at', + counseling_office_name: 'Counseling office', }; diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.jsx index 8a269aa9d33..f8e5fa6026a 100644 --- a/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.jsx +++ b/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.jsx @@ -4,12 +4,27 @@ import t from 'constants/MoveHistory/Database/Tables'; import a from 'constants/MoveHistory/Database/Actions'; import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; +const formatChangedValues = (historyRecord) => { + let newChangedValues = { + ...historyRecord.changedValues, + }; + + if (historyRecord.context) { + newChangedValues = { + ...newChangedValues, + ...historyRecord.context[0], + }; + } + + return { ...historyRecord, changedValues: newChangedValues }; +}; + export default { action: a.INSERT, eventName: '*', // Needs wild card to handle both createOrders and createOrder tableName: t.moves, getEventNameDisplay: () => 'Created move', getDetails: (historyRecord) => { - return ; + return ; }, }; diff --git a/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.jsx b/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.jsx index aa958e2bcb4..c58ac6483d9 100644 --- a/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.jsx +++ b/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.jsx @@ -1,14 +1,33 @@ import React from 'react'; -import o from 'constants/MoveHistory/UIDisplay/Operations'; import a from 'constants/MoveHistory/Database/Actions'; import t from 'constants/MoveHistory/Database/Tables'; import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; +const formatChangedValues = (historyRecord) => { + let newChangedValues = { + ...historyRecord.changedValues, + }; + + if (newChangedValues.counseling_transportation_office_id === null) { + newChangedValues.counseling_office_name = ' - '; + } + if (historyRecord.context) { + newChangedValues = { + ...newChangedValues, + ...historyRecord.context[0], + }; + } + + return { ...historyRecord, changedValues: newChangedValues }; +}; + export default { action: a.UPDATE, - eventName: o.updateOrder, + eventName: '*', // Needs wild card to handle both createOrders and createOrder tableName: t.moves, getEventNameDisplay: () => 'Updated move', - getDetails: (historyRecord) => , + getDetails: (historyRecord) => { + return ; + }, }; From 3446c01914bc58ac7bf2bf94b2d54bf0a060e97e Mon Sep 17 00:00:00 2001 From: pambecker Date: Wed, 16 Oct 2024 17:19:52 +0000 Subject: [PATCH 2/3] test fixes --- .../CreateOrder/createOrder.jsx | 31 ++++++++++++ .../CreateOrder/createOrder.test.jsx | 50 +++++++++++++++++++ .../createOrderCreateEntitlements.jsx | 16 ++++++ .../createOrderCreateEntitlements.test.jsx | 34 +++++++++++++ .../CreateOrder/createOrderCreateMoves.jsx | 31 ++++++++++++ .../createOrderCreateMoves.test.jsx | 36 +++++++++++++ .../CreateOrders/createEntitlements.jsx | 3 +- .../CreateOrders/createMoves.jsx | 3 +- .../CreateOrders/createMoves.test.jsx | 10 +++- .../CreateOrders/createOrders.jsx | 3 +- .../updateOrderUpdateMove.jsx | 3 +- .../updateOrderUpdateMove.test.jsx | 4 +- .../UpdateOrders/updateOrdersUpdateMove.jsx | 34 +++++++++++++ .../updateOrdersUpdateMove.test.jsx | 25 ++++++++++ .../MoveHistory/EventTemplates/index.js | 6 ++- .../MoveHistory/UIDisplay/Operations.js | 1 + 16 files changed, 282 insertions(+), 8 deletions(-) create mode 100644 src/constants/MoveHistory/EventTemplates/CreateOrder/createOrder.jsx create mode 100644 src/constants/MoveHistory/EventTemplates/CreateOrder/createOrder.test.jsx create mode 100644 src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateEntitlements.jsx create mode 100644 src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateEntitlements.test.jsx create mode 100644 src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateMoves.jsx create mode 100644 src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateMoves.test.jsx rename src/constants/MoveHistory/EventTemplates/{UpdateOrders => UpdateOrder}/updateOrderUpdateMove.jsx (90%) rename src/constants/MoveHistory/EventTemplates/{UpdateOrders => UpdateOrder}/updateOrderUpdateMove.test.jsx (81%) create mode 100644 src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrdersUpdateMove.jsx create mode 100644 src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrdersUpdateMove.test.jsx diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrder.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrder.jsx new file mode 100644 index 00000000000..53592aaf074 --- /dev/null +++ b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrder.jsx @@ -0,0 +1,31 @@ +import React from 'react'; + +import t from 'constants/MoveHistory/Database/Tables'; +import a from 'constants/MoveHistory/Database/Actions'; +import o from 'constants/MoveHistory/UIDisplay/Operations'; +import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; + +const formatChangedValues = (historyRecord) => { + let newChangedValues = { + ...historyRecord.changedValues, + }; + + if (historyRecord.context) { + newChangedValues = { + ...newChangedValues, + ...historyRecord.context[0], + }; + } + + return { ...historyRecord, changedValues: newChangedValues }; +}; + +export default { + action: a.INSERT, + eventName: o.createOrder, + tableName: t.orders, + getEventNameDisplay: () => 'Created orders', + getDetails: (historyRecord) => { + return ; + }, +}; diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrder.test.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrder.test.jsx new file mode 100644 index 00000000000..899a84d185f --- /dev/null +++ b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrder.test.jsx @@ -0,0 +1,50 @@ +import { render, screen } from '@testing-library/react'; + +import getTemplate from 'constants/MoveHistory/TemplateManager'; +import e from 'constants/MoveHistory/EventTemplates/CreateOrder/createOrder'; + +describe('When given a create order event for the orders table from the office side', () => { + const item = { + action: 'INSERT', + eventName: 'createOrder', + tableName: 'orders', + eventNameDisplay: 'Created orders', + changedValues: { + status: 'DRAFT', + report_by_date: '2022-10-18', + issue_date: '2022-10-11', + orders_type: 'PERMANENT_CHANGE_OF_STATION', + origin_duty_location_name: 'Los Angeles AFB', + new_duty_location_name: 'Fairchild AFB', + has_dependents: true, + grade: 'E_1', + }, + context: [ + { + new_duty_location_name: 'Fairchild AFB', + origin_duty_location_name: 'Los Angeles AFB', + }, + ], + }; + it('correctly matches to the proper template', () => { + const result = getTemplate(item); + expect(result).toMatchObject(e); + }); + describe('When given a specific set of details for created orders', () => { + it.each([ + ['Status', ': DRAFT'], + ['Report by date', ': 18 Oct 2022'], + ['Orders date', ': 11 Oct 2022'], + ['Orders type', ': Permanent Change Of Station (PCS)'], + ['Origin duty location name', ': Los Angeles AFB'], + ['New duty location name', ': Fairchild AFB'], + ['Dependents included', ': Yes'], + ['Pay grade', ': E-1'], + ])('displays the proper details value for %s', async (label, value) => { + const result = getTemplate(item); + render(result.getDetails(item)); + expect(screen.getByText(label)).toBeInTheDocument(); + expect(screen.getByText(value)).toBeInTheDocument(); + }); + }); +}); diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateEntitlements.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateEntitlements.jsx new file mode 100644 index 00000000000..abdd2512dd8 --- /dev/null +++ b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateEntitlements.jsx @@ -0,0 +1,16 @@ +import React from 'react'; + +import t from 'constants/MoveHistory/Database/Tables'; +import a from 'constants/MoveHistory/Database/Actions'; +import o from 'constants/MoveHistory/UIDisplay/Operations'; +import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; + +export default { + action: a.INSERT, + eventName: o.createOrder, + tableName: t.entitlements, + getEventNameDisplay: () => 'Created allowances', + getDetails: (historyRecord) => { + return ; + }, +}; diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateEntitlements.test.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateEntitlements.test.jsx new file mode 100644 index 00000000000..e73f4ada57d --- /dev/null +++ b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateEntitlements.test.jsx @@ -0,0 +1,34 @@ +import { render, screen } from '@testing-library/react'; + +import getTemplate from 'constants/MoveHistory/TemplateManager'; +import e from 'constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateEntitlements'; + +describe('When given a created order event for the entitlements table from the office side', () => { + const item = { + action: 'INSERT', + eventName: 'createOrder', + tableName: 'entitlements', + eventNameDisplay: 'Created allowances', + changedValues: { + authorized_weight: 8000, + dependents_authorized: true, + storage_in_transit: 90, + }, + }; + it('correctly matches the created orders template', () => { + const result = getTemplate(item); + expect(result).toMatchObject(e); + }); + describe('When given a specific set of details', () => { + it.each([ + ['Authorized weight', ': 8,000 lbs'], + ['Storage in transit (SIT)', ': 90 days'], + ['Dependents', ': Yes'], + ])('displays the proper details value for %s', async (label, value) => { + const result = getTemplate(item); + render(result.getDetails(item)); + expect(screen.getByText(label)).toBeInTheDocument(); + expect(screen.getByText(value)).toBeInTheDocument(); + }); + }); +}); diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateMoves.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateMoves.jsx new file mode 100644 index 00000000000..f08cb3cfc7c --- /dev/null +++ b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateMoves.jsx @@ -0,0 +1,31 @@ +import React from 'react'; + +import t from 'constants/MoveHistory/Database/Tables'; +import a from 'constants/MoveHistory/Database/Actions'; +import o from 'constants/MoveHistory/UIDisplay/Operations'; +import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; + +const formatChangedValues = (historyRecord) => { + let newChangedValues = { + ...historyRecord.changedValues, + }; + + if (historyRecord.context) { + newChangedValues = { + ...newChangedValues, + ...historyRecord.context[0], + }; + } + + return { ...historyRecord, changedValues: newChangedValues }; +}; + +export default { + action: a.INSERT, + eventName: o.createOrder, + tableName: t.moves, + getEventNameDisplay: () => 'Created move', + getDetails: (historyRecord) => { + return ; + }, +}; diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateMoves.test.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateMoves.test.jsx new file mode 100644 index 00000000000..244106bbff5 --- /dev/null +++ b/src/constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateMoves.test.jsx @@ -0,0 +1,36 @@ +import { render, screen } from '@testing-library/react'; + +import getTemplate from 'constants/MoveHistory/TemplateManager'; +import e from 'constants/MoveHistory/EventTemplates/CreateOrder/createOrderCreateMoves'; + +describe('When given a create order event for the moves table from the office side', () => { + const item = { + action: 'INSERT', + eventName: 'createOrder', + tableName: 'moves', + eventNameDisplay: 'Created move', + changedValues: { + status: 'DRAFT', + }, + context: [ + { + counseling_office_name: 'Scott AFB', + }, + ], + }; + it('correctly matches to the proper template', () => { + const result = getTemplate(item); + expect(result).toMatchObject(e); + }); + describe('When given a specific set of details for created move', () => { + it.each([ + ['Status', ': DRAFT'], + ['Counseling office', ': Scott AFB'], + ])('displays the proper details value for %s', async (label, value) => { + const result = getTemplate(item); + render(result.getDetails(item)); + expect(screen.getByText(label)).toBeInTheDocument(); + expect(screen.getByText(value)).toBeInTheDocument(); + }); + }); +}); diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrders/createEntitlements.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrders/createEntitlements.jsx index 981936201b0..b90c9270bc5 100644 --- a/src/constants/MoveHistory/EventTemplates/CreateOrders/createEntitlements.jsx +++ b/src/constants/MoveHistory/EventTemplates/CreateOrders/createEntitlements.jsx @@ -2,11 +2,12 @@ import React from 'react'; import t from 'constants/MoveHistory/Database/Tables'; import a from 'constants/MoveHistory/Database/Actions'; +import o from 'constants/MoveHistory/UIDisplay/Operations'; import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; export default { action: a.INSERT, - eventName: '*', // Needs wild card to handle both createOrders and createOrder + eventName: o.createOrders, tableName: t.entitlements, getEventNameDisplay: () => 'Created allowances', getDetails: (historyRecord) => { diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.jsx index f8e5fa6026a..833c52df1c5 100644 --- a/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.jsx +++ b/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.jsx @@ -2,6 +2,7 @@ import React from 'react'; import t from 'constants/MoveHistory/Database/Tables'; import a from 'constants/MoveHistory/Database/Actions'; +import o from 'constants/MoveHistory/UIDisplay/Operations'; import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; const formatChangedValues = (historyRecord) => { @@ -21,7 +22,7 @@ const formatChangedValues = (historyRecord) => { export default { action: a.INSERT, - eventName: '*', // Needs wild card to handle both createOrders and createOrder + eventName: o.createOrders, tableName: t.moves, getEventNameDisplay: () => 'Created move', getDetails: (historyRecord) => { diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.test.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.test.jsx index b4a3da6d9b9..f6c16445823 100644 --- a/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.test.jsx +++ b/src/constants/MoveHistory/EventTemplates/CreateOrders/createMoves.test.jsx @@ -12,13 +12,21 @@ describe('When given a created orders event for the moves table', () => { changedValues: { status: 'DRAFT', }, + context: [ + { + counseling_office_name: 'Scott AFB', + }, + ], }; it('correctly matches to the proper template', () => { const result = getTemplate(item); expect(result).toMatchObject(e); }); describe('When given a specific set of details for created moves', () => { - it.each([['Status', ': DRAFT']])('displays the proper details value for %s', async (label, value) => { + it.each([ + ['Status', ': DRAFT'], + ['Counseling office', ': Scott AFB'], + ])('displays the proper details value for %s', async (label, value) => { const result = getTemplate(item); render(result.getDetails(item)); expect(screen.getByText(label)).toBeInTheDocument(); diff --git a/src/constants/MoveHistory/EventTemplates/CreateOrders/createOrders.jsx b/src/constants/MoveHistory/EventTemplates/CreateOrders/createOrders.jsx index b5c5900529a..8e5f2c8c11c 100644 --- a/src/constants/MoveHistory/EventTemplates/CreateOrders/createOrders.jsx +++ b/src/constants/MoveHistory/EventTemplates/CreateOrders/createOrders.jsx @@ -2,6 +2,7 @@ import React from 'react'; import t from 'constants/MoveHistory/Database/Tables'; import a from 'constants/MoveHistory/Database/Actions'; +import o from 'constants/MoveHistory/UIDisplay/Operations'; import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; const formatChangedValues = (historyRecord) => { @@ -21,7 +22,7 @@ const formatChangedValues = (historyRecord) => { export default { action: a.INSERT, - eventName: '*', // Needs wild card to handle both createOrders and createOrder + eventName: o.createOrders, tableName: t.orders, getEventNameDisplay: () => 'Created orders', getDetails: (historyRecord) => { diff --git a/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.jsx b/src/constants/MoveHistory/EventTemplates/UpdateOrder/updateOrderUpdateMove.jsx similarity index 90% rename from src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.jsx rename to src/constants/MoveHistory/EventTemplates/UpdateOrder/updateOrderUpdateMove.jsx index c58ac6483d9..fdea98ef9ae 100644 --- a/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.jsx +++ b/src/constants/MoveHistory/EventTemplates/UpdateOrder/updateOrderUpdateMove.jsx @@ -1,5 +1,6 @@ import React from 'react'; +import o from 'constants/MoveHistory/UIDisplay/Operations'; import a from 'constants/MoveHistory/Database/Actions'; import t from 'constants/MoveHistory/Database/Tables'; import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; @@ -24,7 +25,7 @@ const formatChangedValues = (historyRecord) => { export default { action: a.UPDATE, - eventName: '*', // Needs wild card to handle both createOrders and createOrder + eventName: o.updateOrder, tableName: t.moves, getEventNameDisplay: () => 'Updated move', getDetails: (historyRecord) => { diff --git a/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.test.jsx b/src/constants/MoveHistory/EventTemplates/UpdateOrder/updateOrderUpdateMove.test.jsx similarity index 81% rename from src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.test.jsx rename to src/constants/MoveHistory/EventTemplates/UpdateOrder/updateOrderUpdateMove.test.jsx index 7b95966e5f8..7bc6293894d 100644 --- a/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove.test.jsx +++ b/src/constants/MoveHistory/EventTemplates/UpdateOrder/updateOrderUpdateMove.test.jsx @@ -1,9 +1,9 @@ import { render, screen } from '@testing-library/react'; import getTemplate from 'constants/MoveHistory/TemplateManager'; -import e from 'constants/MoveHistory/EventTemplates/UpdateOrders/updateOrderUpdateMove'; +import e from 'constants/MoveHistory/EventTemplates/UpdateOrder/updateOrderUpdateMove'; -describe('when given an mto shipment update with service item status history record', () => { +describe('when given an mto shipment update for the moves table from the office side', () => { const historyRecord = { action: 'UPDATE', changedValues: { status: 'APPROVED' }, diff --git a/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrdersUpdateMove.jsx b/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrdersUpdateMove.jsx new file mode 100644 index 00000000000..dc48e797459 --- /dev/null +++ b/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrdersUpdateMove.jsx @@ -0,0 +1,34 @@ +import React from 'react'; + +import o from 'constants/MoveHistory/UIDisplay/Operations'; +import a from 'constants/MoveHistory/Database/Actions'; +import t from 'constants/MoveHistory/Database/Tables'; +import LabeledDetails from 'pages/Office/MoveHistory/LabeledDetails'; + +const formatChangedValues = (historyRecord) => { + let newChangedValues = { + ...historyRecord.changedValues, + }; + + if (newChangedValues.counseling_transportation_office_id === null) { + newChangedValues.counseling_office_name = ' - '; + } + if (historyRecord.context) { + newChangedValues = { + ...newChangedValues, + ...historyRecord.context[0], + }; + } + + return { ...historyRecord, changedValues: newChangedValues }; +}; + +export default { + action: a.UPDATE, + eventName: o.updateOrders, + tableName: t.moves, + getEventNameDisplay: () => 'Updated move', + getDetails: (historyRecord) => { + return ; + }, +}; diff --git a/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrdersUpdateMove.test.jsx b/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrdersUpdateMove.test.jsx new file mode 100644 index 00000000000..ddb3b9c890c --- /dev/null +++ b/src/constants/MoveHistory/EventTemplates/UpdateOrders/updateOrdersUpdateMove.test.jsx @@ -0,0 +1,25 @@ +import { render, screen } from '@testing-library/react'; + +import getTemplate from 'constants/MoveHistory/TemplateManager'; +import e from 'constants/MoveHistory/EventTemplates/UpdateOrders/updateOrdersUpdateMove'; + +describe('when given an mto shipment update for the moves table', () => { + const historyRecord = { + action: 'UPDATE', + changedValues: { status: 'APPROVED' }, + eventName: 'updateOrders', + oldValues: { status: 'APPROVALS REQUESTED' }, + tableName: 'moves', + }; + it('correctly matches to the service item status template', () => { + const template = getTemplate(historyRecord); + expect(template).toMatchObject(e); + }); + + it('displays the proper value in the details field', () => { + const template = getTemplate(historyRecord); + render(template.getDetails(historyRecord)); + expect(screen.getByText('Status')).toBeInTheDocument(); + expect(screen.getByText(': APPROVED')).toBeInTheDocument(); + }); +}); diff --git a/src/constants/MoveHistory/EventTemplates/index.js b/src/constants/MoveHistory/EventTemplates/index.js index ff71c3c73d8..7aadc1c656f 100644 --- a/src/constants/MoveHistory/EventTemplates/index.js +++ b/src/constants/MoveHistory/EventTemplates/index.js @@ -86,7 +86,7 @@ export { default as submitPPMShipmentDocumentation } from './SubmitPPMShipmentDo export { default as finishDocumentReview } from './FinishDocumentReview/finishDocumentReview'; export { default as approveShipmentApproveMove } from './ApproveShipment/approveShipmentApproveMove'; export { default as createPaymentRequestUpdateShipment } from './CreatePaymentRequest/createPaymentRequestUpdateShipment'; -export { default as updateOrderUpdateMove } from './UpdateOrders/updateOrderUpdateMove'; +export { default as updateOrdersUpdateMove } from './UpdateOrders/updateOrdersUpdateMove'; export { default as updateMTOShipmentByServiceItemStatus } from './UpdateMTOShipment/updateMTOShipmentByServiceItemStatus'; export { default as updateServiceItemStatusUpdateMove } from './UpdateServiceItemStatus/updateServiceItemStatusUpdateMove'; export { default as approveShipmentUpdateMove } from './ApproveShipment/approveShipmentUpdateMove'; @@ -97,3 +97,7 @@ export { default as approveShipmentUpdateAllowances } from './ApproveShipment/ap export { default as updateOrderUpdateAllowances } from './UpdateOrders/updateOrderUpdateAllowances'; export { default as patchMTOShipment } from './UpdateMTOShipment/patchMTOShipment'; export { default as uploadAdditionalDocuments } from './UploadAdditionalDocuments/uploadAdditionalDocuments'; +export { default as createOrder } from './CreateOrder/createOrder'; +export { default as createOrderCreateEntitlements } from './CreateOrder/createOrderCreateEntitlements'; +export { default as createOrderCreateMoves } from './CreateOrder/createOrderCreateMoves'; +export { default as updateOrderUpdateMove } from './UpdateOrder/updateOrderUpdateMove'; diff --git a/src/constants/MoveHistory/UIDisplay/Operations.js b/src/constants/MoveHistory/UIDisplay/Operations.js index 707fefe9e52..a055de46104 100644 --- a/src/constants/MoveHistory/UIDisplay/Operations.js +++ b/src/constants/MoveHistory/UIDisplay/Operations.js @@ -60,4 +60,5 @@ export default { createSITExtension: 'createSITExtension', // prime.yaml patchMove: 'patchMove', // internal.yaml uploadAdditionalDocuments: 'uploadAdditionalDocuments', // internal.yaml + createOrder: 'createOrder', // ghc.yaml }; From 256f0019f49dc05c99ed376854849dcb67b1f595 Mon Sep 17 00:00:00 2001 From: pambecker Date: Thu, 17 Oct 2024 16:46:58 +0000 Subject: [PATCH 3/3] merge conflict --- swagger/prime_v3.yaml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/swagger/prime_v3.yaml b/swagger/prime_v3.yaml index 354f1322d02..9742f3c5fdc 100644 --- a/swagger/prime_v3.yaml +++ b/swagger/prime_v3.yaml @@ -923,6 +923,16 @@ definitions: goods exist. allOf: - $ref: '#/definitions/Address' + hasTertiaryPickupAddress: + type: boolean + x-omitempty: false + x-nullable: true + tertiaryPickupAddress: + description: > + An optional third pickup location near the origin where additional + goods exist. + allOf: + - $ref: '#/definitions/Address' destinationAddress: description: > The address of the destination location where goods are being @@ -939,6 +949,16 @@ definitions: dropped off. allOf: - $ref: '#/definitions/Address' + hasTertiaryDestinationAddress: + type: boolean + x-omitempty: false + x-nullable: true + tertiaryDestinationAddress: + description: > + An optional third address near the destination where goods will be + dropped off. + allOf: + - $ref: '#/definitions/Address' sitExpected: description: > Captures whether some or all of the PPM shipment will require @@ -1106,6 +1126,18 @@ definitions: one. An optional field. allOf: - $ref: '#/definitions/Address' + tertiaryPickupAddress: + description: >- + A third pickup address for this shipment, if the customer entered one. + An optional field. + allOf: + - $ref: '#/definitions/Address' + tertiaryDeliveryAddress: + description: >- + A third delivery address for this shipment, if the customer entered + one. An optional field. + allOf: + - $ref: '#/definitions/Address' storageFacility: allOf: - x-nullable: true