feat(): Backport metadata management (#11469)

FIXES FRMW-2915

**What**
Backport metadata management. all the metadata get preserved unless a specific empty string is provided for the key which in turn would remove that key from the metadata
This commit is contained in:
Adrien de Peretti
2025-02-17 09:14:53 +00:00
committed by GitHub
parent a5ff1b92ce
commit 63f0774569
7 changed files with 171 additions and 4 deletions
@@ -216,7 +216,7 @@ medusaIntegrationTestRunner({
first_name: "newf",
last_name: "newl",
email: "new@email.com",
metadata: { foo: "bar" },
metadata: { foo: "bar", bar: "bar", baz: "baz" },
},
adminHeaders
)
@@ -230,7 +230,51 @@ medusaIntegrationTestRunner({
first_name: "newf",
last_name: "newl",
email: "new@email.com",
metadata: { foo: "bar" },
metadata: { foo: "bar", bar: "bar", baz: "baz" },
})
)
})
it("should correctly update customer metadata", async () => {
let response = await api.post(
`/admin/customers/${customer3.id}`,
{
first_name: "newf",
last_name: "newl",
email: "new@email.com",
metadata: { foo: "bar", bar: "bar", baz: "baz" },
},
adminHeaders
)
expect(response.data.customer).toEqual(
expect.objectContaining({
first_name: "newf",
last_name: "newl",
email: "new@email.com",
metadata: { foo: "bar", bar: "bar", baz: "baz" },
})
)
response = await api
.post(
`/admin/customers/${customer3.id}`,
{
metadata: { foo: "", bar: "bar2", baz2: "baz2" },
},
adminHeaders
)
.catch((err) => {
console.log(err)
})
expect(response.status).toEqual(200)
expect(response.data.customer).toEqual(
expect.objectContaining({
first_name: "newf",
last_name: "newl",
email: "new@email.com",
metadata: { bar: "bar2", baz: "baz", baz2: "baz2" },
})
)
})