chore: Remove typeORM (#9005)
* chore: rename js files to txt * chore: rename ts files to txt * chore: delete environment helpers * chore: convert global setup & teardown to txt * chore: rename helper js/ts files to txt * chore: rename seeder js/ts files to txt * chore: remove typeorm * chore: reintroduce used helpers
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
import {
|
||||
MoneyAmount,
|
||||
ProductOptionValue,
|
||||
ProductVariant,
|
||||
ProductVariantMoneyAmount,
|
||||
} from "@medusajs/medusa"
|
||||
|
||||
import { DataSource } from "typeorm"
|
||||
import faker from "faker"
|
||||
import { breaking } from "../helpers/breaking"
|
||||
|
||||
export type ProductVariantFactoryData = {
|
||||
product_id: string
|
||||
id?: string
|
||||
is_giftcard?: boolean
|
||||
sku?: string
|
||||
manage_inventory?: boolean
|
||||
inventory_quantity?: number
|
||||
title?: string
|
||||
allow_backorder?: boolean
|
||||
options?: { option_id: string; value: string }[]
|
||||
prices?: { currency: string; amount: number; region_id?: string }[]
|
||||
}
|
||||
|
||||
export const simpleProductVariantFactory = async (
|
||||
dataSource: DataSource,
|
||||
data: ProductVariantFactoryData,
|
||||
seed?: number
|
||||
): Promise<ProductVariant> => {
|
||||
if (typeof seed !== "undefined") {
|
||||
faker.seed(seed)
|
||||
}
|
||||
|
||||
const manager = dataSource.manager
|
||||
|
||||
const id = data.id || `simple-variant-${Math.random() * 1000}`
|
||||
|
||||
const toSave = await manager.create(ProductVariant, {
|
||||
id,
|
||||
product_id: data.product_id,
|
||||
sku: data.sku,
|
||||
allow_backorder: data.allow_backorder ?? false,
|
||||
manage_inventory:
|
||||
typeof data.manage_inventory !== "undefined"
|
||||
? data.manage_inventory
|
||||
: true,
|
||||
inventory_quantity:
|
||||
typeof data.inventory_quantity !== "undefined"
|
||||
? data.inventory_quantity
|
||||
: 10,
|
||||
title: data.title || faker.commerce.productName(),
|
||||
})
|
||||
|
||||
const variant = await manager.save(toSave)
|
||||
|
||||
const options = data.options || [{ option_id: "test-option", value: "Large" }]
|
||||
for (const o of options) {
|
||||
await manager.insert(ProductOptionValue, {
|
||||
id: `${variant.id}-${o.option_id ?? Math.random()}`,
|
||||
value: o.value,
|
||||
variant_id: id,
|
||||
option_id: o.option_id,
|
||||
})
|
||||
}
|
||||
|
||||
await breaking(async () => {
|
||||
const prices = data.prices || [{ currency: "usd", amount: 100 }]
|
||||
for (const p of prices) {
|
||||
const ma_id = `${p.currency}-${p.amount}-${Math.random()}`
|
||||
await manager.insert(MoneyAmount, {
|
||||
id: ma_id,
|
||||
currency_code: p.currency,
|
||||
amount: p.amount,
|
||||
region_id: p.region_id,
|
||||
})
|
||||
|
||||
await manager.insert(ProductVariantMoneyAmount, {
|
||||
id: `${ma_id}-${id}-${Math.random()}`,
|
||||
money_amount_id: ma_id,
|
||||
variant_id: id,
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
return variant
|
||||
}
|
||||
Reference in New Issue
Block a user