@@ -4,7 +4,7 @@ import { UserEntity } from './entities/user.entity';
44import { config } from 'dotenv' ;
55import { resolve } from 'path' ;
66import { AdvertRepository } from './repository/advert.repository' ;
7- import { AbstractPolymorphicRepository } from '../../dist ' ;
7+ import { AbstractPolymorphicRepository } from '../' ;
88
99describe ( 'AbstractPolymorphicRepository' , ( ) => {
1010 let connection : Connection ;
@@ -41,38 +41,118 @@ describe('AbstractPolymorphicRepository', () => {
4141 ] ) ;
4242 } ) ;
4343
44- describe ( 'child' , ( ) => {
45- it ( 'Can create with parent' , async ( ) => {
46- const repository = connection . getCustomRepository ( AdvertRepository ) ;
44+ describe ( 'Childen' , ( ) => {
45+ describe ( 'create' , ( ) => {
46+ it ( 'Can create with parent' , async ( ) => {
47+ const repository = connection . getCustomRepository ( AdvertRepository ) ;
4748
48- const user = new UserEntity ( ) ;
49+ const user = new UserEntity ( ) ;
4950
50- const result = repository . create ( {
51- owner : user ,
51+ const result = repository . create ( {
52+ owner : user ,
53+ } ) ;
54+
55+ expect ( result ) . toBeInstanceOf ( AdvertEntity ) ;
56+ expect ( result . owner ) . toBeInstanceOf ( UserEntity ) ;
57+ } ) ;
58+ } ) ;
59+
60+ describe ( 'save' , ( ) => {
61+ it ( 'Can save cascade parent' , async ( ) => {
62+ const repository = connection . getCustomRepository ( AdvertRepository ) ;
63+ const userRepository = connection . getRepository ( UserEntity ) ;
64+
65+ const user = await userRepository . save ( new UserEntity ( ) ) ;
66+
67+ const result = await repository . save (
68+ repository . create ( {
69+ owner : user ,
70+ } ) ,
71+ ) ;
72+
73+ expect ( result ) . toBeInstanceOf ( AdvertEntity ) ;
74+ expect ( result . owner ) . toBeInstanceOf ( UserEntity ) ;
75+ expect ( result . id ) . toBeTruthy ( ) ;
76+ expect ( result . owner . id ) . toBeTruthy ( ) ;
77+ expect ( result . entityType ) . toBe ( UserEntity . name ) ;
78+ expect ( result . entityId ) . toBe ( result . owner . id ) ;
5279 } ) ;
5380
54- expect ( result ) . toBeInstanceOf ( AdvertEntity ) ;
55- expect ( result . owner ) . toBeInstanceOf ( UserEntity ) ;
81+ it ( 'Can save many with cascade parent' , async ( ) => {
82+ const repository = connection . getCustomRepository ( AdvertRepository ) ;
83+ const userRepository = connection . getRepository ( UserEntity ) ;
84+
85+ const user = await userRepository . save ( new UserEntity ( ) ) ;
86+
87+ const result = await repository . save ( [
88+ repository . create ( {
89+ owner : user ,
90+ } ) ,
91+ repository . create ( {
92+ owner : user ,
93+ } ) ,
94+ ] ) ;
95+
96+ result . forEach ( ( res ) => {
97+ expect ( res ) . toBeInstanceOf ( AdvertEntity ) ;
98+ expect ( res . owner ) . toBeInstanceOf ( UserEntity ) ;
99+ expect ( res . id ) . toBeTruthy ( ) ;
100+ expect ( res . owner . id ) . toBeTruthy ( ) ;
101+ expect ( res . entityType ) . toBe ( UserEntity . name ) ;
102+ expect ( res . entityId ) . toBe ( res . owner . id ) ;
103+ } ) ;
104+ } ) ;
56105 } ) ;
57106
58- it ( 'Can save cascade parent' , async ( ) => {
59- const repository = connection . getCustomRepository ( AdvertRepository ) ;
60- const userRepository = connection . getRepository ( UserEntity ) ;
107+ describe ( 'findOne' , ( ) => {
108+ it ( 'Can find entity with parent' , async ( ) => {
109+ const repository = connection . getCustomRepository ( AdvertRepository ) ;
110+ const userRepository = connection . getRepository ( UserEntity ) ;
61111
62- const user = await userRepository . save ( new UserEntity ( ) ) ;
112+ const user = await userRepository . save ( new UserEntity ( ) ) ;
63113
64- const result = await repository . save (
65- repository . create ( {
66- owner : user ,
67- } ) ,
68- ) ;
69-
70- expect ( result ) . toBeInstanceOf ( AdvertEntity ) ;
71- expect ( result . owner ) . toBeInstanceOf ( UserEntity ) ;
72- expect ( result . id ) . toBeTruthy ( ) ;
73- expect ( result . owner . id ) . toBeTruthy ( ) ;
74- expect ( result . entityType ) . toBe ( UserEntity . name ) ;
75- expect ( result . entityId ) . toBe ( result . owner . id ) ;
114+ const advert = await repository . save (
115+ repository . create ( {
116+ owner : user ,
117+ } ) ,
118+ ) ;
119+
120+ const result = await repository . findOne ( advert . id ) ;
121+
122+ expect ( result ) . toBeInstanceOf ( AdvertEntity ) ;
123+ expect ( result . owner ) . toBeInstanceOf ( UserEntity ) ;
124+ expect ( result . owner . id ) . toBe ( result . entityId ) ;
125+ expect ( result . entityType ) . toBe ( UserEntity . name ) ;
126+ } ) ;
127+ } ) ;
128+
129+ describe ( 'find' , ( ) => {
130+ it ( 'Can find entities with parent' , async ( ) => {
131+ const repository = connection . getCustomRepository ( AdvertRepository ) ;
132+ const userRepository = connection . getRepository ( UserEntity ) ;
133+
134+ const user = await userRepository . save ( new UserEntity ( ) ) ;
135+
136+ await repository . save ( [
137+ repository . create ( {
138+ owner : user ,
139+ } ) ,
140+ repository . create ( {
141+ owner : user ,
142+ } ) ,
143+ ] ) ;
144+
145+ const result = await repository . find ( ) ;
146+
147+ result . forEach ( ( res ) => {
148+ expect ( res ) . toBeInstanceOf ( AdvertEntity ) ;
149+ expect ( res . owner ) . toBeInstanceOf ( UserEntity ) ;
150+ expect ( res . id ) . toBeTruthy ( ) ;
151+ expect ( res . owner . id ) . toBeTruthy ( ) ;
152+ expect ( res . entityType ) . toBe ( UserEntity . name ) ;
153+ expect ( res . entityId ) . toBe ( res . owner . id ) ;
154+ } ) ;
155+ } ) ;
76156 } ) ;
77157 } ) ;
78158} ) ;
0 commit comments