fix(medusa,js-sdk,types): Add basic draft order operations to js-sdk (#11514)
**What** - Exposes `sdk.admin.draftOrder.create/update/retrieve/list` functions from the js-sdk - Implements the necessary types in the types package. - Adds missing endpoints to admin API.
This commit is contained in:
committed by
GitHub
parent
120e6f9ba6
commit
3b4997840e
@@ -0,0 +1,106 @@
|
||||
import { medusaIntegrationTestRunner } from "@medusajs/test-utils"
|
||||
import { HttpTypes } from "@medusajs/types"
|
||||
import { ModuleRegistrationName } from "@medusajs/utils"
|
||||
import {
|
||||
adminHeaders,
|
||||
createAdminUser,
|
||||
} from "../../../../helpers/create-admin-user"
|
||||
import { setupTaxStructure } from "../../../../modules/__tests__/fixtures"
|
||||
|
||||
jest.setTimeout(300000)
|
||||
|
||||
medusaIntegrationTestRunner({
|
||||
testSuite: ({ dbConnection, getContainer, api }) => {
|
||||
let region: HttpTypes.AdminRegion
|
||||
let testDraftOrder: HttpTypes.AdminDraftOrder
|
||||
|
||||
beforeEach(async () => {
|
||||
const container = getContainer()
|
||||
|
||||
await setupTaxStructure(container.resolve(ModuleRegistrationName.TAX))
|
||||
await createAdminUser(dbConnection, adminHeaders, container)
|
||||
|
||||
region = (
|
||||
await api.post(
|
||||
`/admin/regions`,
|
||||
{
|
||||
name: "USA",
|
||||
currency_code: "usd",
|
||||
countries: ["US"],
|
||||
},
|
||||
adminHeaders
|
||||
)
|
||||
).data.region
|
||||
|
||||
testDraftOrder = (
|
||||
await api.post(
|
||||
"/admin/draft-orders",
|
||||
{ email: "test@test.com", region_id: region.id },
|
||||
adminHeaders
|
||||
)
|
||||
).data.draft_order
|
||||
})
|
||||
|
||||
describe("GET /draft-orders", () => {
|
||||
it("should get a list of draft orders", async () => {
|
||||
const response = await api.get("/admin/draft-orders", adminHeaders)
|
||||
|
||||
expect(response.status).toBe(200)
|
||||
expect(response.data.draft_orders).toBeDefined()
|
||||
expect(response.data.draft_orders.length).toBe(1)
|
||||
expect(response.data.draft_orders).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
email: "test@test.com",
|
||||
}),
|
||||
])
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
describe("POST /draft-orders", () => {
|
||||
it("should create a draft order", async () => {
|
||||
const response = await api.post(
|
||||
"/admin/draft-orders",
|
||||
{
|
||||
email: "test2@test.com",
|
||||
region_id: region.id,
|
||||
},
|
||||
adminHeaders
|
||||
)
|
||||
|
||||
expect(response.status).toBe(200)
|
||||
expect(response.data.draft_order.email).toBe("test2@test.com")
|
||||
expect(response.data.draft_order.region_id).toBe(region.id)
|
||||
})
|
||||
})
|
||||
|
||||
describe("GET /draft-orders/:id", () => {
|
||||
it("should get a draft order", async () => {
|
||||
const response = await api.get(
|
||||
`/admin/draft-orders/${testDraftOrder.id}`,
|
||||
adminHeaders
|
||||
)
|
||||
|
||||
expect(response.status).toBe(200)
|
||||
expect(response.data.draft_order.email).toBe("test@test.com")
|
||||
expect(response.data.draft_order.region_id).toBe(region.id)
|
||||
})
|
||||
})
|
||||
|
||||
describe("POST /draft-orders/:id", () => {
|
||||
it("should update a draft order", async () => {
|
||||
const response = await api.post(
|
||||
`/admin/draft-orders/${testDraftOrder.id}`,
|
||||
{
|
||||
email: "test_new@test.com",
|
||||
},
|
||||
adminHeaders
|
||||
)
|
||||
|
||||
expect(response.status).toBe(200)
|
||||
expect(response.data.draft_order.email).toBe("test_new@test.com")
|
||||
})
|
||||
})
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user