@@ -10,9 +10,6 @@ import { MerchantEntity } from './entities/merchant.entity';
10
10
describe ( 'AbstractPolymorphicRepository' , ( ) => {
11
11
let connection : DataSource ;
12
12
13
- let userRepository : Repository < UserEntity > ;
14
- let repository : AbstractPolymorphicRepository < AdvertEntity > ;
15
-
16
13
beforeAll ( async ( ) => {
17
14
config ( {
18
15
path : resolve ( __dirname , '.' , '..' , '..' , '.env' ) ,
@@ -33,14 +30,14 @@ describe('AbstractPolymorphicRepository', () => {
33
30
34
31
afterAll ( async ( ) => {
35
32
await connection . destroy ( ) ;
33
+ } ) ;
34
+
35
+ afterEach ( async ( ) => {
36
+ const userRepository = connection . getRepository ( UserEntity ) ;
37
+ const repository = connection . getRepository ( AdvertEntity ) ;
36
38
37
39
await userRepository . createQueryBuilder ( ) . delete ( ) . execute ( ) ;
38
40
await repository . createQueryBuilder ( ) . delete ( ) . execute ( ) ;
39
-
40
- await Promise . all ( [
41
- userRepository . createQueryBuilder ( ) . delete ( ) . execute ( ) ,
42
- repository . createQueryBuilder ( ) . delete ( ) . execute ( ) ,
43
- ] ) ;
44
41
} ) ;
45
42
46
43
describe ( 'Childen' , ( ) => {
@@ -138,6 +135,22 @@ describe('AbstractPolymorphicRepository', () => {
138
135
expect ( result ?. owner . id ) . toBe ( result ?. entityId ) ;
139
136
expect ( result ?. entityType ) . toBe ( UserEntity . name ) ;
140
137
} ) ;
138
+
139
+ it ( 'Can find entity without parent' , async ( ) => {
140
+ const repository = AbstractPolymorphicRepository . createRepository (
141
+ connection ,
142
+ AdvertRepository ,
143
+ ) ;
144
+
145
+ const advert = await repository . save ( repository . create ( { } ) ) ;
146
+
147
+ const result = await repository . findOne ( { where : { id : advert . id } } ) ;
148
+
149
+ expect ( result ) . toBeInstanceOf ( AdvertEntity ) ;
150
+ expect ( result ?. owner ) . toBeNull ( ) ;
151
+ expect ( result ?. entityId ) . toBeNull ( ) ;
152
+ expect ( result ?. entityType ) . toBeNull ( ) ;
153
+ } ) ;
141
154
} ) ;
142
155
143
156
describe ( 'find' , ( ) => {
@@ -170,6 +183,24 @@ describe('AbstractPolymorphicRepository', () => {
170
183
expect ( res . entityId ) . toBe ( res . owner . id ) ;
171
184
} ) ;
172
185
} ) ;
186
+
187
+ it ( 'Can find entities without parent' , async ( ) => {
188
+ const repository = AbstractPolymorphicRepository . createRepository (
189
+ connection ,
190
+ AdvertRepository ,
191
+ ) ;
192
+
193
+ await repository . save ( [ repository . create ( { } ) , repository . create ( { } ) ] ) ;
194
+
195
+ const result = await repository . find ( ) ;
196
+
197
+ result . forEach ( ( res ) => {
198
+ expect ( res ) . toBeInstanceOf ( AdvertEntity ) ;
199
+ expect ( res . owner ) . toBeNull ( ) ;
200
+ expect ( res . entityId ) . toBeNull ( ) ;
201
+ expect ( res . entityType ) . toBeNull ( ) ;
202
+ } ) ;
203
+ } ) ;
173
204
} ) ;
174
205
} ) ;
175
206
} ) ;
0 commit comments