diff --git a/packages/core/utils/src/dal/mikro-orm/mikro-orm-repository.ts b/packages/core/utils/src/dal/mikro-orm/mikro-orm-repository.ts index 5210b1f16c..6b7e03da32 100644 --- a/packages/core/utils/src/dal/mikro-orm/mikro-orm-repository.ts +++ b/packages/core/utils/src/dal/mikro-orm/mikro-orm-repository.ts @@ -54,7 +54,7 @@ export class MikroOrmBase { transactionManager, manager, }: Context = {}): TManager { - return (transactionManager ?? manager ?? this.manager_) as TManager + return (transactionManager ?? manager ?? this.getFreshManager()) as TManager } async transaction( diff --git a/packages/modules/product/integration-tests/__tests__/product-category.ts b/packages/modules/product/integration-tests/__tests__/product-category.ts index 77aafe8b14..5c66a95972 100644 --- a/packages/modules/product/integration-tests/__tests__/product-category.ts +++ b/packages/modules/product/integration-tests/__tests__/product-category.ts @@ -235,38 +235,38 @@ moduleIntegrationTestRunner({ mpath: "electronics.computers.laptops.gaming-laptops.high-performance.4k-gaming", parent_category_id: "high-performance", - parent_category: { + parent_category: expect.objectContaining({ id: "high-performance", parent_category_id: "gaming-laptops", handle: "high-performance-gaming-laptops", mpath: "electronics.computers.laptops.gaming-laptops.high-performance", - parent_category: { + parent_category: expect.objectContaining({ id: "gaming-laptops", handle: "gaming-laptops", mpath: "electronics.computers.laptops.gaming-laptops", parent_category_id: "laptops", - parent_category: { + parent_category: expect.objectContaining({ id: "laptops", parent_category_id: "computers", handle: "laptops", mpath: "electronics.computers.laptops", - parent_category: { + parent_category: expect.objectContaining({ id: "computers", handle: "computers-&-accessories", mpath: "electronics.computers", parent_category_id: "electronics", - parent_category: { + parent_category: expect.objectContaining({ id: "electronics", parent_category_id: null, handle: "electronics", mpath: "electronics", parent_category: null, - }, - }, - }, - }, - }, + }), + }), + }), + }), + }), }, ]) }) @@ -421,38 +421,38 @@ moduleIntegrationTestRunner({ handle: "category-1-a", mpath: "category-0.category-1.category-1-a", parent_category_id: "category-1", - parent_category: { + parent_category: expect.objectContaining({ id: "category-1", handle: "category-1", mpath: "category-0.category-1", parent_category_id: "category-0", - parent_category: { + parent_category: expect.objectContaining({ id: "category-0", handle: "category-0", mpath: "category-0", parent_category_id: null, parent_category: null, - }, - }, + }), + }), }, { id: "category-1-b", handle: "category-1-b", mpath: "category-0.category-1.category-1-b", parent_category_id: "category-1", - parent_category: { + parent_category: expect.objectContaining({ id: "category-1", handle: "category-1", mpath: "category-0.category-1", parent_category_id: "category-0", - parent_category: { + parent_category: expect.objectContaining({ id: "category-0", handle: "category-0", mpath: "category-0", parent_category_id: null, parent_category: null, - }, - }, + }), + }), }, ]) }) @@ -469,29 +469,25 @@ moduleIntegrationTestRunner({ } ) - const serializedObject = JSON.parse( - JSON.stringify(productCategoryResults) - ) - - expect(serializedObject).toEqual([ + expect(productCategoryResults).toEqual([ { id: "category-1-a", handle: "category-1-a", mpath: "category-0.category-1.category-1-a", parent_category_id: "category-1", - parent_category: { + parent_category: expect.objectContaining({ id: "category-1", handle: "category-1", mpath: "category-0.category-1", parent_category_id: "category-0", - parent_category: { + parent_category: expect.objectContaining({ id: "category-0", handle: "category-0", mpath: "category-0", parent_category_id: null, parent_category: null, - }, - }, + }), + }), category_children: [], }, { @@ -499,26 +495,26 @@ moduleIntegrationTestRunner({ handle: "category-1-b", mpath: "category-0.category-1.category-1-b", parent_category_id: "category-1", - parent_category: { + parent_category: expect.objectContaining({ id: "category-1", handle: "category-1", mpath: "category-0.category-1", parent_category_id: "category-0", - parent_category: { + parent_category: expect.objectContaining({ id: "category-0", handle: "category-0", mpath: "category-0", parent_category_id: null, parent_category: null, - }, - }, + }), + }), category_children: [ - { + expect.objectContaining({ id: "category-1-b-1", handle: "category-1-b-1", mpath: "category-0.category-1.category-1-b.category-1-b-1", parent_category_id: "category-1-b", - }, + }), ], }, ]) diff --git a/packages/modules/product/src/repositories/product-category.ts b/packages/modules/product/src/repositories/product-category.ts index 249d4ccd26..b3374d1aeb 100644 --- a/packages/modules/product/src/repositories/product-category.ts +++ b/packages/modules/product/src/repositories/product-category.ts @@ -6,9 +6,9 @@ import { } from "@medusajs/framework/types" import { DALUtils, isDefined, MedusaError } from "@medusajs/framework/utils" import { - LoadStrategy, FilterQuery as MikroFilterQuery, FindOptions as MikroOptions, + LoadStrategy, } from "@mikro-orm/core" import { SqlEntityManager } from "@mikro-orm/postgresql" import { ProductCategory } from "@models" @@ -93,7 +93,8 @@ export class ProductCategoryRepository extends DALUtils.MikroOrmBaseTreeReposito ancestors: transformOptions.includeAncestorsTree, }, productCategories, - findOptions_ + findOptions_, + context ) return this.sortCategoriesByRank(categoriesTree) @@ -250,7 +251,8 @@ export class ProductCategoryRepository extends DALUtils.MikroOrmBaseTreeReposito ancestors: transformOptions.includeAncestorsTree, }, productCategories, - findOptions_ + findOptions_, + context ) return [this.sortCategoriesByRank(categoriesTree), count]