1
1
/* eslint-disable no-underscore-dangle,@typescript-eslint/no-unsafe-assignment */
2
2
import { Connection , Types } from 'mongoose' ;
3
3
import { asyncLoop } from '../../helpers' ;
4
+ import { TodoItemEntity } from '../src/todo-item/todo-item.entity' ;
5
+ import { TagEntity } from '../src/tag/tag.entity' ;
6
+ import { SubTaskEntity } from '../src/sub-task/sub-task.entity' ;
4
7
5
8
const { ObjectId } = Types ;
6
9
@@ -9,7 +12,7 @@ export const TAGS = [
9
12
{ id : '5f74ed2686b2bae7bf4b4aac' , name : 'Home' } ,
10
13
{ id : '5f74ed2686b2bae7bf4b4aad' , name : 'Work' } ,
11
14
{ id : '5f74ed2686b2bae7bf4b4aae' , name : 'Question' } ,
12
- { id : '5f74ed2686b2bae7bf4b4aaf' , name : 'Blocked' } ,
15
+ { id : '5f74ed2686b2bae7bf4b4aaf' , name : 'Blocked' }
13
16
] ;
14
17
15
18
export const TODO_ITEMS = [
@@ -18,36 +21,36 @@ export const TODO_ITEMS = [
18
21
title : 'Create Nest App' ,
19
22
completed : true ,
20
23
priority : 0 ,
21
- tags : [ TAGS [ 0 ] . id , TAGS [ 1 ] . id ] ,
24
+ tags : [ TAGS [ 0 ] . id , TAGS [ 1 ] . id ]
22
25
} ,
23
26
{
24
27
id : '5f74af112fae2b251510e3ae' ,
25
28
title : 'Create Entity' ,
26
29
completed : false ,
27
30
priority : 1 ,
28
- tags : [ TAGS [ 0 ] . id , TAGS [ 2 ] . id ] ,
31
+ tags : [ TAGS [ 0 ] . id , TAGS [ 2 ] . id ]
29
32
} ,
30
33
{
31
34
id : '5f74af112fae2b251510e3af' ,
32
35
title : 'Create Entity Service' ,
33
36
completed : false ,
34
37
priority : 2 ,
35
- tags : [ TAGS [ 4 ] . id , TAGS [ 2 ] . id ] ,
38
+ tags : [ TAGS [ 4 ] . id , TAGS [ 2 ] . id ]
36
39
} ,
37
40
{
38
41
id : '5f74af112fae2b251510e3b0' ,
39
42
title : 'Add Todo Item Resolver' ,
40
43
completed : false ,
41
44
priority : 3 ,
42
- tags : [ TAGS [ 4 ] . id , TAGS [ 1 ] . id ] ,
45
+ tags : [ TAGS [ 4 ] . id , TAGS [ 1 ] . id ]
43
46
} ,
44
47
{
45
48
id : '5f74af112fae2b251510e3b1' ,
46
49
title : 'How to create item With Sub Tasks' ,
47
50
completed : false ,
48
51
priority : 4 ,
49
- tags : [ TAGS [ 3 ] . id , TAGS [ 4 ] . id ] ,
50
- } ,
52
+ tags : [ TAGS [ 3 ] . id , TAGS [ 4 ] . id ]
53
+ }
51
54
] ;
52
55
53
56
export const SUB_TASKS = [
@@ -56,119 +59,120 @@ export const SUB_TASKS = [
56
59
completed : true ,
57
60
description : null ,
58
61
title : `${ TODO_ITEMS [ 0 ] . title } - Sub Task 1` ,
59
- todoItem : TODO_ITEMS [ 0 ] . id ,
62
+ todoItem : TODO_ITEMS [ 0 ] . id
60
63
} ,
61
64
{
62
65
id : '5f74ed936c3afaeaadb8f31b' ,
63
66
completed : false ,
64
67
description : null ,
65
68
title : `${ TODO_ITEMS [ 0 ] . title } - Sub Task 2` ,
66
- todoItem : TODO_ITEMS [ 0 ] . id ,
69
+ todoItem : TODO_ITEMS [ 0 ] . id
67
70
} ,
68
71
{
69
72
id : '5f74ed936c3afaeaadb8f31c' ,
70
73
completed : false ,
71
74
description : null ,
72
75
title : `${ TODO_ITEMS [ 0 ] . title } - Sub Task 3` ,
73
- todoItem : TODO_ITEMS [ 0 ] . id ,
76
+ todoItem : TODO_ITEMS [ 0 ] . id
74
77
} ,
75
78
{
76
79
id : '5f74ed936c3afaeaadb8f31d' ,
77
80
completed : true ,
78
81
description : null ,
79
82
title : `${ TODO_ITEMS [ 1 ] . title } - Sub Task 1` ,
80
- todoItem : TODO_ITEMS [ 1 ] . id ,
83
+ todoItem : TODO_ITEMS [ 1 ] . id
81
84
} ,
82
85
{
83
86
id : '5f74ed936c3afaeaadb8f31e' ,
84
87
completed : false ,
85
88
description : null ,
86
89
title : `${ TODO_ITEMS [ 1 ] . title } - Sub Task 2` ,
87
- todoItem : TODO_ITEMS [ 1 ] . id ,
90
+ todoItem : TODO_ITEMS [ 1 ] . id
88
91
} ,
89
92
{
90
93
id : '5f74ed936c3afaeaadb8f31f' ,
91
94
completed : false ,
92
95
description : null ,
93
96
title : `${ TODO_ITEMS [ 1 ] . title } - Sub Task 3` ,
94
- todoItem : TODO_ITEMS [ 1 ] . id ,
97
+ todoItem : TODO_ITEMS [ 1 ] . id
95
98
} ,
96
99
{
97
100
id : '5f74ed936c3afaeaadb8f320' ,
98
101
completed : true ,
99
102
description : null ,
100
103
title : `${ TODO_ITEMS [ 2 ] . title } - Sub Task 1` ,
101
- todoItem : TODO_ITEMS [ 2 ] . id ,
104
+ todoItem : TODO_ITEMS [ 2 ] . id
102
105
} ,
103
106
{
104
107
id : '5f74ed936c3afaeaadb8f321' ,
105
108
completed : false ,
106
109
description : null ,
107
110
title : `${ TODO_ITEMS [ 2 ] . title } - Sub Task 2` ,
108
- todoItem : TODO_ITEMS [ 2 ] . id ,
111
+ todoItem : TODO_ITEMS [ 2 ] . id
109
112
} ,
110
113
{
111
114
id : '5f74ed936c3afaeaadb8f322' ,
112
115
completed : false ,
113
116
description : null ,
114
117
title : `${ TODO_ITEMS [ 2 ] . title } - Sub Task 3` ,
115
- todoItem : TODO_ITEMS [ 2 ] . id ,
118
+ todoItem : TODO_ITEMS [ 2 ] . id
116
119
} ,
117
120
{
118
121
id : '5f74ed936c3afaeaadb8f323' ,
119
122
completed : true ,
120
123
description : null ,
121
124
title : `${ TODO_ITEMS [ 3 ] . title } - Sub Task 1` ,
122
- todoItem : TODO_ITEMS [ 3 ] . id ,
125
+ todoItem : TODO_ITEMS [ 3 ] . id
123
126
} ,
124
127
{
125
128
id : '5f74ed936c3afaeaadb8f324' ,
126
129
completed : false ,
127
130
description : null ,
128
131
title : `${ TODO_ITEMS [ 3 ] . title } - Sub Task 2` ,
129
- todoItem : TODO_ITEMS [ 3 ] . id ,
132
+ todoItem : TODO_ITEMS [ 3 ] . id
130
133
} ,
131
134
{
132
135
id : '5f74ed936c3afaeaadb8f325' ,
133
136
completed : false ,
134
137
description : null ,
135
138
title : `${ TODO_ITEMS [ 3 ] . title } - Sub Task 3` ,
136
- todoItem : TODO_ITEMS [ 3 ] . id ,
139
+ todoItem : TODO_ITEMS [ 3 ] . id
137
140
} ,
138
141
{
139
142
id : '5f74ed936c3afaeaadb8f326' ,
140
143
completed : true ,
141
144
description : null ,
142
145
title : `${ TODO_ITEMS [ 4 ] . title } - Sub Task 1` ,
143
- todoItem : TODO_ITEMS [ 4 ] . id ,
146
+ todoItem : TODO_ITEMS [ 4 ] . id
144
147
} ,
145
148
{
146
149
id : '5f74ed936c3afaeaadb8f327' ,
147
150
completed : false ,
148
151
description : null ,
149
152
title : `${ TODO_ITEMS [ 4 ] . title } - Sub Task 2` ,
150
- todoItem : TODO_ITEMS [ 4 ] . id ,
153
+ todoItem : TODO_ITEMS [ 4 ] . id
151
154
} ,
152
155
{
153
156
id : '5f74ed936c3afaeaadb8f328' ,
154
157
completed : false ,
155
158
description : null ,
156
159
title : `${ TODO_ITEMS [ 4 ] . title } - Sub Task 3` ,
157
- todoItem : TODO_ITEMS [ 4 ] . id ,
158
- } ,
160
+ todoItem : TODO_ITEMS [ 4 ] . id
161
+ }
159
162
] ;
160
163
161
164
const documents = [ 'TodoItemEntity' , 'SubTaskEntity' , 'TagEntity' ] ;
162
165
163
- export const truncate = async ( connection : Connection ) : Promise < void > =>
164
- asyncLoop ( documents , ( document ) => connection . model ( document ) . deleteMany ( { } ) . exec ( ) ) ;
166
+ export const truncate = async ( connection : Connection ) : Promise < void > => (
167
+ asyncLoop ( documents , ( document ) => connection . model < TodoItemEntity | TagEntity | SubTaskEntity > ( document ) . deleteMany ( { } ) . exec ( ) )
168
+ ) ;
165
169
166
170
export const refresh = async ( connection : Connection ) : Promise < void > => {
167
171
await truncate ( connection ) ;
168
172
169
- const TodoModel = connection . model ( 'TodoItemEntity' ) ;
170
- const TagsModel = connection . model ( 'TagEntity' ) ;
171
- const SubTaskModel = connection . model ( 'SubTaskEntity' ) ;
173
+ const TodoModel = connection . model < TodoItemEntity > ( 'TodoItemEntity' ) ;
174
+ const TagsModel = connection . model < TagEntity > ( 'TagEntity' ) ;
175
+ const SubTaskModel = connection . model < SubTaskEntity > ( 'SubTaskEntity' ) ;
172
176
173
177
await Promise . all ( TODO_ITEMS . map ( ( { id, ...rest } ) => new TodoModel ( { _id : new ObjectId ( id ) , ...rest } ) . save ( ) ) ) ;
174
178
0 commit comments