@@ -10,9 +10,6 @@ import { MerchantEntity } from './entities/merchant.entity';
1010describe ( 'AbstractPolymorphicRepository' , ( ) => {
1111 let connection : DataSource ;
1212
13- let userRepository : Repository < UserEntity > ;
14- let repository : AbstractPolymorphicRepository < AdvertEntity > ;
15-
1613 beforeAll ( async ( ) => {
1714 config ( {
1815 path : resolve ( __dirname , '.' , '..' , '..' , '.env' ) ,
@@ -33,14 +30,14 @@ describe('AbstractPolymorphicRepository', () => {
3330
3431 afterAll ( async ( ) => {
3532 await connection . destroy ( ) ;
33+ } ) ;
34+
35+ afterEach ( async ( ) => {
36+ const userRepository = connection . getRepository ( UserEntity ) ;
37+ const repository = connection . getRepository ( AdvertEntity ) ;
3638
3739 await userRepository . createQueryBuilder ( ) . delete ( ) . execute ( ) ;
3840 await repository . createQueryBuilder ( ) . delete ( ) . execute ( ) ;
39-
40- await Promise . all ( [
41- userRepository . createQueryBuilder ( ) . delete ( ) . execute ( ) ,
42- repository . createQueryBuilder ( ) . delete ( ) . execute ( ) ,
43- ] ) ;
4441 } ) ;
4542
4643 describe ( 'Childen' , ( ) => {
@@ -138,6 +135,22 @@ describe('AbstractPolymorphicRepository', () => {
138135 expect ( result ?. owner . id ) . toBe ( result ?. entityId ) ;
139136 expect ( result ?. entityType ) . toBe ( UserEntity . name ) ;
140137 } ) ;
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+ } ) ;
141154 } ) ;
142155
143156 describe ( 'find' , ( ) => {
@@ -170,6 +183,24 @@ describe('AbstractPolymorphicRepository', () => {
170183 expect ( res . entityId ) . toBe ( res . owner . id ) ;
171184 } ) ;
172185 } ) ;
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+ } ) ;
173204 } ) ;
174205 } ) ;
175206} ) ;
0 commit comments