tabletcommand-backend-models 7.0.12 → 7.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/build/constants.js +14 -1
  2. package/build/constants.js.map +1 -1
  3. package/build/index.js +3 -1
  4. package/build/index.js.map +1 -1
  5. package/build/models/cad-incident-block.js +0 -6
  6. package/build/models/cad-incident-block.js.map +1 -1
  7. package/build/models/department.js +5 -0
  8. package/build/models/department.js.map +1 -1
  9. package/build/models/device-mapping.js +4 -0
  10. package/build/models/device-mapping.js.map +1 -1
  11. package/build/models/schema/cad-incident.js +1 -0
  12. package/build/models/schema/cad-incident.js.map +1 -1
  13. package/build/models/user.js +6 -1
  14. package/build/models/user.js.map +1 -1
  15. package/build/test/0index.js +72 -0
  16. package/build/test/0index.js.map +1 -0
  17. package/build/test/action-log.js +40 -0
  18. package/build/test/action-log.js.map +1 -0
  19. package/build/test/agency.js +41 -0
  20. package/build/test/agency.js.map +1 -0
  21. package/build/test/arcgis-group.js +48 -85
  22. package/build/test/arcgis-group.js.map +1 -1
  23. package/build/test/assignment.js +39 -0
  24. package/build/test/assignment.js.map +1 -0
  25. package/build/test/battalion.js +45 -0
  26. package/build/test/battalion.js.map +1 -0
  27. package/build/test/cad-incident-block.js +43 -0
  28. package/build/test/cad-incident-block.js.map +1 -0
  29. package/build/test/cad-incident.js +159 -0
  30. package/build/test/cad-incident.js.map +1 -0
  31. package/build/test/cad-simulation.js +32 -0
  32. package/build/test/cad-simulation.js.map +1 -0
  33. package/build/test/cad-status-map.js +41 -0
  34. package/build/test/cad-status-map.js.map +1 -0
  35. package/build/test/cad-status.js +57 -0
  36. package/build/test/cad-status.js.map +1 -0
  37. package/build/test/cad-vehicle-status-history.js +36 -0
  38. package/build/test/cad-vehicle-status-history.js.map +1 -0
  39. package/build/test/cad-vehicle-status.js +42 -0
  40. package/build/test/cad-vehicle-status.js.map +1 -0
  41. package/build/test/cad-vehicle.js +38 -0
  42. package/build/test/cad-vehicle.js.map +1 -0
  43. package/build/test/checklist-item.js +42 -0
  44. package/build/test/checklist-item.js.map +1 -0
  45. package/build/test/checklist.js +43 -0
  46. package/build/test/checklist.js.map +1 -0
  47. package/build/test/config.js +2 -1
  48. package/build/test/config.js.map +1 -1
  49. package/build/test/csv-import.js +44 -0
  50. package/build/test/csv-import.js.map +1 -0
  51. package/build/test/department.js +99 -0
  52. package/build/test/department.js.map +1 -0
  53. package/build/test/device-mapping.js +51 -0
  54. package/build/test/device-mapping.js.map +1 -0
  55. package/build/test/esri.js +67 -0
  56. package/build/test/esri.js.map +1 -0
  57. package/build/test/gst-mapping.js +37 -0
  58. package/build/test/gst-mapping.js.map +1 -0
  59. package/build/test/helpers.js +14 -0
  60. package/build/test/helpers.js.map +1 -0
  61. package/build/test/incident-event.js +52 -0
  62. package/build/test/incident-event.js.map +1 -0
  63. package/build/test/incident-notified.js +42 -0
  64. package/build/test/incident-notified.js.map +1 -0
  65. package/build/test/incident-takeover.js +38 -0
  66. package/build/test/incident-takeover.js.map +1 -0
  67. package/build/test/job-log.js +36 -0
  68. package/build/test/job-log.js.map +1 -0
  69. package/build/test/location.js +76 -0
  70. package/build/test/location.js.map +1 -0
  71. package/build/test/mail-log.js +52 -0
  72. package/build/test/mail-log.js.map +1 -0
  73. package/build/test/managed-incident.js +107 -0
  74. package/build/test/managed-incident.js.map +1 -0
  75. package/build/test/mark43-incident-retry.js +33 -0
  76. package/build/test/mark43-incident-retry.js.map +1 -0
  77. package/build/test/message.js +38 -0
  78. package/build/test/message.js.map +1 -0
  79. package/build/test/mock.js +1280 -910
  80. package/build/test/mock.js.map +1 -1
  81. package/build/test/monitor.js +34 -0
  82. package/build/test/monitor.js.map +1 -0
  83. package/build/test/personnel-import.js +55 -0
  84. package/build/test/personnel-import.js.map +1 -0
  85. package/build/test/rate-limit.js +32 -0
  86. package/build/test/rate-limit.js.map +1 -0
  87. package/build/test/release-note.js +34 -0
  88. package/build/test/release-note.js.map +1 -0
  89. package/build/test/session.js +42 -0
  90. package/build/test/session.js.map +1 -0
  91. package/build/test/template.js +43 -0
  92. package/build/test/template.js.map +1 -0
  93. package/build/test/user-device.js +69 -0
  94. package/build/test/user-device.js.map +1 -0
  95. package/build/test/user-registration.js +44 -0
  96. package/build/test/user-registration.js.map +1 -0
  97. package/build/test/user.js +51 -0
  98. package/build/test/user.js.map +1 -0
  99. package/build/test/validation-report.js +33 -0
  100. package/build/test/validation-report.js.map +1 -0
  101. package/cspell.json +11 -8
  102. package/definitions/constants.d.ts +11 -0
  103. package/definitions/constants.d.ts.map +1 -1
  104. package/definitions/index.d.ts +2 -2
  105. package/definitions/index.d.ts.map +1 -1
  106. package/definitions/models/cad-incident-block.d.ts.map +1 -1
  107. package/definitions/models/department.d.ts.map +1 -1
  108. package/definitions/models/device-mapping.d.ts.map +1 -1
  109. package/definitions/models/schema/cad-incident.d.ts.map +1 -1
  110. package/definitions/models/user.d.ts.map +1 -1
  111. package/definitions/test/0index.d.ts +2 -0
  112. package/definitions/test/0index.d.ts.map +1 -0
  113. package/definitions/test/action-log.d.ts +2 -0
  114. package/definitions/test/action-log.d.ts.map +1 -0
  115. package/definitions/test/agency.d.ts +2 -0
  116. package/definitions/test/agency.d.ts.map +1 -0
  117. package/definitions/test/arcgis-group.d.ts.map +1 -1
  118. package/definitions/test/assignment.d.ts +2 -0
  119. package/definitions/test/assignment.d.ts.map +1 -0
  120. package/definitions/test/battalion.d.ts +2 -0
  121. package/definitions/test/battalion.d.ts.map +1 -0
  122. package/definitions/test/cad-incident-block.d.ts +2 -0
  123. package/definitions/test/cad-incident-block.d.ts.map +1 -0
  124. package/definitions/test/cad-incident.d.ts +2 -0
  125. package/definitions/test/cad-incident.d.ts.map +1 -0
  126. package/definitions/test/cad-simulation.d.ts +2 -0
  127. package/definitions/test/cad-simulation.d.ts.map +1 -0
  128. package/definitions/test/cad-status-map.d.ts +2 -0
  129. package/definitions/test/cad-status-map.d.ts.map +1 -0
  130. package/definitions/test/cad-status.d.ts +2 -0
  131. package/definitions/test/cad-status.d.ts.map +1 -0
  132. package/definitions/test/cad-vehicle-status-history.d.ts +2 -0
  133. package/definitions/test/cad-vehicle-status-history.d.ts.map +1 -0
  134. package/definitions/test/cad-vehicle-status.d.ts +2 -0
  135. package/definitions/test/cad-vehicle-status.d.ts.map +1 -0
  136. package/definitions/test/cad-vehicle.d.ts +2 -0
  137. package/definitions/test/cad-vehicle.d.ts.map +1 -0
  138. package/definitions/test/checklist-item.d.ts +2 -0
  139. package/definitions/test/checklist-item.d.ts.map +1 -0
  140. package/definitions/test/checklist.d.ts +2 -0
  141. package/definitions/test/checklist.d.ts.map +1 -0
  142. package/definitions/test/config.d.ts.map +1 -1
  143. package/definitions/test/csv-import.d.ts +2 -0
  144. package/definitions/test/csv-import.d.ts.map +1 -0
  145. package/definitions/test/department.d.ts +2 -0
  146. package/definitions/test/department.d.ts.map +1 -0
  147. package/definitions/test/device-mapping.d.ts +2 -0
  148. package/definitions/test/device-mapping.d.ts.map +1 -0
  149. package/definitions/test/esri.d.ts +2 -0
  150. package/definitions/test/esri.d.ts.map +1 -0
  151. package/definitions/test/gst-mapping.d.ts +2 -0
  152. package/definitions/test/gst-mapping.d.ts.map +1 -0
  153. package/definitions/test/helpers.d.ts +2 -0
  154. package/definitions/test/helpers.d.ts.map +1 -0
  155. package/definitions/test/incident-event.d.ts +2 -0
  156. package/definitions/test/incident-event.d.ts.map +1 -0
  157. package/definitions/test/incident-notified.d.ts +2 -0
  158. package/definitions/test/incident-notified.d.ts.map +1 -0
  159. package/definitions/test/incident-takeover.d.ts +2 -0
  160. package/definitions/test/incident-takeover.d.ts.map +1 -0
  161. package/definitions/test/job-log.d.ts +2 -0
  162. package/definitions/test/job-log.d.ts.map +1 -0
  163. package/definitions/test/location.d.ts +2 -0
  164. package/definitions/test/location.d.ts.map +1 -0
  165. package/definitions/test/mail-log.d.ts +2 -0
  166. package/definitions/test/mail-log.d.ts.map +1 -0
  167. package/definitions/test/managed-incident.d.ts +2 -0
  168. package/definitions/test/managed-incident.d.ts.map +1 -0
  169. package/definitions/test/mark43-incident-retry.d.ts +2 -0
  170. package/definitions/test/mark43-incident-retry.d.ts.map +1 -0
  171. package/definitions/test/message.d.ts +2 -0
  172. package/definitions/test/message.d.ts.map +1 -0
  173. package/definitions/test/mock.d.ts +1056 -3
  174. package/definitions/test/mock.d.ts.map +1 -1
  175. package/definitions/test/monitor.d.ts +2 -0
  176. package/definitions/test/monitor.d.ts.map +1 -0
  177. package/definitions/test/personnel-import.d.ts +2 -0
  178. package/definitions/test/personnel-import.d.ts.map +1 -0
  179. package/definitions/test/rate-limit.d.ts +2 -0
  180. package/definitions/test/rate-limit.d.ts.map +1 -0
  181. package/definitions/test/release-note.d.ts +2 -0
  182. package/definitions/test/release-note.d.ts.map +1 -0
  183. package/definitions/test/session.d.ts +2 -0
  184. package/definitions/test/session.d.ts.map +1 -0
  185. package/definitions/test/template.d.ts +2 -0
  186. package/definitions/test/template.d.ts.map +1 -0
  187. package/definitions/test/user-device.d.ts +2 -0
  188. package/definitions/test/user-device.d.ts.map +1 -0
  189. package/definitions/test/user-registration.d.ts +2 -0
  190. package/definitions/test/user-registration.d.ts.map +1 -0
  191. package/definitions/test/user.d.ts +2 -0
  192. package/definitions/test/user.d.ts.map +1 -0
  193. package/definitions/test/validation-report.d.ts +2 -0
  194. package/definitions/test/validation-report.d.ts.map +1 -0
  195. package/definitions/types/cad.d.ts +2 -4
  196. package/definitions/types/cad.d.ts.map +1 -1
  197. package/definitions/types/department.d.ts +1 -0
  198. package/definitions/types/department.d.ts.map +1 -1
  199. package/definitions/types/user.d.ts +39 -38
  200. package/definitions/types/user.d.ts.map +1 -1
  201. package/package.json +4 -4
  202. package/src/constants.ts +13 -0
  203. package/src/index.ts +4 -0
  204. package/src/models/cad-incident-block.ts +0 -10
  205. package/src/models/department.ts +6 -0
  206. package/src/models/device-mapping.ts +4 -0
  207. package/src/models/schema/cad-incident.ts +2 -0
  208. package/src/models/user.ts +7 -1
  209. package/src/test/0index.ts +71 -0
  210. package/src/test/action-log.ts +41 -0
  211. package/src/test/agency.ts +41 -0
  212. package/src/test/arcgis-group.ts +25 -63
  213. package/src/test/assignment.ts +41 -0
  214. package/src/test/battalion.ts +45 -0
  215. package/src/test/cad-incident-block.ts +44 -0
  216. package/src/test/cad-incident.ts +168 -0
  217. package/src/test/cad-simulation.ts +33 -0
  218. package/src/test/cad-status-map.ts +41 -0
  219. package/src/test/cad-status.ts +57 -0
  220. package/src/test/cad-vehicle-status-history.ts +37 -0
  221. package/src/test/cad-vehicle-status.ts +43 -0
  222. package/src/test/cad-vehicle.ts +38 -0
  223. package/src/test/checklist-item.ts +43 -0
  224. package/src/test/checklist.ts +44 -0
  225. package/src/test/config.ts +3 -3
  226. package/src/test/csv-import.ts +44 -0
  227. package/src/test/department.ts +95 -0
  228. package/src/test/device-mapping.ts +53 -0
  229. package/src/test/esri.ts +69 -0
  230. package/src/test/gst-mapping.ts +38 -0
  231. package/src/test/helpers.ts +15 -0
  232. package/src/test/incident-event.ts +53 -0
  233. package/src/test/incident-notified.ts +41 -0
  234. package/src/test/incident-takeover.ts +39 -0
  235. package/src/test/job-log.ts +37 -0
  236. package/src/test/location.ts +79 -0
  237. package/src/test/mail-log.ts +51 -0
  238. package/src/test/managed-incident.ts +116 -0
  239. package/src/test/mark43-incident-retry.ts +34 -0
  240. package/src/test/message.ts +39 -0
  241. package/src/test/mock.ts +590 -163
  242. package/src/test/monitor.ts +35 -0
  243. package/src/test/personnel-import.ts +55 -0
  244. package/src/test/rate-limit.ts +33 -0
  245. package/src/test/release-note.ts +36 -0
  246. package/src/test/session.ts +43 -0
  247. package/src/test/template.ts +44 -0
  248. package/src/test/user-device.ts +66 -0
  249. package/src/test/user-registration.ts +45 -0
  250. package/src/test/user.ts +51 -0
  251. package/src/test/validation-report.ts +33 -0
  252. package/src/tsconfig.json +13 -3
  253. package/src/types/cad.ts +2 -4
  254. package/src/types/department.ts +1 -0
  255. package/src/types/user.ts +40 -39
  256. package/tslint.json +0 -28
  257. /package/{test → test-legacy}/0index.js +0 -0
  258. /package/{test → test-legacy}/action-log.js +0 -0
  259. /package/{test → test-legacy}/agency.js +0 -0
  260. /package/{test → test-legacy}/arcgis-group.js +0 -0
  261. /package/{test → test-legacy}/assignment.js +0 -0
  262. /package/{test → test-legacy}/battalion.js +0 -0
  263. /package/{test → test-legacy}/cad-incident-block.js +0 -0
  264. /package/{test → test-legacy}/cad-incident.js +0 -0
  265. /package/{test → test-legacy}/cad-simulation.js +0 -0
  266. /package/{test → test-legacy}/cad-status-map.js +0 -0
  267. /package/{test → test-legacy}/cad-status.js +0 -0
  268. /package/{test → test-legacy}/cad-vehicle-status-history.js +0 -0
  269. /package/{test → test-legacy}/cad-vehicle-status.js +0 -0
  270. /package/{test → test-legacy}/cad-vehicle.js +0 -0
  271. /package/{test → test-legacy}/checklist-item.js +0 -0
  272. /package/{test → test-legacy}/checklist.js +0 -0
  273. /package/{test → test-legacy}/config.js +0 -0
  274. /package/{test → test-legacy}/csv-import.js +0 -0
  275. /package/{test → test-legacy}/department.js +0 -0
  276. /package/{test → test-legacy}/device-mapping.js +0 -0
  277. /package/{test → test-legacy}/esri.js +0 -0
  278. /package/{test → test-legacy}/gst-mapping.js +0 -0
  279. /package/{test → test-legacy}/helpers.js +0 -0
  280. /package/{test → test-legacy}/incident-event.js +0 -0
  281. /package/{test → test-legacy}/incident-notified.js +0 -0
  282. /package/{test → test-legacy}/incident-takeover.js +0 -0
  283. /package/{test → test-legacy}/job-log.js +0 -0
  284. /package/{test → test-legacy}/location.js +0 -0
  285. /package/{test → test-legacy}/mail-log.js +0 -0
  286. /package/{test → test-legacy}/managed-incident.js +0 -0
  287. /package/{test → test-legacy}/mark43-incident-retry.js +0 -0
  288. /package/{test → test-legacy}/message.js +0 -0
  289. /package/{test → test-legacy}/mock.js +0 -0
  290. /package/{test → test-legacy}/monitor.js +0 -0
  291. /package/{test → test-legacy}/personnel-import.js +0 -0
  292. /package/{test → test-legacy}/rate-limit.js +0 -0
  293. /package/{test → test-legacy}/release-note.js +0 -0
  294. /package/{test → test-legacy}/session.js +0 -0
  295. /package/{test → test-legacy}/template.js +0 -0
  296. /package/{test → test-legacy}/user-device.js +0 -0
  297. /package/{test → test-legacy}/user-registration.js +0 -0
  298. /package/{test → test-legacy}/user.js +0 -0
  299. /package/{test → test-legacy}/validation-report.js +0 -0
package/src/test/mock.ts CHANGED
@@ -1,79 +1,45 @@
1
+ import { Mongoose } from "mongoose";
2
+ import * as uuid from "uuid";
3
+ import * as _ from "lodash";
4
+ import { retrieveCurrentUnixTime } from "../helpers";
1
5
 
2
- // import * as uuid from "uuid";
3
- // import { Types } from "mongoose";
6
+ export default function mockModule(dependencies: { mongoose: Mongoose; }) {
4
7
 
5
- import { checkIfTestDatabase } from "./config";
6
- checkIfTestDatabase();
7
-
8
- export default function MockModule(
9
- // dependecies: {
10
- // models: unknown,
11
- // }
12
- ) {
13
-
14
- async function cleanup() {
15
- return "";
8
+ function shouldRun() {
9
+ const mongoUrl = process.env.NODE_MONGO_URL || "";
10
+ if (!/massive-test/i.exec(mongoUrl)) {
11
+ console.log(`Not a test database: ${mongoUrl}? Expecting database: massive-test.`);
12
+ return false;
13
+ }
14
+ return true;
16
15
  }
17
16
 
18
- const arcGISGroup = {
19
- access: "private",
20
- linkedDepartments: [
21
- {
22
- department: "Demo RTS Fire Department",
23
- departmentId: "558365a198b2fa4278000053",
24
- authUsername: "tabletcmd",
25
- authError: null,
26
- users: [
27
- //
28
- {
29
- username: "tc_someone",
30
- email: "hello@tc.com",
31
- userId: "558365a198a2aa42780000aa",
32
- }
33
- ]
34
- }
35
- ],
36
- externalOrgIds: [
37
- "MyTOuXKXZoizaaa"
38
- ],
39
- groupId: "c5d013e197244577a583c49984d319d9",
40
- outsiders: [
41
- {
42
- fullName: "Michael Kallum",
43
- memberType: "member",
44
- orgId: "MyTOuXKXZoizaaa",
45
- username: "Michael_Kallum"
46
- }
47
- ],
48
- owner: "jane_tabletcommand",
49
- protected: true,
50
- title: "TC - City of Fire Department",
51
- users: [
52
- {
53
- fullName: "Jane Serrano",
54
- memberType: "admin",
55
- orgId: "zGXMcUaDlMGoAAAg",
56
- username: "jane_tabletcommand"
57
- },
58
- ]
59
- };
60
-
61
- return {
62
- cleanup,
63
-
64
- arcGISGroup,
65
- };
66
- }
67
-
68
- /*
69
- module.exports = function(dependencies) {
70
- "use strict";
17
+ if (!shouldRun()) {
18
+ process.exit(1);
19
+ }
71
20
 
72
21
  const {
73
- models,
74
22
  mongoose
75
23
  } = dependencies;
76
24
 
25
+ const mark43IncidentRetry = {
26
+ departmentId: "123",
27
+ incidentNumber: "abc123",
28
+ active: true,
29
+ mark43IncidentId: 123,
30
+ attempts: 0,
31
+ created: new Date(),
32
+ modified: new Date(),
33
+ retryPayload: {
34
+ departmentId: 4321,
35
+ activityType: "EVENT_CREATED",
36
+ relatedEvent: {
37
+ mark43Id: 1234,
38
+ cadAgencyEventNumber: "1234"
39
+ }
40
+ }
41
+ };
42
+
77
43
  const actionLog = {
78
44
  departmentId: "d1234",
79
45
  email: "hello@example.com",
@@ -94,8 +60,125 @@ module.exports = function(dependencies) {
94
60
  }
95
61
  };
96
62
 
63
+ const jobLog = {
64
+ host: "TestHost-01",
65
+ jobName: "Test Job 1",
66
+ state: "ready",
67
+ bidDate: new Date(),
68
+ startDate: new Date(),
69
+ completedDate: new Date(),
70
+ forceClosed: false
71
+ };
72
+
73
+ const releaseNote = {
74
+ title: "test note",
75
+ notes: "long form note...",
76
+ version: "1.94.0",
77
+ releaseDate: new Date(),
78
+ status: "draft"
79
+ };
80
+
81
+ const cadSimulation = {
82
+ "departmentId": "123",
83
+ "active": true,
84
+ "friendlyId": "test-1",
85
+ "modifiedDate": 1544771122.997,
86
+ "modified": new Date(),
87
+ "title": "Structure Fire with Confirming stills and Rescues",
88
+ "notes": "3 story apartment building ",
89
+ "simulation": true,
90
+ "notify": true,
91
+ "rts": true,
92
+ "tags":
93
+ [],
94
+ "incidentType": "Structure Fire ",
95
+ "streetName": "123 test Blvd.",
96
+ "locationComment": "3 Story Apartment building ",
97
+ "suite": "Apartment Building",
98
+ "CrossStreet1": "321 Ave",
99
+ "city": "Test",
100
+ "state": "Ca",
101
+ "lat": "55.784387",
102
+ "lon": "-122.228394",
103
+ "firemap": "",
104
+ "mapPages": "",
105
+ "tacticalChannel": "Test 2 ",
106
+ "commandChannel": "",
107
+ "radioChannels":
108
+ [],
109
+ "closeDelay": 1800,
110
+ "priorIncidents": [],
111
+ "randomPriorIncidents": false,
112
+ "randomStaffing": false,
113
+ "sequences":
114
+ [
115
+ {
116
+ "_id": new mongoose.Types.ObjectId(),
117
+ "title": "test Alarm ",
118
+ "alarm": "1",
119
+ "sequenceId": 0,
120
+ "unitsConfig": {
121
+ "alarmLevelAtDispatch": "1",
122
+ "units":
123
+ [
124
+ "E13",
125
+ "E4",
126
+ "E18",
127
+ "E16",
128
+ "T2",
129
+ "T6",
130
+ "B4",
131
+ "B2"
132
+ ]
133
+ },
134
+ "comments":
135
+ [
136
+ {
137
+ "comment": "4-2-2 alarm assignment ",
138
+ "source": "DISP2"
139
+ }
140
+ ]
141
+ },
142
+ {
143
+ "_id": new mongoose.Types.ObjectId(),
144
+ "title": "2nd Alarm ",
145
+ "alarm": "2",
146
+ "sequenceId": 1,
147
+ "unitsConfig": {
148
+ "alarmLevelAtDispatch": "2",
149
+ "units":
150
+ [
151
+ "E17",
152
+ "E12",
153
+ "E29",
154
+ "T1",
155
+ "B3"
156
+ ],
157
+ },
158
+ "comments": [],
159
+ },
160
+ {
161
+ "_id": new mongoose.Types.ObjectId(),
162
+ "title": "3 Alarm ",
163
+ "alarm": "3",
164
+ "sequenceId": 2,
165
+ "unitsConfig": {
166
+ "alarmLevelAtDispatch": "3",
167
+ "units":
168
+ [
169
+ "E1",
170
+ "E2",
171
+ "E25",
172
+ "T4"
173
+ ]
174
+ },
175
+ "comments": [],
176
+ }
177
+ ]
178
+ };
179
+
97
180
  const agency = {
98
- _id: mongoose.Types.ObjectId(),
181
+ _id: new mongoose.Types.ObjectId(),
99
182
  departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
100
183
  code: "TC",
101
184
  name: "Tablet Command",
@@ -121,7 +204,7 @@ module.exports = function(dependencies) {
121
204
  department: "Demo RTS Fire Department",
122
205
  departmentId: "558365a198b2fa4278000053",
123
206
  authUsername: "tabletcmd",
124
- authError: null,
207
+ authError: "",
125
208
  users: [
126
209
  //
127
210
  {
@@ -168,6 +251,9 @@ module.exports = function(dependencies) {
168
251
  };
169
252
 
170
253
  const battalionUnit = {
254
+ _id: new mongoose.Types.ObjectId("56131f724143487a10009999"),
255
+ uuid: "",
256
+ agencyId: new mongoose.Types.ObjectId(),
171
257
  name: "BattalionUnit Test",
172
258
  friendly_id: "B1",
173
259
  local_id: 321,
@@ -180,6 +266,9 @@ module.exports = function(dependencies) {
180
266
  api_battalion_id: "123",
181
267
  battalion_uuid: "",
182
268
  battalion_name: "",
269
+ modified_date: "",
270
+ modified_unix_date: 1,
271
+ modified: new Date(),
183
272
  };
184
273
 
185
274
  const battalion = {
@@ -187,17 +276,17 @@ module.exports = function(dependencies) {
187
276
  active: true,
188
277
  isMandatory: false,
189
278
  userId: "123",
190
- departmentId: 123,
279
+ departmentId: "123",
191
280
  AgencyId: new mongoose.Types.ObjectId(agency._id),
192
281
  position: 1,
193
282
  units: [battalionUnit]
194
283
  };
195
284
 
196
- const checklistId = mongoose.Types.ObjectId();
285
+ const checklistId = "56131f724143487a10123456";
197
286
  const checklistUUID = "150cf1ca-ffbb-42c9-bd4c-fd64be45d888";
198
287
 
199
288
  const checklistItem = {
200
- _id: mongoose.Types.ObjectId(),
289
+ _id: new mongoose.Types.ObjectId(),
201
290
  uuid: "150cf1ca-ffbb-42c9-bd4c-fd64be45d887",
202
291
  checklist_uuid: checklistUUID,
203
292
  position: 1,
@@ -209,12 +298,13 @@ module.exports = function(dependencies) {
209
298
  departmentId: "4321",
210
299
  local_id: 1,
211
300
  isMandatory: true,
212
- agencyId: new mongoose.Types.ObjectId(agency._id),
213
- description: "Testing Description"
301
+ description: "Testing Description",
302
+ modified_date: "",
303
+ modified_unix_date: retrieveCurrentUnixTime(),
214
304
  };
215
305
 
216
306
  const checklist = {
217
- _id: checklistId,
307
+ _id: new mongoose.Types.ObjectId(checklistId),
218
308
  uuid: checklistUUID,
219
309
  position: 1,
220
310
  active: true,
@@ -224,7 +314,9 @@ module.exports = function(dependencies) {
224
314
  local_id: 1,
225
315
  isMandatory: true,
226
316
  agencyId: new mongoose.Types.ObjectId(agency._id),
227
- items: [checklistItem]
317
+ items: [checklistItem],
318
+ modified_date: "",
319
+ modified_unix_date: retrieveCurrentUnixTime(),
228
320
  };
229
321
 
230
322
  const mailLog = {
@@ -245,28 +337,28 @@ module.exports = function(dependencies) {
245
337
 
246
338
  const message = {
247
339
  departmentId: "d1234",
248
- "active" : false,
249
- "title" : "Upgrade App",
250
- "body" : "Application out of date.",
251
- "actionTitle" : "Upgrade App",
252
- "color" : null,
253
- "url" : "",
254
- "priority" : 4,
255
- "type" : {
256
- "type" : "upgradeApp",
257
- "typeOpts" : {
258
- "major" : 3,
259
- "minor" : 0,
260
- "patch" : 1
261
- }
340
+ "active": false,
341
+ "title": "Upgrade App",
342
+ "body": "Application out of date.",
343
+ "actionTitle": "Upgrade App",
344
+ "color": { background: "", text: "" },
345
+ "url": "",
346
+ "priority": 4,
347
+ "type": {
348
+ "type": "upgradeApp",
349
+ "typeOpts": {
350
+ "major": 3,
351
+ "minor": 0,
352
+ "patch": 1
353
+ }
262
354
  },
263
- "created" : new Date().toISOString(),
264
- "uuid" : "138acffd-a94f-402d-87b3-ff6ed31a19dc",
265
- "requestId" : "138acffd-a94f-402d-87b3-ff6ed31a19db",
355
+ "created": new Date(),
356
+ "uuid": "138acffd-a94f-402d-87b3-ff6ed31a19dc",
357
+ "requestId": "138acffd-a94f-402d-87b3-ff6ed31a19db",
266
358
  };
267
359
 
268
360
  const cadIncident = {
269
- _id: mongoose.Types.ObjectId(),
361
+ _id: new mongoose.Types.ObjectId(),
270
362
  uuid: "150cf1ca-ffbb-42c9-bd4c-fd64be45d679",
271
363
  departmentId: "56131f724143487a10000001",
272
364
  AgencyID: "BDC",
@@ -305,27 +397,58 @@ module.exports = function(dependencies) {
305
397
  {
306
398
  Comment: "[1] Call Appended to Incident number 19-042593",
307
399
  CommentSource: "G8724",
308
- CommentDateTime: "2019-03-01T01:59:57-08:00"
400
+ CommentDateTime: "2019-03-01T01:59:57-08:00",
401
+ CommentConfidential: false,
402
+ CommentOpts: { type: "", item: "" },
309
403
  }
310
404
  ]
311
405
  }
312
406
  ],
313
- Latitude: "34.788611",
314
- Longitude: "-114.549444",
407
+ Latitude: 34.788611,
408
+ Longitude: -114.549444,
315
409
  Comment: [
316
410
  //
317
411
  {
318
412
  Comment: "(1) VALLEY VIEW ICU TO SUNRISE ICU",
319
413
  CommentSource: "H6577",
320
- CommentDateTime: "2019-03-21T13:21:08-07:00"
414
+ CommentDateTime: "2019-03-21T13:21:08-07:00",
415
+ CommentConfidential: false,
416
+ CommentOpts: { type: "", item: "" },
321
417
  }
322
418
  ],
323
419
  units: [
324
420
  //
325
421
  {
326
- UnitDispatchNumber: 4067677,
422
+ UnitDispatchNumber: "4067677",
327
423
  UnitID: "MA31",
328
- TimeDispatched: "2019-03-21T13:21:22-07:00"
424
+ TimeDispatched: "2019-03-21T13:21:22-07:00",
425
+ Personnel: [
426
+ {
427
+ "PersonnelID": "X14",
428
+ "PersonnelName": "Mary Smith",
429
+ "PersonnelNote": "X",
430
+ "PersonnelRank": "Captain",
431
+ "PersonnelWorkCode": "TRD",
432
+ },
433
+ {
434
+ "PersonnelID": "Y21",
435
+ "PersonnelName": "Nicholas Santos",
436
+ "PersonnelNote": "Y",
437
+ "PersonnelRank": "PM",
438
+ "PersonnelWorkCode": "REG",
439
+ }
440
+ ],
441
+ "AlarmAtDispatch": "",
442
+ "TimeEnroute": "",
443
+ "TimeArrived": "",
444
+ "TimeStaged": "",
445
+ "TimeCleared": "",
446
+ "TimeAtHospital": "",
447
+ "TimePatient": "",
448
+ "TimeTransport": "",
449
+ "TimeTransporting": "",
450
+ "PersonnelCount": 2,
451
+ "uuid": "",
329
452
  }
330
453
  ],
331
454
  preference_location: "address",
@@ -333,11 +456,85 @@ module.exports = function(dependencies) {
333
456
  ClosedDateTime: "",
334
457
  closed_unix_date: 0,
335
458
  start_unix_date: 1553199671,
336
- modified_unix_date: 1553201071.636
459
+ modified_unix_date: 1553201071.636,
460
+
461
+ // Share incident properties
462
+ ReportNumber: [
463
+ //
464
+ {
465
+ "name": "A",
466
+ "number": "07-0351"
467
+ },
468
+ {
469
+ "name": "B",
470
+ "number": "UM-02210"
471
+ }
472
+ ],
473
+ radioChannels: [
474
+ //
475
+ {
476
+ "name": "CMD",
477
+ "channel": "LOCAL Tone: 3",
478
+ "url": "http://example.com/stream1",
479
+ "channelDescription": ""
480
+ },
481
+ {
482
+ "name": "TAC",
483
+ "channel": "CDF TAC 10",
484
+ "url": "http://example.com/stream2",
485
+ "channelDescription": ""
486
+ }
487
+ ],
488
+ record: {
489
+ "name": "John",
490
+ "value": "Smith",
491
+ },
492
+ sharedSource: {
493
+ isExternal: true,
494
+ name: "Demo RTS Fire Department",
495
+ reasons: [
496
+ {
497
+ date: new Date("2024-05-03T00:00:00.000Z"),
498
+ name: "Unit B10 assigned"
499
+ }
500
+ ]
501
+ },
502
+ sharedTo: [
503
+ //
504
+ {
505
+ active: true,
506
+ departmentId: "5195426cc4e016a988000965",
507
+ expireAt: new Date("2024-08-01T10:20:30.400Z"),
508
+ name: "Test Fire Department",
509
+ reasons: [
510
+ {
511
+ date: new Date("2024-05-03T01:01:01.010Z"),
512
+ name: "Unit M10 assigned"
513
+ }
514
+ ],
515
+ startAt: new Date("2024-05-01T01:02:03.040Z"),
516
+ }
517
+ ],
518
+ };
519
+
520
+ const cadIncidentBlock = {
521
+ "EntryDateTime": "2023-09-20T09:14:37-07:00",
522
+ "ClosedDateTime": "2023-09-20T10:36:36-07:00",
523
+ "source": "callType",
524
+ "departmentId": "64948d8f051d17033f77d034",
525
+ "AgencyIncidentCallTypeDescription": "OTH, MISCELLANEOUS",
526
+ "IncidentNumber": "A23031",
527
+ "ReportNumber": [
528
+ {
529
+ "name": "Incident",
530
+ "number": "CA68"
531
+ }
532
+ ],
533
+ "createdAt": "2023-09-20T16:14:30.000+0000"
337
534
  };
338
535
 
339
536
  const cadStatus = {
340
- _id: mongoose.Types.ObjectId(),
537
+ _id: new mongoose.Types.ObjectId(),
341
538
  code: "AV",
342
539
  codeDisplay: "RS",
343
540
  color: {
@@ -360,7 +557,11 @@ module.exports = function(dependencies) {
360
557
  position: 20,
361
558
  type: "string",
362
559
  value: "ADM",
363
- visible: true
560
+ visible: true,
561
+ isDefault: true,
562
+ latitude: 0,
563
+ longitude: 0,
564
+ time: 0,
364
565
  }
365
566
  ],
366
567
  name: "oosCode",
@@ -383,13 +584,14 @@ module.exports = function(dependencies) {
383
584
  //
384
585
  {
385
586
  "statusId": 1,
386
- "userEnabled": true
587
+ "userEnabled": true,
588
+ "position": 0,
387
589
  }
388
590
  ]
389
591
  };
390
592
 
391
593
  const cadVehicle = {
392
- _id: mongoose.Types.ObjectId(),
594
+ _id: new mongoose.Types.ObjectId(),
393
595
  uuid: "30f8d7c7-20a3-4a12-b911-a424f5037003",
394
596
  radioName: "T01",
395
597
  vehicleId: "7705",
@@ -432,9 +634,15 @@ module.exports = function(dependencies) {
432
634
  };
433
635
 
434
636
  const department = {
435
- _id: mongoose.Types.ObjectId(),
637
+ _id: new mongoose.Types.ObjectId(),
436
638
  department: "Test Department",
437
- city: "San Francisco",
639
+ addressDetails: {
640
+ city: "San Francisco",
641
+ address: "",
642
+ state: "",
643
+ zipCode: "",
644
+ country: "",
645
+ },
438
646
  active: true,
439
647
  apikey: "abcd",
440
648
  partialApiKey: "ab",
@@ -443,8 +651,8 @@ module.exports = function(dependencies) {
443
651
  rtsChannelPrefix: "CH_TEST",
444
652
  pubNubV3: {
445
653
  token: "CH_AUTH_TOKEN",
446
- expireAt: "2021-09-10T23:25:02.196Z",
447
- runAt: "2021-09-10T08:25:02.196Z",
654
+ expireAt: new Date("2021-09-10T23:25:02.196Z"),
655
+ runAt: new Date("2021-09-10T08:25:02.196Z"),
448
656
  },
449
657
  agencyIds: [
450
658
  new mongoose.Types.ObjectId(agency._id)
@@ -452,7 +660,10 @@ module.exports = function(dependencies) {
452
660
  signupKey: "A1B2",
453
661
  incidentTypes: [{
454
662
  name: "Type",
455
- value: "type"
663
+ value: "type",
664
+ allowPartialMatch: true,
665
+ callTypeDescription: [],
666
+ callType: [],
456
667
  }],
457
668
  shareLocationPhones: false,
458
669
  shareLocationTablets: true,
@@ -461,53 +672,108 @@ module.exports = function(dependencies) {
461
672
  shareAVL: {
462
673
  enabled: true,
463
674
  opAreaCode: "DAL",
464
- opAreaName: "Delta Operations"
675
+ opAreaName: "Delta Operations",
676
+ fadeZoomLevel: 1,
465
677
  },
466
678
  accountType: "production",
467
679
  timeZone: "America/Los_Angeles",
468
680
  firstArrivingEnabled: true,
681
+ firstArriving: {
682
+ token: "123",
683
+ apiUrl: "",
684
+ },
469
685
  simpleSenseEnabled: true,
686
+ simpleSense: {
687
+ token: "123"
688
+ },
470
689
  licensing: {
471
690
  tcPro2Way: 0,
472
691
  tcPro1Way: 0,
473
692
  tcMobile: 0,
474
693
  tcWeb: 0,
475
694
  fireMapperPro: 0,
476
- sendToCAD: 0
695
+ sendToCAD: 0,
696
+ tcStreams: 0,
477
697
  },
478
698
  webDisclaimer: {
479
699
  message: "test",
480
700
  enabled: true
481
701
  },
482
702
  notificationEmails: ["test@test.com"],
483
- externalNotificationsEnabled: true
703
+ externalNotificationsEnabled: true,
704
+ restrictedComments: {
705
+ enabled: false,
706
+ callTypesAllowed: [],
707
+ statusesAllowed: [],
708
+ restrictedFields: [],
709
+ restrictedMessage: "Restricted Message"
710
+ },
711
+ customButtons: [
712
+ {
713
+ name: "Button Custom",
714
+ url: "",
715
+ order: 1,
716
+ allowExternal: false,
717
+ defaultExternal: false,
718
+ allowFloating: false,
719
+ color: {
720
+ "background": "#512e5f",
721
+ "text": "#F8F9F9"
722
+ }
723
+ }
724
+ ],
725
+ reportNumberEnabled: true,
726
+ samsara: {
727
+ enabled: false,
728
+ token: "",
729
+ },
730
+ reportOdometer: "status",
484
731
  };
485
732
 
486
733
  const esriMap = {
734
+ offline: [],
735
+ size: 0,
736
+ modified: 1,
737
+ modifiedAt: new Date(),
487
738
  mapLayers: [
488
739
  //
489
740
  {
490
741
  "url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/XBO_Branches_Updated/FeatureServer/0",
491
742
  "itemId": "XBO_Branches_Updated_3067",
492
743
  "layerType": "ArcGISFeatureLayer",
493
- "title": "XBO Branches_Updated"
744
+ "title": "XBO Branches_Updated",
745
+ "layerId": "",
746
+ "visibility": true,
747
+ "opacity": 1,
748
+ "access": "",
749
+ "owner": "",
494
750
  },
495
751
  {
496
752
  "itemId": "city_limits_092019_4185",
497
753
  "layerType": "ArcGISFeatureLayer",
498
754
  "title": "City Limits",
499
- "url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/city_limits_092019/FeatureServer/0"
755
+ "url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/city_limits_092019/FeatureServer/0",
756
+ "layerId": "",
757
+ "visibility": true,
758
+ "opacity": 1,
759
+ "access": "",
760
+ "owner": "",
500
761
  },
501
762
  {
502
763
  "itemId": "unvdpdod57lext9eck9nxipcov2dgjqs_8576",
503
764
  "layerType": "ArcGISFeatureLayer",
504
765
  "title": "Tablet Command",
505
- "url": "https://api.tabletcommand.com/esri/tc-file/unvdpdod57lext9eck9nxipcov2dgjqs/FeatureServer/0"
766
+ "url": "https://api.tabletcommand.com/esri/tc-file/unvdpdod57lext9eck9nxipcov2dgjqs/FeatureServer/0",
767
+ "layerId": "",
768
+ "visibility": true,
769
+ "opacity": 1,
770
+ "access": "",
771
+ "owner": "",
506
772
  }
507
773
  ],
508
774
  "owner": "john_tabletcommand",
509
775
  "title": "Location (MM Filters)",
510
- "url": null,
776
+ "url": "",
511
777
  "access": "shared",
512
778
  "baseMap": {
513
779
  "baseMapLayers": [
@@ -519,7 +785,12 @@ module.exports = function(dependencies) {
519
785
  "layerType": "VectorTileLayer",
520
786
  "title": "World Street Map (Night)",
521
787
  "styleUrl": "https://cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json",
522
- "visibility": true
788
+ "visibility": true,
789
+ "layerId": "",
790
+ "itemId": "",
791
+ "url": "",
792
+ "access": "",
793
+ "owner": "",
523
794
  }
524
795
  ],
525
796
  "title": "Streets (Night)"
@@ -534,7 +805,7 @@ module.exports = function(dependencies) {
534
805
  };
535
806
 
536
807
  const deviceMapping = {
537
- _id: mongoose.Types.ObjectId(),
808
+ _id: new mongoose.Types.ObjectId(),
538
809
  nick: "Test",
539
810
  departmentId: "d123",
540
811
  deviceType: "hello",
@@ -547,8 +818,22 @@ module.exports = function(dependencies) {
547
818
  mapHidden: false
548
819
  };
549
820
 
821
+ const deviceMappingWithWhiteSpaces = {
822
+ _id: new mongoose.Types.ObjectId(),
823
+ nick: "Test Nick",
824
+ departmentId: "d123",
825
+ deviceType: "DeviceTypeTest",
826
+ mapId: " map123 ", // Should be trimmed by Schema
827
+ deviceId: " deviceType123 ", // Should be trimmed by Schema
828
+ modified_unix_date: 1432230780,
829
+ active: false,
830
+ remoteAddress: " 6.0.6.0 ", // Should be trimmed by Schema
831
+ note: " i will get trimmed ", // Should be trimmed by Schema
832
+ mapHidden: false
833
+ };
834
+
550
835
  const esri = {
551
- _id: mongoose.Types.ObjectId(),
836
+ _id: new mongoose.Types.ObjectId(),
552
837
  departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
553
838
  modified_unix_date: 1432230780,
554
839
  auth: {
@@ -582,7 +867,7 @@ module.exports = function(dependencies) {
582
867
  };
583
868
 
584
869
  const gstMapping = {
585
- _id: mongoose.Types.ObjectId(),
870
+ _id: new mongoose.Types.ObjectId(),
586
871
  departmentId: "d123",
587
872
  unitId: "E123",
588
873
  modified_unix_date: 1432230780,
@@ -592,7 +877,6 @@ module.exports = function(dependencies) {
592
877
  mapHidden: false,
593
878
  gstAgency: "LAX",
594
879
  deviceType: "gst",
595
- note: ""
596
880
  };
597
881
 
598
882
  const incidentEvent = {
@@ -616,7 +900,7 @@ module.exports = function(dependencies) {
616
900
  };
617
901
 
618
902
  const incidentTakeover = {
619
- _id: mongoose.Types.ObjectId(),
903
+ _id: new mongoose.Types.ObjectId(),
620
904
  incident_id: "i1234",
621
905
  incident_name: "Test Incident",
622
906
  incident_number: "TC-12345",
@@ -629,7 +913,7 @@ module.exports = function(dependencies) {
629
913
  };
630
914
 
631
915
  const incidentNotified = {
632
- _id: mongoose.Types.ObjectId(),
916
+ _id: new mongoose.Types.ObjectId(),
633
917
  departmentId: "d123",
634
918
  IncidentNumber: "T-1536603902",
635
919
  incidentTypes: [
@@ -638,13 +922,19 @@ module.exports = function(dependencies) {
638
922
  units: [
639
923
  "E31"
640
924
  ],
925
+ unitsByDispatch: [
926
+ {
927
+ UnitID: "E31",
928
+ UnitDispatchNumber: "12345"
929
+ }
930
+ ],
641
931
  sent: [
642
932
  ],
643
- updated: "2018-09-10T18:25:02.196Z"
933
+ updated: new Date("2018-09-10T18:25:02.196Z")
644
934
  };
645
935
 
646
936
  const location = {
647
- _id: mongoose.Types.ObjectId(),
937
+ _id: new mongoose.Types.ObjectId(),
648
938
  departmentId: "d123",
649
939
  userId: "542a40db20783c000000153d",
650
940
  uuid: "92c8f732-52b7-46cc-855a-d54fddfe3172",
@@ -666,16 +956,16 @@ module.exports = function(dependencies) {
666
956
  text: "#00AA00",
667
957
  background: "#FFAAFF"
668
958
  },
669
- modified: new Date().toISOString()
959
+ modified: new Date()
670
960
  };
671
961
 
672
962
  const managedIncident = {
673
- _id: mongoose.Types.ObjectId(),
963
+ _id: new mongoose.Types.ObjectId(),
674
964
  CallerNumber: "(720) 275-6765",
675
965
  CommandChannel: "ACPRI",
676
966
  TacticalAltChannel: "ACOPSB",
677
967
  TacticalChannel: "ACOPSA",
678
- active: 1,
968
+ active: true,
679
969
  address: "Interstate 76 Eb / Federal To I 76 Eb, UNINCORPORATED ADAMS COUNTY CO",
680
970
  api_incident_number: "ACFR040719-0002506",
681
971
  channel: "ADAMSCOUNTYFIRERESCUEN1C-MANAGED-ACFR040719-0002506",
@@ -693,15 +983,16 @@ module.exports = function(dependencies) {
693
983
  history: [
694
984
  //
695
985
  {
696
- entity_id: 9207,
986
+ entity_id: "9207",
697
987
  entity_type: 14,
698
988
  message: "(43) 2a72 start medical (Shared)",
699
- time: 1554681941
989
+ time: 1554681941,
990
+ user: "",
700
991
  }
701
992
  ],
702
- is_closed: 1,
993
+ is_closed: true,
703
994
  location: "39.802526,-105.019773",
704
- managed: "1",
995
+ managed: 1,
705
996
  modified_date: "2019-04-08T00:16:30.473", // Same as the modified_unix_date
706
997
  modified_unix_date: 1554682590.47396,
707
998
  name: "INJURED PARTY",
@@ -714,20 +1005,52 @@ module.exports = function(dependencies) {
714
1005
  //
715
1006
  {
716
1007
  UnitID: "M12",
717
- active: 1,
1008
+ assignment: {
1009
+ name: "",
1010
+ uuid: "",
1011
+ modified_date: new Date().toISOString(),
1012
+ modified_unix_date: 1,
1013
+ built_in: true,
1014
+ isMandatory: false,
1015
+ description: "",
1016
+ active: true,
1017
+ position: 1,
1018
+ },
1019
+ AlarmAtDispatch: 0,
1020
+ uuid: "",
1021
+ parent_uuid: "",
1022
+ local_id: "",
1023
+ active: true,
718
1024
  air_time: "",
719
1025
  api_unit_dispatch_number: "5163322",
720
- checked: 0,
1026
+ checked: false,
721
1027
  column_position: 0,
722
1028
  group_position: 0,
723
1029
  incident_position: 0,
724
1030
  isSupervisor: false,
725
1031
  is_part_of_group: false,
1032
+ location_on_image: "",
726
1033
  location_on_map: "",
727
1034
  modified_date: "2019-04-08T00:16:30+0000",
728
1035
  modified_unix_date: 1554682590.51667,
729
1036
  note: "",
730
1037
  personnelOnScene: 2,
1038
+ Personnel: [
1039
+ {
1040
+ "PersonnelID": "X14",
1041
+ "PersonnelName": "Mary Smith",
1042
+ "PersonnelNote": "X",
1043
+ "PersonnelRank": "Captain",
1044
+ "PersonnelWorkCode": "TRD"
1045
+ },
1046
+ {
1047
+ "PersonnelID": "Y21",
1048
+ "PersonnelName": "Nicholas Santos",
1049
+ "PersonnelNote": "Y",
1050
+ "PersonnelRank": "PM",
1051
+ "PersonnelWorkCode": "REG"
1052
+ }
1053
+ ],
731
1054
  status: "Arrived",
732
1055
  status_unix_date: 1554682217,
733
1056
  time: "",
@@ -735,20 +1058,78 @@ module.exports = function(dependencies) {
735
1058
  }
736
1059
  ],
737
1060
  userId: "5b3e78cc944e2a18d5222424",
738
- uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F"
1061
+ uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F",
1062
+ // Share incident properties
1063
+ ReportNumber: [
1064
+ //
1065
+ {
1066
+ "name": "A",
1067
+ "number": "07-0351"
1068
+ },
1069
+ {
1070
+ "name": "B",
1071
+ "number": "UM-02210"
1072
+ }
1073
+ ],
1074
+ radioChannels: [
1075
+ //
1076
+ {
1077
+ "name": "CMD",
1078
+ "channel": "LOCAL Tone: 3",
1079
+ "url": "http://example.com/stream1",
1080
+ "channelDescription": "",
1081
+ },
1082
+ {
1083
+ "name": "TAC",
1084
+ "channel": "CDF TAC 10",
1085
+ "url": "http://example.com/stream2",
1086
+ "channelDescription": "",
1087
+ }
1088
+ ],
1089
+ record: {
1090
+ "name": "John",
1091
+ "value": "Smith",
1092
+ },
1093
+ sharedSource: {
1094
+ isExternal: true,
1095
+ name: "Demo RTS Fire Department",
1096
+ reasons: [
1097
+ {
1098
+ date: new Date("2024-05-03T00:00:00.000Z"),
1099
+ name: "Unit B10 assigned"
1100
+ }
1101
+ ]
1102
+ },
1103
+ sharedTo: [
1104
+ //
1105
+ {
1106
+ active: true,
1107
+ departmentId: "5195426cc4e016a988000965",
1108
+ expireAt: new Date("2024-08-01T10:20:30.400Z"),
1109
+ name: "Test Fire Department",
1110
+ reasons: [
1111
+ {
1112
+ date: new Date("2024-05-03T01:01:01.010Z"),
1113
+ name: "Unit M10 assigned"
1114
+ }
1115
+ ],
1116
+ startAt: new Date("2024-05-01T01:02:03.040Z"),
1117
+ }
1118
+ ],
739
1119
  };
740
1120
 
741
1121
  const monitor = {
742
- _id: mongoose.Types.ObjectId(),
1122
+ _id: new mongoose.Types.ObjectId(),
743
1123
  departmentId: "546ace2b3cd8d60d1d00256a",
744
1124
  agencyId: "123",
745
- notificationType: "maps-token-error",
1125
+ notificationType: "maps-auth-error",
746
1126
  status: "active",
1127
+ sentAt: new Date(1000.0 * 1603263604),
747
1128
  sentUnixDate: 1603263604
748
1129
  };
749
1130
 
750
1131
  const rateLimit = {
751
- _id: mongoose.Types.ObjectId(),
1132
+ _id: new mongoose.Types.ObjectId(),
752
1133
  username: "test123",
753
1134
  modified_unix_date: 1426983552.49945,
754
1135
  count: 8
@@ -783,7 +1164,7 @@ module.exports = function(dependencies) {
783
1164
  };
784
1165
 
785
1166
  const user = {
786
- _id: mongoose.Types.ObjectId(),
1167
+ _id: new mongoose.Types.ObjectId(),
787
1168
  nick: "Test",
788
1169
  email: "test@save.me",
789
1170
  mapId: "TEST",
@@ -804,9 +1185,10 @@ module.exports = function(dependencies) {
804
1185
  offDutyEnabled: true,
805
1186
  webMapSettings: {
806
1187
  defaultZoomLevel: 10,
807
- defaultCenter: [1,1],
1188
+ defaultCenter: [1, 1],
808
1189
  defaultMap: "Default"
809
- }
1190
+ },
1191
+ restrictedCommentsEnabled: true
810
1192
  };
811
1193
 
812
1194
  const userRegistration = {
@@ -844,7 +1226,9 @@ module.exports = function(dependencies) {
844
1226
  criticalAlertsEnabled: true,
845
1227
  session: "1234321",
846
1228
  active: true,
847
- offDuty: false
1229
+ offDuty: false,
1230
+ t: new Date(),
1231
+ channelId: "",
848
1232
  }
849
1233
  ],
850
1234
  notificationCount: 12,
@@ -879,7 +1263,7 @@ module.exports = function(dependencies) {
879
1263
  };
880
1264
 
881
1265
  const personnelImport = {
882
- _id: mongoose.Types.ObjectId(),
1266
+ _id: new mongoose.Types.ObjectId(),
883
1267
  PersonnelID: "AM0111",
884
1268
  PersonnelName: "Test User",
885
1269
  PersonnelRank: "Eng",
@@ -888,11 +1272,11 @@ module.exports = function(dependencies) {
888
1272
  departmentId: "123zzz",
889
1273
  radioNames: ["M10", "Z1"],
890
1274
  shiftStartTime: 1559446299,
891
- shiftStart: "2019-06-02T03:31:39.000Z",
1275
+ shiftStart: new Date("2019-06-02T03:31:39.000Z"),
892
1276
  shiftEndTime: 1569446299,
893
- shiftEnd: "2019-09-25T21:18:19.000Z",
1277
+ shiftEnd: new Date("2019-09-25T21:18:19.000Z"),
894
1278
  modified_unix_date: 1570446299,
895
- modified: "2019-10-07T11:04:59.000Z",
1279
+ modified: new Date("2019-10-07T11:04:59.000Z"),
896
1280
  active: true,
897
1281
  agencyCode: "TC",
898
1282
  agencyName: "Tablet Command",
@@ -900,38 +1284,77 @@ module.exports = function(dependencies) {
900
1284
  };
901
1285
 
902
1286
  const csvImport = {
903
- _id: mongoose.Types.ObjectId(),
1287
+ _id: new mongoose.Types.ObjectId(),
904
1288
  batchId: "AM0111",
905
1289
  departmentId: "1234",
906
1290
  agencyId: "abcd1234",
907
1291
  importType: "users",
908
1292
  fileType: "csv",
909
1293
  fileName: "test file 123",
910
- fileSize: 800,
1294
+ fileSize: "800",
911
1295
  records: [],
912
1296
  userId: "4321",
913
1297
  status: "success",
914
1298
  sendNotification: false
915
1299
  };
916
1300
 
1301
+ const validationReport = {
1302
+ _id: new mongoose.Types.ObjectId(),
1303
+ departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
1304
+ modified: new Date("2022-11-13T22:02:01Z"),
1305
+ location: [],
1306
+ statusMap: [],
1307
+ status: [],
1308
+ vehicleStatus: [],
1309
+ vehicle: [],
1310
+ incident: [
1311
+ {
1312
+ message: "path: /ReportNumber msg: must be array",
1313
+ firstSeenAt: new Date("2022-11-14T09:23:48.866Z"),
1314
+ lastSeenAt: new Date("2022-11-14T09:23:48.866Z"),
1315
+ clearedAt: new Date("2022-11-14T09:23:48.866Z"),
1316
+ payload: {
1317
+ AgencyID: "99999",
1318
+ IncidentNumber: "ABCD-1234",
1319
+ ReportNumber: ""
1320
+ }
1321
+ }
1322
+ ],
1323
+ personnel: [],
1324
+ };
1325
+
917
1326
  async function cleanup() {
918
- config.checkIfTestDatabase();
919
-
920
- await models.CADVehicleStatus.deleteMany({});
921
- await models.Esri.deleteMany({});
922
- await models.IncidentNotified.deleteMany({});
923
- await models.PersonnelImport.deleteMany({});
924
- await models.UserDevice.deleteMany({});
925
- await models.User.deleteMany({});
1327
+ if (!shouldRun()) {
1328
+ process.exit(1);
1329
+ }
1330
+
1331
+ const items = await _.first(mongoose.connections)?.db.collections();
1332
+ for (const coll of items ?? []) {
1333
+ // console.log(`Emptying ${coll.collectionName}.`);
1334
+ await coll.deleteMany({});
1335
+ }
1336
+ }
1337
+
1338
+ async function beforeEach() {
1339
+ if (!shouldRun()) {
1340
+ process.exit(1);
1341
+ }
1342
+
1343
+ await cleanup();
926
1344
  }
927
1345
 
928
1346
  return {
1347
+ beforeEach,
1348
+ cleanup,
1349
+
929
1350
  actionLog,
1351
+ mark43IncidentRetry,
930
1352
  agency,
931
- assignment,
932
1353
  arcGISGroup,
1354
+ assignment,
933
1355
  battalion,
934
1356
  cadIncident,
1357
+ cadIncidentBlock,
935
1358
  cadStatus,
936
1359
  cadStatusMap,
937
1360
  cadVehicle,
@@ -939,18 +1362,22 @@ module.exports = function(dependencies) {
939
1362
  cadVehicleStatusHistory,
940
1363
  checklist,
941
1364
  checklistItem,
942
- cleanup,
1365
+ csvImport,
943
1366
  department,
944
1367
  deviceMapping,
1368
+ deviceMappingWithWhiteSpaces,
945
1369
  esri,
946
1370
  gstMapping,
947
1371
  incidentEvent,
948
1372
  incidentNotified,
949
1373
  incidentTakeover,
1374
+ jobLog,
1375
+ releaseNote,
1376
+ cadSimulation,
950
1377
  location,
951
1378
  mailLog,
952
- message,
953
1379
  managedIncident,
1380
+ message,
954
1381
  monitor,
955
1382
  personnelImport,
956
1383
  rateLimit,
@@ -959,7 +1386,7 @@ module.exports = function(dependencies) {
959
1386
  user,
960
1387
  userDevice,
961
1388
  userRegistration,
962
- csvImport
1389
+ validationReport,
963
1390
  };
964
- };
965
- */
1391
+ }
1392
+