* chore: Move factories and helpers to a better place * align factory product variant * fix factory cart * add simple store fac * fix tests * fix tests * fix * fix cart seeder
49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
import { DataSource } from "typeorm"
|
|
import faker from "faker"
|
|
import { ShippingTaxRate, TaxRate } from "@medusajs/medusa"
|
|
|
|
type RateFactoryData = {
|
|
region_id: string
|
|
rate?: number | null
|
|
code?: string
|
|
name?: string
|
|
}
|
|
|
|
export type ShippingTaxRateFactoryData = {
|
|
shipping_option_id: string
|
|
rate: RateFactoryData | string
|
|
}
|
|
|
|
export const simpleShippingTaxRateFactory = async (
|
|
dataSource: DataSource,
|
|
data: ShippingTaxRateFactoryData,
|
|
seed?: number
|
|
): Promise<ShippingTaxRate> => {
|
|
if (typeof seed !== "undefined") {
|
|
faker.seed(seed)
|
|
}
|
|
|
|
const manager = dataSource.manager
|
|
|
|
let rateId: string
|
|
if (typeof data.rate === "string") {
|
|
rateId = data.rate
|
|
} else {
|
|
const newRate = manager.create(TaxRate, {
|
|
region_id: data.rate.region_id,
|
|
rate: data.rate.rate,
|
|
code: data.rate.code || "sales_tax",
|
|
name: data.rate.name || "Sales Tax",
|
|
})
|
|
const rate = await manager.save(newRate)
|
|
rateId = rate.id
|
|
}
|
|
|
|
const toSave = manager.create(ShippingTaxRate, {
|
|
shipping_option_id: data.shipping_option_id,
|
|
rate_id: rateId,
|
|
})
|
|
|
|
return await manager.save(toSave)
|
|
}
|