fix(medusa): Fix get-query-config backward compatiblity (#6913)

This commit is contained in:
Adrien de Peretti
2024-04-03 17:14:29 +02:00
committed by GitHub
parent 56c04f452c
commit 49f16ab08d
3 changed files with 118 additions and 14 deletions
@@ -382,6 +382,57 @@ describe("transformQuery", () => {
],
})
)
//////////////////////////////
mockRequest = {
query: {
fields: "store.name",
},
} as unknown as Request
queryConfig = {
defaultFields: [
"id",
"created_at",
"deleted_at",
"metadata.id",
"metadata.parent.id",
"metadata.children.id",
"metadata.product.id",
],
allowedFields: [
"id",
"created_at",
"updated_at",
"deleted_at",
"metadata.id",
"metadata.parent.id",
"metadata.children.id",
"metadata.product.id",
"product",
"product.variants",
"store.name",
],
allowedRelations: ["metadata", "product"],
isList: true,
}
middleware = transformQuery(extendedFindParamsMixin(), queryConfig)
await middleware(mockRequest, mockResponse, nextFunction)
expect(mockRequest.listConfig).toEqual(
expect.objectContaining({
select: ["store.name", "created_at", "id"],
relations: ["store"],
})
)
expect(mockRequest.remoteQueryConfig).toEqual(
expect.objectContaining({
fields: ["store.name", "created_at", "id"],
})
)
})
it("should throw when attempting to transform the input if disallowed fields are requested", async () => {
@@ -491,6 +542,52 @@ describe("transformQuery", () => {
//////////////////////////////
mockRequest = {
query: {
expand: "store",
},
} as unknown as Request
queryConfig = {
defaultFields: [
"id",
"created_at",
"deleted_at",
"metadata.id",
"metadata.parent.id",
"metadata.children.id",
"metadata.product.id",
],
allowedFields: [
"id",
"created_at",
"updated_at",
"deleted_at",
"metadata.id",
"metadata.parent.id",
"metadata.children.id",
"metadata.product.id",
"product",
"product.variants",
"store.name",
],
allowedRelations: ["metadata", "product"],
isList: true,
}
middleware = transformQuery(extendedFindParamsMixin(), queryConfig)
await middleware(mockRequest, mockResponse, nextFunction)
expect(nextFunction).toHaveBeenCalledWith(
new MedusaError(
MedusaError.Types.INVALID_DATA,
`Requested fields [store] are not valid`
)
)
//////////////////////////////
mockRequest = {
query: {
fields: "*product",