Files
medusa-store/integration-tests/api/factories/simple-shipping-profile-factory.ts
Kasper Fabricius Kristensen d0adaf57ed fix(medusa): Shipping profile CRUD (#3154)
**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
2023-02-06 16:57:12 +00:00

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)
}