@@ -4,7 +4,7 @@ import { UserEntity } from './entities/user.entity';
4
4
import { config } from 'dotenv' ;
5
5
import { resolve } from 'path' ;
6
6
import { AdvertRepository } from './repository/advert.repository' ;
7
- import { AbstractPolymorphicRepository } from '../../dist ' ;
7
+ import { AbstractPolymorphicRepository } from '../' ;
8
8
9
9
describe ( 'AbstractPolymorphicRepository' , ( ) => {
10
10
let connection : Connection ;
@@ -41,38 +41,118 @@ describe('AbstractPolymorphicRepository', () => {
41
41
] ) ;
42
42
} ) ;
43
43
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 ) ;
47
48
48
- const user = new UserEntity ( ) ;
49
+ const user = new UserEntity ( ) ;
49
50
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 ) ;
52
79
} ) ;
53
80
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
+ } ) ;
56
105
} ) ;
57
106
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 ) ;
61
111
62
- const user = await userRepository . save ( new UserEntity ( ) ) ;
112
+ const user = await userRepository . save ( new UserEntity ( ) ) ;
63
113
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
+ } ) ;
76
156
} ) ;
77
157
} ) ;
78
158
} ) ;
0 commit comments