Skip to content

Commit 0db9b2e

Browse files
authored
Merge pull request #49 from solanamonk/fix_save_parent_on_update
fix: save parent on update
2 parents da645cd + 6086968 commit 0db9b2e

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

src/__tests__/polymorphic.repository.spec.ts

+27
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,33 @@ describe('AbstractPolymorphicRepository', () => {
8383
expect(result.entityId).toBe(result.owner.id);
8484
});
8585

86+
it('Can update parent', async () => {
87+
const repository = AbstractPolymorphicRepository.createRepository(
88+
connection,
89+
AdvertRepository,
90+
);
91+
const userRepository = connection.getRepository(UserEntity);
92+
93+
const user = await userRepository.save(new UserEntity());
94+
95+
const result = await repository.save(
96+
repository.create({
97+
owner: user,
98+
}),
99+
);
100+
101+
const otherUser = await userRepository.save(new UserEntity());
102+
result.owner = otherUser;
103+
await repository.save(result);
104+
105+
expect(result).toBeInstanceOf(AdvertEntity);
106+
expect(result.owner).toBeInstanceOf(UserEntity);
107+
expect(result.id).toBeTruthy();
108+
expect(result.owner.id).toBeTruthy();
109+
expect(result.entityType).toBe(UserEntity.name);
110+
expect(result.entityId).toBe(otherUser.id);
111+
});
112+
86113
it('Can save many with cascade parent', async () => {
87114
const repository = AbstractPolymorphicRepository.createRepository(
88115
connection,

src/polymorphic.repository.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ export abstract class AbstractPolymorphicRepository<
262262
).map((entity: E | DeepPartial<E>) => {
263263
const parent = entity[options.propertyKey];
264264

265-
if (!parent || entity[entityIdColumn(options)] !== undefined) {
265+
if (!parent) {
266266
return entity;
267267
}
268268

0 commit comments

Comments
 (0)