Skip to content

Commit 6086968

Browse files
committedMar 20, 2024
fix: save parent on update
1 parent 9663935 commit 6086968

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
@@ -86,6 +86,33 @@ describe('AbstractPolymorphicRepository', () => {
8686
expect(result.entityId).toBe(result.owner.id);
8787
});
8888

89+
it('Can update parent', async () => {
90+
const repository = AbstractPolymorphicRepository.createRepository(
91+
connection,
92+
AdvertRepository,
93+
);
94+
const userRepository = connection.getRepository(UserEntity);
95+
96+
const user = await userRepository.save(new UserEntity());
97+
98+
const result = await repository.save(
99+
repository.create({
100+
owner: user,
101+
}),
102+
);
103+
104+
const otherUser = await userRepository.save(new UserEntity());
105+
result.owner = otherUser;
106+
await repository.save(result);
107+
108+
expect(result).toBeInstanceOf(AdvertEntity);
109+
expect(result.owner).toBeInstanceOf(UserEntity);
110+
expect(result.id).toBeTruthy();
111+
expect(result.owner.id).toBeTruthy();
112+
expect(result.entityType).toBe(UserEntity.name);
113+
expect(result.entityId).toBe(otherUser.id);
114+
});
115+
89116
it('Can save many with cascade parent', async () => {
90117
const repository = AbstractPolymorphicRepository.createRepository(
91118
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)