**What** - Fixes wrong payload class for `POST /admin/shipping-profiles` - Fixes wrong payload class for `POST /admin/shipping-profiles/:id` - Fixes an issue where updating a shipping profile with products and/or shipping options would fail. - Fixes an issue where passing `profile_id` to `ShippingOptionService.update()` would not update the shipping profile of the option. **Testing** - Adds new `simpleshippingProfileFactory` - Adds new integration test suite for shipping profiles operations. Resolves CORE-1065
36 lines
928 B
TypeScript
36 lines
928 B
TypeScript
import { ShippingProfile, ShippingProfileType } from "@medusajs/medusa"
|
|
import faker from "faker"
|
|
import { Connection } from "typeorm"
|
|
|
|
export type ShippingProfileFactoryData = {
|
|
id?: string
|
|
name?: string
|
|
type?: ShippingProfileType
|
|
metadata?: Record<string, unknown>
|
|
}
|
|
|
|
export const simpleShippingProfileFactory = async (
|
|
connection: Connection,
|
|
data: ShippingOptionFactoryData = {},
|
|
seed?: number
|
|
): Promise<ShippingProfile> => {
|
|
if (typeof seed !== "undefined") {
|
|
faker.seed(seed)
|
|
}
|
|
|
|
const manager = connection.manager
|
|
|
|
const shippingProfileData = {
|
|
id: data.id ?? `simple-sp-${Math.random() * 1000}`,
|
|
name: data.name || `sp-${Math.random() * 1000}`,
|
|
type: data.type || ShippingProfileType.DEFAULT,
|
|
metadata: data.metadata,
|
|
products: [],
|
|
shipping_options: [],
|
|
}
|
|
|
|
const created = manager.create(ShippingProfile, shippingProfileData)
|
|
|
|
return await manager.save(created)
|
|
}
|