Files
medusa-store/integration-tests/plugins/factories/simple-store-factory.ts
2023-02-15 16:25:30 +01:00

39 lines
942 B
TypeScript

import { SalesChannel, Store } from "@medusajs/medusa"
import faker from "faker"
import { DataSource, Not, IsNull } from "typeorm"
export type StoreFactoryData = {
swap_link_template?: string
}
export const simpleStoreFactory = async (
dataSource: DataSource,
data: StoreFactoryData = {},
seed?: number
): Promise<Store | undefined> => {
if (typeof seed !== "undefined") {
faker.seed(seed)
}
const manager = dataSource.manager
const stores = await manager.find(Store, { where: { id: Not(IsNull()) } })
const store = stores[0]
if (!store) {
return
}
store.swap_link_template = data.swap_link_template ?? "something/{cart_id}"
await manager.insert(SalesChannel, {
id: "test-channel",
name: "Default"
})
const storeToSave = await manager.save(store)
await manager.query(`update store set default_sales_channel_id = 'test-channel' where id = '${storeToSave!.id}'`)
return storeToSave!
}