@@ -7,6 +7,12 @@ import Gamer from "../../models/exports/gamer.model";
77import { Sequelize } from "../../../lib/models/Sequelize" ;
88import { Model } from '../../../lib/models/Model' ;
99import { 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" ;
1016
1117describe ( 'sequelize' , ( ) => {
1218
@@ -104,7 +110,7 @@ describe('sequelize', () => {
104110 . to . have . property ( 'options' )
105111 . that . has . property ( 'define' )
106112 . that . eqls ( DEFINE_OPTIONS )
107- ;
113+ ;
108114 } ) ;
109115
110116 it ( 'should set define options for models' , ( ) => {
@@ -188,4 +194,63 @@ describe('sequelize', () => {
188194 } ) ;
189195
190196 } ) ;
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+ } ) ;
191256} ) ;
0 commit comments