Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

B-18322 Update Requested pickup date #11937

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,43 @@ import DataTableWrapper from 'components/DataTableWrapper/index';

const ImportantShipmentDates = ({
requestedPickupDate,
plannedMoveDate,
scheduledPickupDate,
requiredDeliveryDate,
actualMoveDate,
actualPickupDate,
requiredDeliveryDate,
requestedDeliveryDate,
scheduledDeliveryDate,
actualDeliveryDate,
isPPM,
}) => {
const headerPlannedMoveDate = isPPM ? 'Planned Move Date' : 'Requested pick up date';
const headerActualMoveDate = isPPM ? 'Actual Move Date' : 'Scheduled pick up date';
const headerActualPickupDate = isPPM ? '' : 'Actual pick up date';

const emDash = '\u2014';
return (
<div className={classnames('maxw-tablet', styles.shipmentDatesContainer)}>
<DataTableWrapper className="table--data-point-group">
<DataTable columnHeaders={['Required Delivery Date']} dataRow={[requiredDeliveryDate || emDash]} />
<DataTable
columnHeaders={['Requested pick up date', 'Scheduled pick up date', 'Actual pick up date']}
dataRow={[requestedPickupDate || emDash, scheduledPickupDate || emDash, actualPickupDate || emDash]}
/>
<DataTable
columnHeaders={['Requested delivery date', 'Scheduled delivery date', 'Actual delivery date']}
dataRow={[requestedDeliveryDate || emDash, scheduledDeliveryDate || emDash, actualDeliveryDate || emDash]}
/>
{!isPPM && <DataTable columnHeaders={['Required Delivery Date']} dataRow={[requiredDeliveryDate || emDash]} />}
{!isPPM && (
<DataTable
columnHeaders={[headerPlannedMoveDate, headerActualMoveDate, headerActualPickupDate]}
dataRow={[requestedPickupDate || emDash, scheduledPickupDate || emDash, actualPickupDate || emDash]}
/>
)}
{isPPM && (
<DataTable
columnHeaders={[headerPlannedMoveDate, headerActualMoveDate]}
dataRow={[plannedMoveDate || emDash, actualMoveDate || emDash]}
/>
)}
{!isPPM && (
<DataTable
columnHeaders={['Requested delivery date', 'Scheduled delivery date', 'Actual delivery date']}
dataRow={[requestedDeliveryDate || emDash, scheduledDeliveryDate || emDash, actualDeliveryDate || emDash]}
/>
)}
</DataTableWrapper>
</div>
);
Expand All @@ -39,19 +56,25 @@ ImportantShipmentDates.defaultProps = {
scheduledPickupDate: '',
requiredDeliveryDate: '',
actualPickupDate: '',
plannedMoveDate: '',
actualMoveDate: '',
requestedDeliveryDate: '',
scheduledDeliveryDate: '',
actualDeliveryDate: '',
isPPM: false,
};

ImportantShipmentDates.propTypes = {
requestedPickupDate: PropTypes.string,
scheduledPickupDate: PropTypes.string,
plannedMoveDate: PropTypes.string,
actualMoveDate: PropTypes.string,
requiredDeliveryDate: PropTypes.string,
actualPickupDate: PropTypes.string,
requestedDeliveryDate: PropTypes.string,
scheduledDeliveryDate: PropTypes.string,
actualDeliveryDate: PropTypes.string,
isPPM: PropTypes.bool,
};

export default ImportantShipmentDates;
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,29 @@ import { mount } from 'enzyme';
import ImportantShipmentDates from './ImportantShipmentDates';

describe('ImportantShipmentDates', () => {
const requiredDeliveryDate = 'Wednesday, 25 Mar 2020';
const requestedPickupDate = 'Thursday, 26 Mar 2020';
const scheduledPickupDate = 'Friday, 27 Mar 2020';
const actualPickupDate = 'Saturday, 28 Mar 2020';
const requiredDeliveryDate = 'Monday, 30 Mar 2020';
const requestedDeliveryDate = 'Sunday, 29 Mar 2020';
const plannedMoveDate = 'Saturday, 28 Mar 2020';
const actualMoveDate = 'Sunday, 29 Mar 2020';
const requestedDeliveryDate = 'Monday, 30 Mar 2020';
const scheduledDeliveryDate = 'Tuesday, 1 Apr 2020';
const actualDeliveryDate = 'Wednesday, 2 Apr 2020';
const actualPickupDate = 'Thursday, 3 Apr 2020';

it('should render the shipment dates we pass in', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
requiredDeliveryDate={requiredDeliveryDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
actualPickupDate={actualPickupDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
requiredDeliveryDate={requiredDeliveryDate}
isPPM={false}
/>,
);
expect(wrapper.find('td').at(0).text()).toEqual(requiredDeliveryDate);
Expand All @@ -42,6 +47,91 @@ describe('ImportantShipmentDates', () => {
expect(wrapper.find('td').at(3).text()).toEqual(emDash);
expect(wrapper.find('td').at(4).text()).toEqual(emDash);
expect(wrapper.find('td').at(5).text()).toEqual(emDash);
expect(wrapper.find('td').at(6).text()).toEqual(emDash);
});

it('should show relevant PPM fields when it is a PPM', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
requiredDeliveryDate={requiredDeliveryDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
actualPickupDate={actualPickupDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
isPPM
/>,
);
expect(wrapper.find('td').at(0).text()).toEqual(plannedMoveDate);
expect(wrapper.find('td').at(1).text()).toEqual(actualMoveDate);
});

it('should not show irrelevant fields when it is a PPM', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
isPPM
/>,
);
expect(wrapper.find('td').at(0).text()).not.toEqual(requestedPickupDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(requestedPickupDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(scheduledPickupDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(scheduledPickupDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(requestedDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(requestedDeliveryDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(scheduledDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(scheduledDeliveryDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(actualDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(actualDeliveryDate);
});

it('should show relevant fields when it is a PPM', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
isPPM
/>,
);
expect(wrapper.find('td').at(0).text()).toEqual(plannedMoveDate);
expect(wrapper.find('td').at(1).text()).toEqual(actualMoveDate);
});

it('should not show irrelevant fields when it is a PPM', () => {
const wrapper = mount(
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate}
scheduledPickupDate={scheduledPickupDate}
plannedMoveDate={plannedMoveDate}
actualMoveDate={actualMoveDate}
requestedDeliveryDate={requestedDeliveryDate}
scheduledDeliveryDate={scheduledDeliveryDate}
actualDeliveryDate={actualDeliveryDate}
isPPM
/>,
);
expect(wrapper.find('td').at(0).text()).not.toEqual(requestedPickupDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(requestedPickupDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(scheduledPickupDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(scheduledPickupDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(requestedDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(requestedDeliveryDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(scheduledDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(scheduledDeliveryDate);
expect(wrapper.find('td').at(0).text()).not.toEqual(actualDeliveryDate);
expect(wrapper.find('td').at(1).text()).not.toEqual(actualDeliveryDate);
});
});
56 changes: 44 additions & 12 deletions src/components/Office/ShipmentDetails/ShipmentDetailsMain.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -125,27 +125,53 @@ const ShipmentDetailsMain = ({

let displayedPickupAddress;
let displayedDeliveryAddress;
let weightResult;
let pickupRequestedDate;
let pickupScheduledDate;
let pickupActualDate;
let plannedMoveDate;
let actualMoveDate;

switch (shipmentType) {
case SHIPMENT_OPTIONS.HHG:
pickupRequestedDate = requestedPickupDate;
pickupScheduledDate = scheduledPickupDate;
pickupActualDate = actualPickupDate;
weightResult = primeEstimatedWeight;
displayedPickupAddress = pickupAddress;
displayedDeliveryAddress = destinationAddress || destinationDutyLocationAddress;
break;
case SHIPMENT_OPTIONS.NTS:
pickupRequestedDate = requestedPickupDate;
pickupScheduledDate = scheduledPickupDate;
pickupActualDate = actualPickupDate;
weightResult = primeEstimatedWeight;
displayedPickupAddress = pickupAddress;
displayedDeliveryAddress = storageFacility ? storageFacility.address : null;
break;
case SHIPMENT_OPTIONS.NTSR:
pickupRequestedDate = requestedPickupDate;
pickupScheduledDate = scheduledPickupDate;
pickupActualDate = actualPickupDate;
weightResult = primeEstimatedWeight;
displayedPickupAddress = storageFacility ? storageFacility.address : null;
displayedDeliveryAddress = destinationAddress;
break;
case SHIPMENT_OPTIONS.PPM:
plannedMoveDate = ppmShipment.expectedDepartureDate;
actualMoveDate = ppmShipment.actualMoveDate;
weightResult = ppmShipment.estimatedWeight;
displayedPickupAddress = pickupAddress;
displayedDeliveryAddress = destinationAddress || destinationDutyLocationAddress;
break;
default:
pickupRequestedDate = requestedPickupDate;
pickupScheduledDate = scheduledPickupDate;
pickupActualDate = actualPickupDate;
weightResult = primeEstimatedWeight;
displayedPickupAddress = pickupAddress;
displayedDeliveryAddress = destinationAddress || destinationDutyLocationAddress;
break;
}

return (
Expand Down Expand Up @@ -189,19 +215,25 @@ const ShipmentDetailsMain = ({
)}
{shipmentType === SHIPMENT_OPTIONS.PPM && (
<ImportantShipmentDates
actualMoveDate={actualMoveDate ? formatDateWithUTC(actualMoveDate) : null}
actualDeliveryDate={actualMoveDate ? formatDateWithUTC(actualMoveDate) : null}
plannedMoveDate={plannedMoveDate ? formatDateWithUTC(plannedMoveDate) : null}
requestedDeliveryDate={requestedDeliveryDate ? formatDateWithUTC(requestedDeliveryDate) : null}
scheduledDeliveryDate={scheduledDeliveryDate ? formatDateWithUTC(scheduledDeliveryDate) : null}
actualDeliveryDate={actualMoveDate ? formatDateWithUTC(actualDeliveryDate) : null}
isPPM={shipmentType === SHIPMENT_OPTIONS.PPM}
/>
)}
{shipmentType !== SHIPMENT_OPTIONS.PPM && (
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate ? formatDateWithUTC(pickupRequestedDate) : null}
scheduledPickupDate={scheduledPickupDate ? formatDateWithUTC(pickupScheduledDate) : null}
actualPickupDate={actualPickupDate ? formatDateWithUTC(pickupActualDate) : null}
requestedDeliveryDate={requestedDeliveryDate ? formatDateWithUTC(requestedDeliveryDate) : null}
scheduledDeliveryDate={scheduledDeliveryDate ? formatDateWithUTC(scheduledDeliveryDate) : null}
actualDeliveryDate={actualDeliveryDate ? formatDateWithUTC(actualDeliveryDate) : null}
requiredDeliveryDate={requiredDeliveryDate ? formatDateWithUTC(requiredDeliveryDate) : null}
isPPM={shipmentType === SHIPMENT_OPTIONS.PPM}
/>
)}
<ImportantShipmentDates
requestedPickupDate={requestedPickupDate ? formatDateWithUTC(requestedPickupDate) : null}
scheduledPickupDate={scheduledPickupDate ? formatDateWithUTC(scheduledPickupDate) : null}
actualPickupDate={actualPickupDate ? formatDateWithUTC(actualPickupDate) : null}
requestedDeliveryDate={requestedDeliveryDate ? formatDateWithUTC(requestedDeliveryDate) : null}
scheduledDeliveryDate={scheduledDeliveryDate ? formatDateWithUTC(scheduledDeliveryDate) : null}
actualDeliveryDate={actualDeliveryDate ? formatDateWithUTC(actualDeliveryDate) : null}
requiredDeliveryDate={requiredDeliveryDate ? formatDateWithUTC(requiredDeliveryDate) : null}
/>
<ShipmentAddresses
pickupAddress={displayedPickupAddress}
destinationAddress={displayedDeliveryAddress}
Expand All @@ -216,7 +248,7 @@ const ShipmentDetailsMain = ({
handleDivertShipment={handleDivertShipment}
/>
<ShipmentWeightDetails
estimatedWeight={primeEstimatedWeight}
estimatedWeight={weightResult}
initialWeight={primeActualWeight}
shipmentInfo={{
shipmentID: shipment.id,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,5 +70,5 @@ it('does display PPM shipment', () => {
</MockProviders>,
);

expect(screen.queryByText(formatDateWithUTC('2-22-2024'))).toBeInTheDocument();
expect(screen.queryByText(formatDateWithUTC('2024-01-01'))).toBeInTheDocument();
});
Loading