1
1
const mongoose = require ( 'mongoose' ) ;
2
- const mongo = require ( '../../chronos_npm_package/controllers/mongo' ) ;
3
- const ServicesModel = require ( '../../chronos_npm_package/models/ServicesModel' ) ;
4
- const CommunicationModel = require ( '../../chronos_npm_package/models/CommunicationModel' ) ;
5
- const { connectDB, dropDB, dropCollections } = require ( './testdbsetup' ) ;
6
- const alert = require ( '../../chronos_npm_package/controllers/alert' ) ;
7
- const ContainerInfo = require ( '../../chronos_npm_package/models/ContainerInfo' ) ;
2
+ const mongo = require ( '../chronos_npm_package/controllers/mongo' ) ;
3
+ const ServicesModel = require ( '../chronos_npm_package/models/ServicesModel' ) ;
4
+ const CommunicationModel = require ( '../chronos_npm_package/models/CommunicationModel' ) ;
5
+ const { connectDB, dropDB, dropCollections } = require ( './mockdbsetup' ) ;
6
+ const alert = require ( '../chronos_npm_package/controllers/alert' ) ;
7
+ const ContainerInfoFunc = require ( '../chronos_npm_package/models/ContainerInfo' ) ;
8
+ const dockerHelper = require ( '../chronos_npm_package/controllers/dockerHelper' ) ;
8
9
9
10
require ( 'dotenv' ) . config ( ) ;
10
11
@@ -20,13 +21,13 @@ afterAll(async () => {
20
21
21
22
jest . spyOn ( console , 'log' ) . mockImplementation ( ( ) => { } ) ;
22
23
23
- jest . mock ( '../../ chronos_npm_package/controllers/alert' ) ;
24
+ jest . mock ( '../chronos_npm_package/controllers/alert' ) ;
24
25
25
26
jest . useFakeTimers ( ) ;
26
27
27
28
jest . spyOn ( global , 'setInterval' ) ;
28
29
29
- jest . mock ( '../../ chronos_npm_package/controllers/healthHelpers' , ( ) => {
30
+ jest . mock ( '../chronos_npm_package/controllers/healthHelpers' , ( ) => {
30
31
return [
31
32
{
32
33
time : Date . now ( ) ,
@@ -43,8 +44,8 @@ jest.mock('../../chronos_npm_package/controllers/healthHelpers', () => {
43
44
] ;
44
45
} ) ;
45
46
46
- jest . mock ( '../../ chronos_npm_package/controllers/mongo' , ( ) => ( {
47
- ...jest . requireActual ( '../../ chronos_npm_package/controllers/mongo' ) ,
47
+ jest . mock ( '../chronos_npm_package/controllers/mongo' , ( ) => ( {
48
+ ...jest . requireActual ( '../chronos_npm_package/controllers/mongo' ) ,
48
49
addMetrics : jest . fn ( ) ,
49
50
getSavedMetricsLength : jest . fn ( ) ,
50
51
} ) ) ;
@@ -53,15 +54,25 @@ const HealthModel = {
53
54
insertMany : jest . fn ( ( ) => Promise . resolve ( ) ) ,
54
55
} ;
55
56
57
+ jest . mock ( '../chronos_npm_package/controllers/dockerHelper' , ( ) => ( {
58
+ ...jest . requireActual ( '../chronos_npm_package/controllers/dockerHelper' ) ,
59
+ getDockerContainer : jest . fn ( ) ,
60
+ readDockerContainer : jest . fn ( ) ,
61
+ } ) ) ;
62
+
63
+ // jest.mock('../../chronos_npm_package/models/ContainerInfo', () => {
64
+ // const mockContainerInfoInstance = {
65
+ // create: jest.fn(),
66
+ // };
67
+ // return jest.fn(() => mockContainerInfoInstance);
68
+ // });
69
+
56
70
const HealthModelFunc = jest . fn ( ( ) => HealthModel ) ;
57
71
58
72
describe ( 'mongo.connect' , ( ) => {
59
73
beforeEach ( ( ) => {
60
74
jest . clearAllMocks ( ) ;
61
75
} ) ;
62
- beforeEach ( ( ) => {
63
- jest . clearAllMocks ( ) ;
64
- } ) ;
65
76
66
77
test ( 'should connect to MongoDB database' , async ( ) => {
67
78
await mongo . connect ( { database : { URI : db } } ) ;
@@ -87,9 +98,6 @@ describe('mongo.services', () => {
87
98
beforeEach ( ( ) => {
88
99
jest . clearAllMocks ( ) ;
89
100
} ) ;
90
- beforeEach ( ( ) => {
91
- jest . clearAllMocks ( ) ;
92
- } ) ;
93
101
94
102
afterEach ( async ( ) => {
95
103
await dropCollections ( ) ;
@@ -103,6 +111,10 @@ describe('mongo.services', () => {
103
111
} ) ;
104
112
105
113
describe ( 'mongo.communications' , ( ) => {
114
+ beforeEach ( ( ) => {
115
+ jest . clearAllMocks ( ) ;
116
+ } ) ;
117
+
106
118
afterEach ( async ( ) => {
107
119
await dropCollections ( ) ;
108
120
} ) ;
@@ -202,7 +214,7 @@ describe('mongo.docker', () => {
202
214
} ) ;
203
215
204
216
test ( 'should collect docker container information' , async ( ) => {
205
- const microservice = 'mongo.docker test' ;
217
+ const microservice = 'mongo.docker test' ;
206
218
const mockContainerData = {
207
219
containername : microservice ,
208
220
containerId : '234' ,
@@ -222,18 +234,13 @@ describe('mongo.docker', () => {
222
234
time : Date . now ( ) ,
223
235
} ;
224
236
225
- jest . mock ( '../../chronos_npm_package/controllers/dockerHelper' , ( ) => ( {
226
- getDockerContainer : jest . fn ( ( ) => Promise . resolve ( mockContainerData ) ) ,
227
- readDockerContainer : jest . fn ( ( ) => Promise . resolve ( mockReadDockerContainerData ) ) ,
228
- } ) ) ;
237
+ dockerHelper . getDockerContainer . mockResolvedValue ( mockContainerData ) ;
238
+ dockerHelper . readDockerContainer . mockResolvedValue ( mockReadDockerContainerData ) ;
229
239
230
240
await mongo . docker ( { microservice : microservice , interval : 1000 , mode : 'testMode' } ) ;
231
- expect ( getDockerContainer ) . toHaveBeenCalledWith ( microservice ) ;
241
+ expect ( dockerHelper . getDockerContainer ) . toHaveBeenCalledWith ( microservice ) ;
232
242
jest . advanceTimersByTime ( 1000 ) ;
233
- expect ( readDockerContainer ) . toHaveBeenCalledWith ( mockContainerData ) ;
234
- const savedContainerInfo = await ContainerInfo . findOne ( { containername : microservice } ) ;
235
- expect ( savedContainerInfo ) . toBeDefined ( ) ;
236
- expect ( savedContainerInfo ) . toMatchObject ( mockReadDockerContainerData ) ;
243
+ expect ( dockerHelper . readDockerContainer ) . toHaveBeenCalledWith ( mockContainerData ) ;
244
+ //expect(mockContainerInfoInstance.create).toHaveBeenCalledWith(mockReadDockerContainerData);
237
245
} ) ;
238
246
} ) ;
239
-
0 commit comments