feat(types,fulfillment): ability to delete a canceled fulfillment (#10602)

This commit is contained in:
Riqwan Thamir
2024-12-16 11:17:45 +01:00
committed by GitHub
parent 7c773fc108
commit 90ad2566fd
4 changed files with 103 additions and 2 deletions
@@ -1,18 +1,18 @@
import { resolve } from "path"
import {
IFulfillmentModuleService,
UpdateFulfillmentDTO,
} from "@medusajs/framework/types"
import { FulfillmentEvents, Modules } from "@medusajs/framework/utils"
import {
MockEventBusService,
moduleIntegrationTestRunner,
} from "@medusajs/test-utils"
import { resolve } from "path"
import {
buildExpectedEventMessageShape,
generateCreateFulfillmentData,
generateCreateShippingOptionsData,
} from "../../__fixtures__"
import { FulfillmentEvents, Modules } from "@medusajs/framework/utils"
jest.setTimeout(100000)
@@ -509,6 +509,67 @@ moduleIntegrationTestRunner<IFulfillmentModuleService>({
)
})
})
describe("on delete", () => {
let fulfillment
beforeEach(async () => {
const shippingProfile = await service.createShippingProfiles({
name: "test",
type: "default",
})
const fulfillmentSet = await service.createFulfillmentSets({
name: "test",
type: "test-type",
})
const serviceZone = await service.createServiceZones({
name: "test",
fulfillment_set_id: fulfillmentSet.id,
})
const shippingOption = await service.createShippingOptions(
generateCreateShippingOptionsData({
provider_id: providerId,
service_zone_id: serviceZone.id,
shipping_profile_id: shippingProfile.id,
})
)
fulfillment = await service.createFulfillment(
generateCreateFulfillmentData({
provider_id: providerId,
shipping_option_id: shippingOption.id,
})
)
jest.clearAllMocks()
})
it("should delete a canceled fulfillment successfully", async () => {
await service.cancelFulfillment(fulfillment.id)
await service.deleteFulfillment(fulfillment.id)
const retrieveError = await service
.retrieveFulfillment(fulfillment.id)
.catch((e) => e)
expect(retrieveError.message).toEqual(
`Fulfillment with id: ${fulfillment.id} was not found`
)
})
it("should fail to delete an uncanceled fulfillment", async () => {
const deleteError = await service
.deleteFulfillment(fulfillment.id)
.catch((e) => e)
expect(deleteError.message).toEqual(
`Fulfillment with id ${fulfillment.id} needs to be canceled first before deleting`
)
})
})
})
})
},