From 7cf0d6ebffb21009192bde6e3b1b40a311700915 Mon Sep 17 00:00:00 2001 From: Gregor Becker Date: Mon, 27 Mar 2023 08:55:26 +0200 Subject: [PATCH] fix(pinia-orm): `$refresh()` is not working (#1125) closes #1124 --- packages/pinia-orm/src/model/Model.ts | 6 +++++- packages/pinia-orm/tests/unit/model/Model.spec.ts | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/pinia-orm/src/model/Model.ts b/packages/pinia-orm/src/model/Model.ts index b91cb85c3..d023c7ee9 100644 --- a/packages/pinia-orm/src/model/Model.ts +++ b/packages/pinia-orm/src/model/Model.ts @@ -937,7 +937,11 @@ export class Model { * Return the model instance with its original state */ $refresh(): this { - this.$isDirty() && this.$fill(this.$getOriginal(), { action: 'save', relations: false, operation: 'set' }) + if (this.$isDirty()) { + Object.entries(this.$getOriginal()).forEach((entry) => { + this[entry[0]] = entry[1] + }) + } return this } diff --git a/packages/pinia-orm/tests/unit/model/Model.spec.ts b/packages/pinia-orm/tests/unit/model/Model.spec.ts index a0a53396c..afb01ebb7 100644 --- a/packages/pinia-orm/tests/unit/model/Model.spec.ts +++ b/packages/pinia-orm/tests/unit/model/Model.spec.ts @@ -37,6 +37,7 @@ describe('unit/model/Model', () => { expect(user.$isDirty('id')).toBeFalsy() user.$refresh() expect(user.$isDirty()).toBeFalsy() + expect(user.lastName).toBe('John Doe') expect(() => user.$isDirty('name')).toThrowError() }) })