From 60070fb65fa58872219a1145a8eace837f0cafde Mon Sep 17 00:00:00 2001 From: "Carlos R. L. Rodrigues" <37986729+carlos-r-l-rodrigues@users.noreply.github.com> Date: Wed, 20 Mar 2024 15:12:48 -0300 Subject: [PATCH] fix(link-modules): recreate dismissed link (#6764) * fix(link-modules): recreate dismissed link * rm type --------- Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com> --- .changeset/happy-llamas-breathe.md | 5 ++++ .../modules/__tests__/link-modules/index.ts | 29 +++++++++++++++++++ .../link-modules/src/repositories/link.ts | 1 + .../link-modules/src/utils/generate-entity.ts | 7 +++++ 4 files changed, 42 insertions(+) create mode 100644 .changeset/happy-llamas-breathe.md diff --git a/.changeset/happy-llamas-breathe.md b/.changeset/happy-llamas-breathe.md new file mode 100644 index 0000000000..e7ad715440 --- /dev/null +++ b/.changeset/happy-llamas-breathe.md @@ -0,0 +1,5 @@ +--- +"@medusajs/link-modules": patch +--- + +Recreate dismissed link diff --git a/integration-tests/modules/__tests__/link-modules/index.ts b/integration-tests/modules/__tests__/link-modules/index.ts index 6d3b2f9715..2fdeb56dcf 100644 --- a/integration-tests/modules/__tests__/link-modules/index.ts +++ b/integration-tests/modules/__tests__/link-modules/index.ts @@ -238,6 +238,35 @@ medusaIntegrationTestRunner({ }), ]) }) + + it("Should dismiss the link of a given pair of keys and recreate it", async function () { + await links.linkServiceName.create("123", "abc", { + extra_field: 333, + another_field: "value**", + }) + + await links.linkServiceName.dismiss("123", "abc") + + const values = await links.linkServiceName.list() + + expect(values).toHaveLength(0) + + await links.linkServiceName.create("123", "abc", { + another_field: "changed", + }) + + const values2 = await links.linkServiceName.list() + + expect(values2).toEqual([ + expect.objectContaining({ + product_id: "123", + inventory_item_id: "abc", + extra_field: 333, + another_field: "changed", + deleted_at: null, + }), + ]) + }) }) }, }) diff --git a/packages/link-modules/src/repositories/link.ts b/packages/link-modules/src/repositories/link.ts index ee64ccf500..04ff247fcc 100644 --- a/packages/link-modules/src/repositories/link.ts +++ b/packages/link-modules/src/repositories/link.ts @@ -37,6 +37,7 @@ export function getLinkRepository(model: EntitySchema) { link.id, this.joinerConfig_.databaseConfig?.idPrefix ?? "link" ) + link.deleted_at = null return manager.create(model, link) }) diff --git a/packages/link-modules/src/utils/generate-entity.ts b/packages/link-modules/src/utils/generate-entity.ts index 19f49a96fc..8b5b9fc3e5 100644 --- a/packages/link-modules/src/utils/generate-entity.ts +++ b/packages/link-modules/src/utils/generate-entity.ts @@ -84,6 +84,13 @@ export function generateEntity( filters: { [SoftDeletableFilterKey]: mikroOrmSoftDeletableFilterOptions, }, + hooks: { + beforeUpdate: [ + (args) => { + args.entity.updated_at = new Date() + }, + ], + }, indexes: [ { properties: ["id"],