Skip to content

Commit 1890554

Browse files
committed
feat: added more tests
1 parent f254768 commit 1890554

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

src/__tests__/polymorphic.repository.spec.ts

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@ describe('AbstractPolymorphicRepository', () => {
4242
});
4343

4444
describe('Childen', () => {
45+
// describe('helper methods', () => {
46+
// it('Is child', async () => {
47+
// const repository: AdvertRepository = connection.getCustomRepository(AdvertRepository);
48+
49+
// expect(repository.isChildren({})).toBeTruthy();
50+
// });
51+
// });
52+
4553
describe('create', () => {
4654
it('Can create with parent', async () => {
4755
const repository = connection.getCustomRepository(AdvertRepository);
@@ -77,6 +85,82 @@ describe('AbstractPolymorphicRepository', () => {
7785
expect(result.entityType).toBe(UserEntity.name);
7886
expect(result.entityId).toBe(result.owner.id);
7987
});
88+
89+
it('Can save many with cascade parent', async () => {
90+
const repository = connection.getCustomRepository(AdvertRepository);
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+
repository.create({
100+
owner: user,
101+
}),
102+
]);
103+
104+
result.forEach((res) => {
105+
expect(res).toBeInstanceOf(AdvertEntity);
106+
expect(res.owner).toBeInstanceOf(UserEntity);
107+
expect(res.id).toBeTruthy();
108+
expect(res.owner.id).toBeTruthy();
109+
expect(res.entityType).toBe(UserEntity.name);
110+
expect(res.entityId).toBe(res.owner.id);
111+
});
112+
});
113+
});
114+
115+
describe('findOne', () => {
116+
it('Can find entity with parent', async () => {
117+
const repository = connection.getCustomRepository(AdvertRepository);
118+
const userRepository = connection.getRepository(UserEntity);
119+
120+
const user = await userRepository.save(new UserEntity());
121+
122+
const advert = await repository.save(
123+
repository.create({
124+
owner: user,
125+
}),
126+
);
127+
128+
const result = await repository.findOne(advert.id);
129+
130+
expect(result).toBeInstanceOf(AdvertEntity);
131+
expect(result.owner).toBeInstanceOf(UserEntity);
132+
expect(result.owner.id).toBe(result.entityId);
133+
expect(result.entityType).toBe(UserEntity.name);
134+
});
135+
});
136+
137+
describe('find', () => {
138+
it('Can find entities with parent', async () => {
139+
const repository = connection.getCustomRepository(AdvertRepository);
140+
const userRepository = connection.getRepository(UserEntity);
141+
142+
const user = await userRepository.save(new UserEntity());
143+
144+
await repository.save([
145+
repository.create({
146+
owner: user,
147+
}),
148+
repository.create({
149+
owner: user,
150+
}),
151+
]);
152+
153+
const result = await repository.find();
154+
155+
result.forEach((res) => {
156+
expect(res).toBeInstanceOf(AdvertEntity);
157+
expect(res.owner).toBeInstanceOf(UserEntity);
158+
expect(res.id).toBeTruthy();
159+
expect(res.owner.id).toBeTruthy();
160+
expect(res.entityType).toBe(UserEntity.name);
161+
expect(res.entityId).toBe(res.owner.id);
162+
});
163+
});
80164
});
81165
});
82166
});

0 commit comments

Comments
 (0)