fix(medusa): Allow filtering by handle and title as arrays (#11472)
**What** - Allows filtering products in the Store API with an array value for both `handle` and `title`. RESOLVES SUP-893
This commit is contained in:
1 parent
9f39cd19f8
commit
825b8ad260
3 files changed
+35
-2
No files matched your search
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/medusa": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix(medusa): Allow filtering products by handle and title as either string or array of strings
|
||||||
@@ -862,6 +862,34 @@ medusaIntegrationTestRunner({
|
|||||||
])
|
])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("returns a list of products with one of the given handles", async () => {
|
||||||
|
const response = await api.get(
|
||||||
|
`/store/products?handle[]=${product.handle}&handle[]=${product2.handle}`,
|
||||||
|
storeHeaders
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(response.status).toEqual(200)
|
||||||
|
expect(response.data.count).toEqual(2)
|
||||||
|
expect(response.data.products).toEqual([
|
||||||
|
expect.objectContaining({ id: product.id }),
|
||||||
|
expect.objectContaining({ id: product2.id }),
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
||||||
|
it("returns a list of products with one of the given titles", async () => {
|
||||||
|
const response = await api.get(
|
||||||
|
`/store/products?title[]=${product.title}&title[]=${product2.title}`,
|
||||||
|
storeHeaders
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(response.status).toEqual(200)
|
||||||
|
expect(response.data.count).toEqual(2)
|
||||||
|
expect(response.data.products).toEqual([
|
||||||
|
expect.objectContaining({ id: product.id }),
|
||||||
|
expect.objectContaining({ id: product2.id }),
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
||||||
// TODO: Not implemented yet
|
// TODO: Not implemented yet
|
||||||
it.skip("returns gift card product", async () => {
|
it.skip("returns gift card product", async () => {
|
||||||
const response = await api
|
const response = await api
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ export const ProductStatusEnum = z.nativeEnum(ProductStatus)
|
|||||||
export const StoreGetProductParamsDirectFields = z.object({
|
export const StoreGetProductParamsDirectFields = z.object({
|
||||||
q: z.string().optional(),
|
q: z.string().optional(),
|
||||||
id: z.union([z.string(), z.array(z.string())]).optional(),
|
id: z.union([z.string(), z.array(z.string())]).optional(),
|
||||||
title: z.string().optional(),
|
title: z.union([z.string(), z.array(z.string())]).optional(),
|
||||||
handle: z.string().optional(),
|
handle: z.union([z.string(), z.array(z.string())]).optional(),
|
||||||
is_giftcard: booleanString().optional(),
|
is_giftcard: booleanString().optional(),
|
||||||
category_id: z.union([z.string(), z.array(z.string())]).optional(),
|
category_id: z.union([z.string(), z.array(z.string())]).optional(),
|
||||||
external_id: z.union([z.string(), z.array(z.string())]).optional(),
|
external_id: z.union([z.string(), z.array(z.string())]).optional(),
|
||||||
|
|||||||
Reference in new issue
Block a user