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 21367 INT B block third address if no second address is present #13954

Conversation

joeydoyecaci
Copy link
Contributor

@joeydoyecaci joeydoyecaci commented Oct 18, 2024

B-21367

Summary

Added new rules to MTO & PPM shipment validations to prevent tertiary addresses from being added/updated without a second one present. Additional utility functions added as well to support testing.

How to test.

  1. Open Dbeaver and find a move ID to use later. Move should be in approved status
  2. Open Postman, and run this one for Create http://primelocal:3000/prime/v3/mto-shipments using the following JSON
Example JSON
{
  "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b",
  "shipmentType": "PPM",
  "requestedPickupDate": "2024-01-01",
  "estimatedWeight": "1776",
  "pickupAddress": {
    "id": "tp1",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
"tertiaryPickupAddress": {
    "id": "tp1",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
    "destinationAddress": {
    "id": "tp2",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
  "ppmShipment": {
    "expectedDepartureDate": "2024-01-01",
    "estimatedWeight": 2500,
    "hasProGear": false,
    "sitExpected": false,
    "pickupAddress": {
        "id": "ppmp1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
    "destinationAddress": {
        "id":"ppmd1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
  }
}

This should cause a validation error as a result

  1. Run create shipment again using the following JSON
Example JSON
{
  "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b",
  "shipmentType": "PPM",
  "requestedPickupDate": "2024-01-01",
  "estimatedWeight": "1776",
  "pickupAddress": {
    "id": "tp1",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
    "destinationAddress": {
    "id": "tp2",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
"tertiaryDestinationAddress": {
    "id": "tp1",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
  "ppmShipment": {
    "expectedDepartureDate": "2024-01-01",
    "estimatedWeight": 2500,
    "hasProGear": false,
    "sitExpected": false,
    "pickupAddress": {
        "id": "ppmp1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
    "destinationAddress": {
        "id":"ppmd1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
  }
}
An error should be returned here as well
  1. Run Create MTO shipment again using this JSON
Example JSON
{
  "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b",
  "shipmentType": "PPM",
  "requestedPickupDate": "2024-01-01",
  "estimatedWeight": "1776",
  "pickupAddress": {
    "id": "tp1",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
    "destinationAddress": {
    "id": "tp2",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
"tertiaryDestinationAddress": {
    "id": "tp1",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
  "ppmShipment": {
    "expectedDepartureDate": "2024-01-01",
    "estimatedWeight": 2500,
    "hasProGear": false,
    "sitExpected": false,
    "pickupAddress": {
        "id": "ppmp1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
"secondaryPickupAddress": {
        "id": "ppmp1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
    "destinationAddress": {
        "id":"ppmd1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
  }
}
  1. Run this JSON for create MTO Shipment
Example JSON
{
  "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b",
  "shipmentType": "PPM",
  "requestedPickupDate": "2024-01-01",
  "estimatedWeight": "1776",
  "pickupAddress": {
    "id": "tp1",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
    "destinationAddress": {
    "id": "tp2",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
"tertiaryDestinationAddress": {
    "id": "tp1",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
  "ppmShipment": {
    "expectedDepartureDate": "2024-01-01",
    "estimatedWeight": 2500,
    "hasProGear": false,
    "sitExpected": false,
    "pickupAddress": {
        "id": "ppmp1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
"secondaryPickupAddress": {
        "id": "ppmp1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
    "destinationAddress": {
        "id":"ppmd1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
"tertiaryDestinationAddress": {
        "id":"ppmd1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
  }
}
This should cause an error as well
  1. Run this JSON with create MTO shipment, this should return OK
Example JSON ``` JSON{ "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b", "shipmentType": "PPM", "requestedPickupDate": "2024-01-01", "estimatedWeight": "1776", "pickupAddress": { "id": "tp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "secondaryPickupAddress": { "id": "tp2", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "tertiaryPickupAddress": { "id": "tp2", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "destinationAddress": { "id": "tp2", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "secondaryDestinationAddress": { "id": "tp2", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "tertiaryDestinationAddress": { "id": "tp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "ppmShipment": { "expectedDepartureDate": "2024-01-01", "estimatedWeight": 2500, "hasProGear": false, "sitExpected": false, "pickupAddress": { "id": "ppmp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "secondaryPickupAddress": { "id": "ppmp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "destinationAddress": { "id":"ppmd1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "secondaryDestinationAddress": { "id":"ppmd1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "tertiaryDestinationAddress": { "id":"ppmd1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, } }```
this should return OK
  1. Create another shipment with only the base addresses
Example JSON ``` JSON{ "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b", "shipmentType": "PPM", "requestedPickupDate": "2024-01-01", "estimatedWeight": "1776", "pickupAddress": { "id": "tp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "destinationAddress": { "id": "tp2", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "ppmShipment": { "expectedDepartureDate": "2024-01-01", "estimatedWeight": 2500, "hasProGear": false, "sitExpected": false, "pickupAddress": { "id": "ppmp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "destinationAddress": { "id":"ppmd1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, } }```

then in the results note the eTag
This value WILL change each and every time mto shipment is run, running an old one will yield an IF-Match precondition error!

  1. run {{baseUrl}}/prime/v3/mto-shipments/:mtoShipmentID with the mto shipment ID added in the params, with the following json added in the body
Example JSON ``` JSON{ "ppmShipment": { "expectedDepartureDate": "2024-01-01", "estimatedWeight": 2500, "hasProGear": false, "sitExpected": false, "pickupAddress": { "id": "ppmp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "tertiaryPickupAddress": { "id": "ppmp3", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "destinationAddress": { "id":"ppmd1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" } } }```

This should yield an error like before

  1. Update the eTag (you may need to pull it from the swagger "getMtoShipment" if the one for the shipment in the DB doesn't work. Rerun update-mto-shipment using the same shipment ID and the following JSON
Example JSON ``` JSON{ "ppmShipment": { "expectedDepartureDate": "2024-01-01", "estimatedWeight": 2500, "hasProGear": false, "sitExpected": false, "pickupAddress": { "id": "ppmp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "secondaryPickupAddress": { "id": "ppmp3", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "tertiaryPickupAddress": { "id": "ppmp3", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "destinationAddress": { "id":"ppmd1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" } "secondaryDestinationAddress": { "id": "ppmp3", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "tertiaryDestinationAddress": { "id": "ppmp3", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, } }```

because the secondary addresses are present, this should pass.

This reverts commit 8b7af07.
…ond-address-is-present
…-is-present' into B-21367-INT-B-Block-third-address-if-no-second-address-is-present
@joeydoyecaci joeydoyecaci added INTEGRATION Slated for Integration Testing MAIN labels Oct 18, 2024
@joeydoyecaci joeydoyecaci self-assigned this Oct 18, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present
@joeydoyecaci joeydoyecaci marked this pull request as ready for review October 18, 2024 16:16

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ddress-is-present

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ddress-is-present
@joeydoyecaci joeydoyecaci added G-Unit Scrum Team G and removed MAIN labels Oct 22, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ddress-is-present

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present
…resent' into B-21367-INT-B-Block-third-address-if-no-second-address-is-present
@pambecker
Copy link
Contributor

conflicts

joeydoyecaci and others added 4 commits October 31, 2024 13:05
…resent' into B-21367-INT-B-Block-third-address-if-no-second-address-is-present
@pambecker
Copy link
Contributor

I am not getting an error as expected when I try tertiary address and no secondary for PPMs, both pickup and destination.

@joeydoyecaci
Copy link
Contributor Author

joeydoyecaci commented Nov 1, 2024

I am not getting an error as expected when I try tertiary address and no secondary for PPMs, both pickup and destination.

Additional context is required.
is this when calling the updateMTOShipment or createMTOShipment endpoint w/ PPM or both?

@pambecker
Copy link
Contributor

I am not getting an error as expected when I try tertiary address and no secondary for PPMs, both pickup and destination.

Additional context is required. is this when calling the updateMTOShipment or createMTOShipment endpoint w/ PPM or both?

Sorry, I was testing the create, didn't look at update yet.

joeydoyecaci and others added 9 commits November 4, 2024 10:31

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present
…or messages.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present
…ddress-is-present
…resent' into B-21367-INT-B-Block-third-address-if-no-second-address-is-present
@joeydoyecaci joeydoyecaci force-pushed the B-21367-INT-B-Block-third-address-if-no-second-address-is-present branch from 01716b9 to 57345b1 Compare November 8, 2024 13:02
…ddress-is-present
…esses for mto/ppm shipments
…resent' into B-21367-INT-B-Block-third-address-if-no-second-address-is-present
@joeydoyecaci
Copy link
Contributor Author

The Playwright test failing in CI is passing locally.
image

@pambecker
Copy link
Contributor

We can discuss on Monday when you are back, but I'm having problems getting an error for the update call and passing a PPMShipment with tertiary and no secondary.
Maybe someone else has tried this yet?

@pambecker
Copy link
Contributor

We can discuss on Monday when you are back, but I'm having problems getting an error for the update call and passing a PPMShipment with tertiary and no secondary. Maybe someone else has tried this yet?

just for future and other testers. I wasn't aware that you have to pass the flag for PPM address updates. here's an example for the body in postman
{
"ppmShipment": {
"hasTertiaryPickupAddress": true,
"tertiaryPickupAddress": {
"id": "ppm3",
"city": "Beverly Hills",
"postalCode": "23231",
"streetAddress1": "12 new Any Street",
"StreetAddress2": "P.O. Box 1234",
"state": "CA"
}
}
}

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
…ess-if-no-second-address-is-present
@joeydoyecaci joeydoyecaci merged commit 8a4cdfb into integrationTesting Nov 18, 2024
30 checks passed
@joeydoyecaci joeydoyecaci deleted the B-21367-INT-B-Block-third-address-if-no-second-address-is-present branch November 18, 2024 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
G-Unit Scrum Team G INTEGRATION Slated for Integration Testing
Development

Successfully merging this pull request may close these issues.

None yet

4 participants