fix(index): index enum fields (#13428)

https://github.com/medusajs/medusa/issues/13372

What:
 - It handles enum fields corretly when added to filterable fields
This commit is contained in:
Carlos R. L. Rodrigues
2025-09-07 10:39:58 -03:00
committed by GitHub
parent 637d4cf7ef
commit 71d8a0031f
6 changed files with 57 additions and 6 deletions
@@ -514,6 +514,49 @@ medusaIntegrationTestRunner({
expect(resultset.data.length).toEqual(1)
expect(resultset.data[0].origin_country).toEqual("USA")
})
it("should use query.index to filter enum field", async () => {
const products = await populateData(api)
const brandModule = appContainer.resolve("brand")
const link = appContainer.resolve(ContainerRegistrationKeys.LINK)
const brand = await brandModule.createBrands({
name: "Medusa Brand",
})
await link.create({
[Modules.PRODUCT]: {
product_id: products.find((p) => p.title === "Extra product").id,
},
brand: {
brand_id: brand.id,
},
})
const query = appContainer.resolve(
ContainerRegistrationKeys.QUERY
) as RemoteQueryFunction
const resultset = await fetchAndRetry(
async () =>
await query.index({
entity: "product",
fields: ["id"],
filters: {
status: "published",
brand: {
status: "active",
},
},
}),
({ data }) => data.length > 0,
{
retries: 3,
waitSeconds: 3,
}
)
expect(resultset.data.length).toEqual(1)
})
})
},
})