chore: Migrate modules to use the Module util (#7964)
**What** Apply the `Module` util to each module to handle the export and provide the linkable configuration object. - Most joiner config that does not have any special config are removed/cleaned up in favor of the autogenerated one or simpler one - linkable are now available in all modules - cleaned up the dependencies of the modules FIXES CORE-2410
This commit is contained in:
committed by
GitHub
parent
eafa3560ae
commit
b368251ca3
@@ -9,9 +9,13 @@ import {
|
||||
} from "../__fixtures__/product"
|
||||
|
||||
import { IProductModuleService, ProductDTO } from "@medusajs/types"
|
||||
import { kebabCase, Modules, ProductStatus } from "@medusajs/utils"
|
||||
import { kebabCase, Module, Modules, ProductStatus } from "@medusajs/utils"
|
||||
import { SqlEntityManager } from "@mikro-orm/postgresql"
|
||||
import { ProductCategoryService, ProductService } from "@services"
|
||||
import {
|
||||
ProductCategoryService,
|
||||
ProductModuleService,
|
||||
ProductService,
|
||||
} from "@services"
|
||||
import { moduleIntegrationTestRunner } from "medusa-test-utils"
|
||||
import {
|
||||
categoriesData,
|
||||
@@ -37,6 +41,94 @@ moduleIntegrationTestRunner<Service>({
|
||||
categoryService = moduleService.productCategoryService_
|
||||
})
|
||||
|
||||
it(`should export the appropriate linkable configuration`, () => {
|
||||
const linkable = Module(Modules.PRODUCT, {
|
||||
service: ProductModuleService,
|
||||
}).linkable
|
||||
|
||||
expect(Object.keys(linkable)).toEqual([
|
||||
"product",
|
||||
"productVariant",
|
||||
"productOption",
|
||||
"productType",
|
||||
"productImage",
|
||||
"productTag",
|
||||
"productCollection",
|
||||
"productCategory",
|
||||
])
|
||||
|
||||
Object.keys(linkable).forEach((key) => {
|
||||
delete linkable[key].toJSON
|
||||
})
|
||||
|
||||
expect(linkable).toEqual({
|
||||
product: {
|
||||
id: {
|
||||
linkable: "product_id",
|
||||
primaryKey: "id",
|
||||
serviceName: "productService",
|
||||
field: "product",
|
||||
},
|
||||
},
|
||||
productVariant: {
|
||||
id: {
|
||||
linkable: "product_variant_id",
|
||||
primaryKey: "id",
|
||||
serviceName: "productService",
|
||||
field: "productVariant",
|
||||
},
|
||||
},
|
||||
productOption: {
|
||||
id: {
|
||||
linkable: "product_option_id",
|
||||
primaryKey: "id",
|
||||
serviceName: "productService",
|
||||
field: "productOption",
|
||||
},
|
||||
},
|
||||
productType: {
|
||||
id: {
|
||||
linkable: "product_type_id",
|
||||
primaryKey: "id",
|
||||
serviceName: "productService",
|
||||
field: "productType",
|
||||
},
|
||||
},
|
||||
productImage: {
|
||||
id: {
|
||||
linkable: "product_image_id",
|
||||
primaryKey: "id",
|
||||
serviceName: "productService",
|
||||
field: "productImage",
|
||||
},
|
||||
},
|
||||
productTag: {
|
||||
id: {
|
||||
linkable: "product_tag_id",
|
||||
primaryKey: "id",
|
||||
serviceName: "productService",
|
||||
field: "productTag",
|
||||
},
|
||||
},
|
||||
productCollection: {
|
||||
id: {
|
||||
linkable: "product_collection_id",
|
||||
primaryKey: "id",
|
||||
serviceName: "productService",
|
||||
field: "productCollection",
|
||||
},
|
||||
},
|
||||
productCategory: {
|
||||
id: {
|
||||
linkable: "product_category_id",
|
||||
primaryKey: "id",
|
||||
serviceName: "productService",
|
||||
field: "productCategory",
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
describe("Product Service", () => {
|
||||
let testManager: SqlEntityManager
|
||||
let products!: Product[]
|
||||
|
||||
Reference in New Issue
Block a user