fix: Remove undefined from events in update (#10170)

This commit is contained in:
Oli Juhl
2024-11-20 09:43:51 +01:00
committed by GitHub
parent 7390c14c20
commit 8091c5f5bc
2 changed files with 34 additions and 4 deletions
@@ -20,8 +20,10 @@ import {
upperCaseFirst, upperCaseFirst,
} from "../common" } from "../common"
import { DmlEntity } from "../dml" import { DmlEntity } from "../dml"
import { CommonEvents } from "../event-bus"
import { EmitEvents, InjectManager, MedusaContext } from "./decorators" import { EmitEvents, InjectManager, MedusaContext } from "./decorators"
import { Modules } from "./definition" import { Modules } from "./definition"
import { moduleEventBuilderFactory } from "./event-builder-factory"
import { buildModelsNameToLinkableKeysMap } from "./joiner-config-builder" import { buildModelsNameToLinkableKeysMap } from "./joiner-config-builder"
import { import {
BaseMethods, BaseMethods,
@@ -31,8 +33,6 @@ import {
ModelEntries, ModelEntries,
ModelsConfigTemplate, ModelsConfigTemplate,
} from "./types/medusa-service" } from "./types/medusa-service"
import { CommonEvents } from "../event-bus"
import { moduleEventBuilderFactory } from "./event-builder-factory"
const readMethods = ["retrieve", "list", "listAndCount"] as BaseMethods[] const readMethods = ["retrieve", "list", "listAndCount"] as BaseMethods[]
const writeMethods = [ const writeMethods = [
@@ -215,7 +215,11 @@ export function MedusaService<
const serviceData = Array.isArray(data) ? data : [data] const serviceData = Array.isArray(data) ? data : [data]
const service = this.__container__[serviceRegistrationName] const service = this.__container__[serviceRegistrationName]
const models = await service.update(serviceData, sharedContext) const models = await service.update(serviceData, sharedContext)
const response = Array.isArray(data) ? models : models[0] const response = models.length
? Array.isArray(data)
? models
: models[0]
: []
klassPrototype.aggregatedEvents.bind(this)({ klassPrototype.aggregatedEvents.bind(this)({
action: CommonEvents.UPDATED, action: CommonEvents.UPDATED,
@@ -1,7 +1,7 @@
import { IRegionModuleService } from "@medusajs/framework/types" import { IRegionModuleService } from "@medusajs/framework/types"
import { Module, Modules } from "@medusajs/framework/utils" import { Module, Modules } from "@medusajs/framework/utils"
import { RegionModuleService } from "@services"
import { moduleIntegrationTestRunner } from "@medusajs/test-utils" import { moduleIntegrationTestRunner } from "@medusajs/test-utils"
import { RegionModuleService } from "@services"
jest.setTimeout(30000) jest.setTimeout(30000)
@@ -403,6 +403,32 @@ moduleIntegrationTestRunner<IRegionModuleService>({
expect(resp.countries).toHaveLength(2) expect(resp.countries).toHaveLength(2)
}) })
it("should delete a region without countries", async () => {
const createdRegion = await service.createRegions({
name: "North America",
currency_code: "USD",
countries: [],
})
await service.softDeleteRegions([createdRegion.id])
const [deletedRegion] = await service.listRegions(
{ id: createdRegion.id },
{ withDeleted: true }
)
expect(deletedRegion).toEqual({
id: createdRegion.id,
name: createdRegion.name,
currency_code: createdRegion.currency_code,
metadata: null,
automatic_taxes: createdRegion.automatic_taxes,
created_at: expect.any(Date),
updated_at: expect.any(Date),
deleted_at: expect.any(Date),
})
})
it("should unset the region ID on the country when soft deleting a region", async () => { it("should unset the region ID on the country when soft deleting a region", async () => {
const createdRegion = await service.createRegions({ const createdRegion = await service.createRegions({
name: "North America", name: "North America",