const { Customer, Region, Cart, DiscountRule, Discount, ShippingProfile, ShippingOption, ShippingMethod, Address, } = require("@medusajs/medusa"); module.exports = async (connection, data = {}) => { const manager = connection.manager; const defaultProfile = await manager.findOne(ShippingProfile, { type: "default", }); await manager.insert(Address, { id: "test-general-address", first_name: "superman", country_code: "us", }); const r = manager.create(Region, { id: "test-region", name: "Test Region", currency_code: "usd", tax_rate: 0, }); const freeRule = manager.create(DiscountRule, { id: "free-shipping-rule", description: "Free shipping rule", type: "free_shipping", value: 100, allocation: "total", }); const freeDisc = manager.create(Discount, { id: "free-shipping", code: "FREE_SHIPPING", is_dynamic: false, is_disabled: false, }); freeDisc.regions = [r]; freeDisc.rule = freeRule; await manager.save(freeDisc); const d = await manager.create(Discount, { id: "test-discount", code: "CREATED", is_dynamic: false, is_disabled: false, }); const dr = await manager.create(DiscountRule, { id: "test-discount-rule", description: "Created", type: "fixed", value: 10000, allocation: "total", }); d.rule = dr; d.regions = [r]; await manager.save(d); await manager.query( `UPDATE "country" SET region_id='test-region' WHERE iso_2 = 'us'` ); await manager.insert(Customer, { id: "test-customer", email: "test@email.com", }); await manager.insert(Customer, { id: "test-customer-2", email: "test-2@email.com", }); await manager.insert(Customer, { id: "some-customer", email: "some-customer@email.com", }); await manager.insert(ShippingOption, { id: "test-option", name: "test-option", provider_id: "test-ful", region_id: "test-region", profile_id: defaultProfile.id, price_type: "flat_rate", amount: 1000, data: {}, }); const cart = manager.create(Cart, { id: "test-cart", customer_id: "some-customer", email: "some-customer@email.com", shipping_address: { id: "test-shipping-address", first_name: "lebron", country_code: "us", }, region_id: "test-region", currency_code: "usd", items: [], }); await manager.save(cart); await manager.insert(ShippingMethod, { id: "test-method", shipping_option_id: "test-option", cart_id: "test-cart", price: 1000, data: {}, }); };