import { SalesChannel, Store } from "@medusajs/medusa" import faker from "faker" import { DataSource, IsNull, Not } from "typeorm" export type StoreFactoryData = { swap_link_template?: string } export const simpleStoreFactory = async ( dataSource: DataSource, data: StoreFactoryData = {}, seed?: number ): Promise => { 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! }