@@ -7,6 +7,12 @@ import Gamer from "../../models/exports/gamer.model";
7
7
import { Sequelize } from "../../../lib/models/Sequelize" ;
8
8
import { Model } from '../../../lib/models/Model' ;
9
9
import { Table } from '../../../lib/annotations/Table' ;
10
+ import PlayerGlob from "../../models/globs/match-sub-dir-files/players/player.model" ;
11
+ import ShoeGlob from "../../models/globs/match-sub-dir-files/shoes/shoe.model" ;
12
+ import TeamGlob from "../../models/globs/match-sub-dir-files/teams/team.model" ;
13
+ import PlayerDir from "../../models/globs/match-dir-only/PlayerDir" ;
14
+ import TeamDir from "../../models/globs/match-dir-only/TeamDir" ;
15
+ import ShoeDir from "../../models/globs/match-dir-only/ShoeDir" ;
10
16
11
17
describe ( 'sequelize' , ( ) => {
12
18
@@ -104,7 +110,7 @@ describe('sequelize', () => {
104
110
. to . have . property ( 'options' )
105
111
. that . has . property ( 'define' )
106
112
. that . eqls ( DEFINE_OPTIONS )
107
- ;
113
+ ;
108
114
} ) ;
109
115
110
116
it ( 'should set define options for models' , ( ) => {
@@ -188,4 +194,63 @@ describe('sequelize', () => {
188
194
} ) ;
189
195
190
196
} ) ;
197
+
198
+ describe ( 'Add models as glob and dir' , ( ) => {
199
+ it ( 'should load classes from subfolders matching glob criteria' , ( ) => {
200
+ const db = '__' ;
201
+ const sequelizeGlob = new Sequelize ( {
202
+ name : db ,
203
+ dialect : 'sqlite' ,
204
+ username : 'root' ,
205
+ password : '' ,
206
+ storage : ':memory:' ,
207
+ logging : ! ( 'SEQ_SILENT' in process . env ) ,
208
+ modelPaths : [ __dirname + '/../../models/globs/match-sub-dir-files/**/*.model.ts' ]
209
+ } ) ;
210
+
211
+ expect ( sequelizeGlob . _ ) . to . have . property ( 'PlayerGlob' , PlayerGlob ) ;
212
+ expect ( sequelizeGlob . _ ) . to . have . property ( 'TeamGlob' , TeamGlob ) ;
213
+ expect ( sequelizeGlob . _ ) . to . have . property ( 'ShoeGlob' , ShoeGlob ) ;
214
+
215
+ } ) ;
216
+
217
+ it ( 'should load classes from folders' , ( ) => {
218
+ const db = '__' ;
219
+ const sequelizeFolder = new Sequelize ( {
220
+ name : db ,
221
+ dialect : 'sqlite' ,
222
+ username : 'root' ,
223
+ password : '' ,
224
+ storage : ':memory:' ,
225
+ logging : ! ( 'SEQ_SILENT' in process . env ) ,
226
+ modelPaths : [ __dirname + '/../../models/globs/match-dir-only' ]
227
+ } ) ;
228
+
229
+ expect ( sequelizeFolder . _ ) . to . have . property ( 'PlayerDir' , PlayerDir ) ;
230
+ expect ( sequelizeFolder . _ ) . to . have . property ( 'TeamDir' , TeamDir ) ;
231
+ expect ( sequelizeFolder . _ ) . to . have . property ( 'ShoeDir' , ShoeDir ) ;
232
+
233
+ } ) ;
234
+
235
+ it ( 'should load classes from folders and from glob' , ( ) => {
236
+ const db = '__' ;
237
+ const sequelizeGlobFolder = new Sequelize ( {
238
+ name : db ,
239
+ dialect : 'sqlite' ,
240
+ username : 'root' ,
241
+ password : '' ,
242
+ storage : ':memory:' ,
243
+ logging : ! ( 'SEQ_SILENT' in process . env ) ,
244
+ modelPaths : [ __dirname + '/../../models/globs/match-dir-only' , __dirname + '/../../models/globs/match-sub-dir-files/**/*.model.ts' ]
245
+ } ) ;
246
+
247
+ expect ( sequelizeGlobFolder . _ ) . to . have . property ( 'PlayerDir' , PlayerDir ) ;
248
+ expect ( sequelizeGlobFolder . _ ) . to . have . property ( 'TeamDir' , TeamDir ) ;
249
+ expect ( sequelizeGlobFolder . _ ) . to . have . property ( 'ShoeDir' , ShoeDir ) ;
250
+ expect ( sequelizeGlobFolder . _ ) . to . have . property ( 'PlayerGlob' , PlayerGlob ) ;
251
+ expect ( sequelizeGlobFolder . _ ) . to . have . property ( 'TeamGlob' , TeamGlob ) ;
252
+ expect ( sequelizeGlobFolder . _ ) . to . have . property ( 'ShoeGlob' , ShoeGlob ) ;
253
+
254
+ } ) ;
255
+ } ) ;
191
256
} ) ;
0 commit comments