Skip to content

Commit

Permalink
fix link + add test
Browse files Browse the repository at this point in the history
  • Loading branch information
olivermrbl committed Feb 16, 2024
1 parent 1597853 commit 2225f15
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
import { ICartModuleService, IRegionModuleService } from "@medusajs/types"
import path from "path"
import { startBootstrapApp } from "../../../environment-helpers/bootstrap-app"
import { getContainer } from "../../../environment-helpers/use-container"
import { initDb, useDb } from "../../../environment-helpers/use-db"
import adminSeeder from "../../../helpers/admin-seeder"

jest.setTimeout(50000)

const env = { MEDUSA_FF_MEDUSA_V2: true }

describe("Link: Cart Region", () => {
let dbConnection
let appContainer
let shutdownServer
let cartModuleService: ICartModuleService
let regionModule: IRegionModuleService
let remoteQuery

beforeAll(async () => {
const cwd = path.resolve(path.join(__dirname, "..", ".."))
dbConnection = await initDb({ cwd, env } as any)
shutdownServer = await startBootstrapApp({ cwd, env })
appContainer = getContainer()
cartModuleService = appContainer.resolve(ModuleRegistrationName.CART)
regionModule = appContainer.resolve(ModuleRegistrationName.REGION)
remoteQuery = appContainer.resolve("remoteQuery")
})

afterAll(async () => {
const db = useDb()
await db.shutdown()
await shutdownServer()
})

beforeEach(async () => {
await adminSeeder(dbConnection)

// @ts-ignore
await regionModule.createDefaultCountriesAndCurrencies()
})

afterEach(async () => {
const db = useDb()
await db.teardown()
})

it("should query carts and regions with remote query", async () => {
const region = await regionModule.create({
name: "Region",
currency_code: "usd",
})

const cart = await cartModuleService.create({
email: "[email protected]",
currency_code: "usd",
region_id: region.id,
})

const carts = await remoteQuery({
cart: {
fields: ["id"],
region: {
fields: ["id"],
},
},
})

const regions = await remoteQuery({
region: {
fields: ["id"],
carts: {
fields: ["id"],
},
},
})

expect(carts).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: cart.id,
region: expect.objectContaining({ id: region.id }),
}),
])
)

expect(regions).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: region.id,
carts: expect.arrayContaining([
expect.objectContaining({ id: cart.id }),
]),
}),
])
)
})
})
4 changes: 2 additions & 2 deletions packages/link-modules/src/definitions/cart-region.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ export const CartRegion: ModuleJoinerConfig = {
serviceName: Modules.REGION,
relationship: {
serviceName: Modules.CART,
primaryKey: "id",
foreignKey: "cart_id",
primaryKey: "region_id",
foreignKey: "id",
alias: "carts",
isList: true,
},
Expand Down

0 comments on commit 2225f15

Please sign in to comment.