tabletcommand-backend-models 7.0.13 → 7.0.15

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 (327) hide show
  1. package/build/constants.js +43 -1
  2. package/build/constants.js.map +1 -1
  3. package/build/index.js +2 -1
  4. package/build/index.js.map +1 -1
  5. package/build/models/cad-incident-stream.js +2 -2
  6. package/build/models/cad-incident-stream.js.map +1 -1
  7. package/build/models/chart-device-stats.js +2 -2
  8. package/build/models/chart-device-stats.js.map +1 -1
  9. package/build/models/chart-incident.js +2 -2
  10. package/build/models/chart-incident.js.map +1 -1
  11. package/build/models/chart-managed-incident.js +2 -2
  12. package/build/models/chart-managed-incident.js.map +1 -1
  13. package/build/models/chart-user.js +2 -2
  14. package/build/models/chart-user.js.map +1 -1
  15. package/build/models/department.js +7 -2
  16. package/build/models/department.js.map +1 -1
  17. package/build/models/device-mapping.js +4 -0
  18. package/build/models/device-mapping.js.map +1 -1
  19. package/build/models/incident-event.js +2 -2
  20. package/build/models/incident-event.js.map +1 -1
  21. package/build/models/job-log.js +2 -2
  22. package/build/models/job-log.js.map +1 -1
  23. package/build/models/location.js +37 -2
  24. package/build/models/location.js.map +1 -1
  25. package/build/models/managed-incident.js +2 -2
  26. package/build/models/managed-incident.js.map +1 -1
  27. package/build/models/monitor.js +2 -2
  28. package/build/models/monitor.js.map +1 -1
  29. package/build/models/schema/cad-incident.js +2 -3
  30. package/build/models/schema/cad-incident.js.map +1 -1
  31. package/build/models/smtp-unhandled.js +2 -2
  32. package/build/models/smtp-unhandled.js.map +1 -1
  33. package/build/test/0index.js +72 -0
  34. package/build/test/0index.js.map +1 -0
  35. package/build/test/action-log.js +40 -0
  36. package/build/test/action-log.js.map +1 -0
  37. package/build/test/agency.js +41 -0
  38. package/build/test/agency.js.map +1 -0
  39. package/build/test/arcgis-group.js +48 -85
  40. package/build/test/arcgis-group.js.map +1 -1
  41. package/build/test/assignment.js +39 -0
  42. package/build/test/assignment.js.map +1 -0
  43. package/build/test/battalion.js +45 -0
  44. package/build/test/battalion.js.map +1 -0
  45. package/build/test/cad-incident-block.js +43 -0
  46. package/build/test/cad-incident-block.js.map +1 -0
  47. package/build/test/cad-incident.js +159 -0
  48. package/build/test/cad-incident.js.map +1 -0
  49. package/build/test/cad-simulation.js +32 -0
  50. package/build/test/cad-simulation.js.map +1 -0
  51. package/build/test/cad-status-map.js +41 -0
  52. package/build/test/cad-status-map.js.map +1 -0
  53. package/build/test/cad-status.js +57 -0
  54. package/build/test/cad-status.js.map +1 -0
  55. package/build/test/cad-vehicle-status-history.js +36 -0
  56. package/build/test/cad-vehicle-status-history.js.map +1 -0
  57. package/build/test/cad-vehicle-status.js +42 -0
  58. package/build/test/cad-vehicle-status.js.map +1 -0
  59. package/build/test/cad-vehicle.js +38 -0
  60. package/build/test/cad-vehicle.js.map +1 -0
  61. package/build/test/checklist-item.js +42 -0
  62. package/build/test/checklist-item.js.map +1 -0
  63. package/build/test/checklist.js +43 -0
  64. package/build/test/checklist.js.map +1 -0
  65. package/build/test/config.js +2 -1
  66. package/build/test/config.js.map +1 -1
  67. package/build/test/csv-import.js +44 -0
  68. package/build/test/csv-import.js.map +1 -0
  69. package/build/test/department.js +99 -0
  70. package/build/test/department.js.map +1 -0
  71. package/build/test/device-mapping.js +51 -0
  72. package/build/test/device-mapping.js.map +1 -0
  73. package/build/test/esri.js +67 -0
  74. package/build/test/esri.js.map +1 -0
  75. package/build/test/gst-mapping.js +37 -0
  76. package/build/test/gst-mapping.js.map +1 -0
  77. package/build/test/helpers.js +14 -0
  78. package/build/test/helpers.js.map +1 -0
  79. package/build/test/incident-event.js +52 -0
  80. package/build/test/incident-event.js.map +1 -0
  81. package/build/test/incident-notified.js +42 -0
  82. package/build/test/incident-notified.js.map +1 -0
  83. package/build/test/incident-takeover.js +38 -0
  84. package/build/test/incident-takeover.js.map +1 -0
  85. package/build/test/job-log.js +36 -0
  86. package/build/test/job-log.js.map +1 -0
  87. package/build/test/location.js +87 -0
  88. package/build/test/location.js.map +1 -0
  89. package/build/test/mail-log.js +52 -0
  90. package/build/test/mail-log.js.map +1 -0
  91. package/build/test/managed-incident.js +107 -0
  92. package/build/test/managed-incident.js.map +1 -0
  93. package/build/test/mark43-incident-retry.js +33 -0
  94. package/build/test/mark43-incident-retry.js.map +1 -0
  95. package/build/test/message.js +38 -0
  96. package/build/test/message.js.map +1 -0
  97. package/build/test/mock.js +1289 -910
  98. package/build/test/mock.js.map +1 -1
  99. package/build/test/monitor.js +34 -0
  100. package/build/test/monitor.js.map +1 -0
  101. package/build/test/personnel-import.js +55 -0
  102. package/build/test/personnel-import.js.map +1 -0
  103. package/build/test/rate-limit.js +32 -0
  104. package/build/test/rate-limit.js.map +1 -0
  105. package/build/test/release-note.js +34 -0
  106. package/build/test/release-note.js.map +1 -0
  107. package/build/test/session.js +42 -0
  108. package/build/test/session.js.map +1 -0
  109. package/build/test/template.js +43 -0
  110. package/build/test/template.js.map +1 -0
  111. package/build/test/user-device.js +69 -0
  112. package/build/test/user-device.js.map +1 -0
  113. package/build/test/user-registration.js +44 -0
  114. package/build/test/user-registration.js.map +1 -0
  115. package/build/test/user.js +51 -0
  116. package/build/test/user.js.map +1 -0
  117. package/build/test/validation-report.js +33 -0
  118. package/build/test/validation-report.js.map +1 -0
  119. package/cspell.json +11 -8
  120. package/definitions/constants.d.ts +12 -0
  121. package/definitions/constants.d.ts.map +1 -1
  122. package/definitions/index.d.ts +2 -2
  123. package/definitions/index.d.ts.map +1 -1
  124. package/definitions/models/department.d.ts.map +1 -1
  125. package/definitions/models/device-mapping.d.ts.map +1 -1
  126. package/definitions/models/location.d.ts +2 -0
  127. package/definitions/models/location.d.ts.map +1 -1
  128. package/definitions/models/schema/cad-incident.d.ts.map +1 -1
  129. package/definitions/test/0index.d.ts +2 -0
  130. package/definitions/test/0index.d.ts.map +1 -0
  131. package/definitions/test/action-log.d.ts +2 -0
  132. package/definitions/test/action-log.d.ts.map +1 -0
  133. package/definitions/test/agency.d.ts +2 -0
  134. package/definitions/test/agency.d.ts.map +1 -0
  135. package/definitions/test/arcgis-group.d.ts.map +1 -1
  136. package/definitions/test/assignment.d.ts +2 -0
  137. package/definitions/test/assignment.d.ts.map +1 -0
  138. package/definitions/test/battalion.d.ts +2 -0
  139. package/definitions/test/battalion.d.ts.map +1 -0
  140. package/definitions/test/cad-incident-block.d.ts +2 -0
  141. package/definitions/test/cad-incident-block.d.ts.map +1 -0
  142. package/definitions/test/cad-incident.d.ts +2 -0
  143. package/definitions/test/cad-incident.d.ts.map +1 -0
  144. package/definitions/test/cad-simulation.d.ts +2 -0
  145. package/definitions/test/cad-simulation.d.ts.map +1 -0
  146. package/definitions/test/cad-status-map.d.ts +2 -0
  147. package/definitions/test/cad-status-map.d.ts.map +1 -0
  148. package/definitions/test/cad-status.d.ts +2 -0
  149. package/definitions/test/cad-status.d.ts.map +1 -0
  150. package/definitions/test/cad-vehicle-status-history.d.ts +2 -0
  151. package/definitions/test/cad-vehicle-status-history.d.ts.map +1 -0
  152. package/definitions/test/cad-vehicle-status.d.ts +2 -0
  153. package/definitions/test/cad-vehicle-status.d.ts.map +1 -0
  154. package/definitions/test/cad-vehicle.d.ts +2 -0
  155. package/definitions/test/cad-vehicle.d.ts.map +1 -0
  156. package/definitions/test/checklist-item.d.ts +2 -0
  157. package/definitions/test/checklist-item.d.ts.map +1 -0
  158. package/definitions/test/checklist.d.ts +2 -0
  159. package/definitions/test/checklist.d.ts.map +1 -0
  160. package/definitions/test/config.d.ts.map +1 -1
  161. package/definitions/test/csv-import.d.ts +2 -0
  162. package/definitions/test/csv-import.d.ts.map +1 -0
  163. package/definitions/test/department.d.ts +2 -0
  164. package/definitions/test/department.d.ts.map +1 -0
  165. package/definitions/test/device-mapping.d.ts +2 -0
  166. package/definitions/test/device-mapping.d.ts.map +1 -0
  167. package/definitions/test/esri.d.ts +2 -0
  168. package/definitions/test/esri.d.ts.map +1 -0
  169. package/definitions/test/gst-mapping.d.ts +2 -0
  170. package/definitions/test/gst-mapping.d.ts.map +1 -0
  171. package/definitions/test/helpers.d.ts +2 -0
  172. package/definitions/test/helpers.d.ts.map +1 -0
  173. package/definitions/test/incident-event.d.ts +2 -0
  174. package/definitions/test/incident-event.d.ts.map +1 -0
  175. package/definitions/test/incident-notified.d.ts +2 -0
  176. package/definitions/test/incident-notified.d.ts.map +1 -0
  177. package/definitions/test/incident-takeover.d.ts +2 -0
  178. package/definitions/test/incident-takeover.d.ts.map +1 -0
  179. package/definitions/test/job-log.d.ts +2 -0
  180. package/definitions/test/job-log.d.ts.map +1 -0
  181. package/definitions/test/location.d.ts +2 -0
  182. package/definitions/test/location.d.ts.map +1 -0
  183. package/definitions/test/mail-log.d.ts +2 -0
  184. package/definitions/test/mail-log.d.ts.map +1 -0
  185. package/definitions/test/managed-incident.d.ts +2 -0
  186. package/definitions/test/managed-incident.d.ts.map +1 -0
  187. package/definitions/test/mark43-incident-retry.d.ts +2 -0
  188. package/definitions/test/mark43-incident-retry.d.ts.map +1 -0
  189. package/definitions/test/message.d.ts +2 -0
  190. package/definitions/test/message.d.ts.map +1 -0
  191. package/definitions/test/mock.d.ts +1057 -3
  192. package/definitions/test/mock.d.ts.map +1 -1
  193. package/definitions/test/monitor.d.ts +2 -0
  194. package/definitions/test/monitor.d.ts.map +1 -0
  195. package/definitions/test/personnel-import.d.ts +2 -0
  196. package/definitions/test/personnel-import.d.ts.map +1 -0
  197. package/definitions/test/rate-limit.d.ts +2 -0
  198. package/definitions/test/rate-limit.d.ts.map +1 -0
  199. package/definitions/test/release-note.d.ts +2 -0
  200. package/definitions/test/release-note.d.ts.map +1 -0
  201. package/definitions/test/session.d.ts +2 -0
  202. package/definitions/test/session.d.ts.map +1 -0
  203. package/definitions/test/template.d.ts +2 -0
  204. package/definitions/test/template.d.ts.map +1 -0
  205. package/definitions/test/user-device.d.ts +2 -0
  206. package/definitions/test/user-device.d.ts.map +1 -0
  207. package/definitions/test/user-registration.d.ts +2 -0
  208. package/definitions/test/user-registration.d.ts.map +1 -0
  209. package/definitions/test/user.d.ts +2 -0
  210. package/definitions/test/user.d.ts.map +1 -0
  211. package/definitions/test/validation-report.d.ts +2 -0
  212. package/definitions/test/validation-report.d.ts.map +1 -0
  213. package/definitions/types/cad.d.ts +2 -2
  214. package/definitions/types/cad.d.ts.map +1 -1
  215. package/definitions/types/department.d.ts +1 -0
  216. package/definitions/types/department.d.ts.map +1 -1
  217. package/definitions/types/location.d.ts +24 -23
  218. package/definitions/types/location.d.ts.map +1 -1
  219. package/package.json +6 -6
  220. package/src/constants.ts +43 -0
  221. package/src/index.ts +2 -0
  222. package/src/models/cad-incident-stream.ts +1 -1
  223. package/src/models/chart-device-stats.ts +1 -1
  224. package/src/models/chart-incident.ts +1 -1
  225. package/src/models/chart-managed-incident.ts +1 -1
  226. package/src/models/chart-user.ts +1 -1
  227. package/src/models/department.ts +7 -1
  228. package/src/models/device-mapping.ts +4 -0
  229. package/src/models/incident-event.ts +1 -1
  230. package/src/models/job-log.ts +1 -1
  231. package/src/models/location.ts +41 -2
  232. package/src/models/managed-incident.ts +1 -1
  233. package/src/models/monitor.ts +1 -1
  234. package/src/models/schema/cad-incident.ts +1 -3
  235. package/src/models/smtp-unhandled.ts +1 -1
  236. package/src/mongoose-lean-virtuals.d.ts +4 -2
  237. package/src/test/0index.ts +71 -0
  238. package/src/test/action-log.ts +41 -0
  239. package/src/test/agency.ts +41 -0
  240. package/src/test/arcgis-group.ts +25 -63
  241. package/src/test/assignment.ts +41 -0
  242. package/src/test/battalion.ts +45 -0
  243. package/src/test/cad-incident-block.ts +44 -0
  244. package/src/test/cad-incident.ts +168 -0
  245. package/src/test/cad-simulation.ts +33 -0
  246. package/src/test/cad-status-map.ts +41 -0
  247. package/src/test/cad-status.ts +57 -0
  248. package/src/test/cad-vehicle-status-history.ts +37 -0
  249. package/src/test/cad-vehicle-status.ts +43 -0
  250. package/src/test/cad-vehicle.ts +38 -0
  251. package/src/test/checklist-item.ts +43 -0
  252. package/src/test/checklist.ts +44 -0
  253. package/src/test/config.ts +3 -3
  254. package/src/test/csv-import.ts +44 -0
  255. package/src/test/department.ts +95 -0
  256. package/src/test/device-mapping.ts +53 -0
  257. package/src/test/esri.ts +69 -0
  258. package/src/test/gst-mapping.ts +38 -0
  259. package/src/test/helpers.ts +15 -0
  260. package/src/test/incident-event.ts +53 -0
  261. package/src/test/incident-notified.ts +41 -0
  262. package/src/test/incident-takeover.ts +39 -0
  263. package/src/test/job-log.ts +37 -0
  264. package/src/test/location.ts +93 -0
  265. package/src/test/mail-log.ts +51 -0
  266. package/src/test/managed-incident.ts +116 -0
  267. package/src/test/mark43-incident-retry.ts +34 -0
  268. package/src/test/message.ts +39 -0
  269. package/src/test/mock.ts +599 -163
  270. package/src/test/monitor.ts +35 -0
  271. package/src/test/personnel-import.ts +55 -0
  272. package/src/test/rate-limit.ts +33 -0
  273. package/src/test/release-note.ts +36 -0
  274. package/src/test/session.ts +43 -0
  275. package/src/test/template.ts +44 -0
  276. package/src/test/user-device.ts +66 -0
  277. package/src/test/user-registration.ts +45 -0
  278. package/src/test/user.ts +51 -0
  279. package/src/test/validation-report.ts +33 -0
  280. package/src/tsconfig.json +6 -3
  281. package/src/types/cad.ts +2 -2
  282. package/src/types/department.ts +1 -0
  283. package/src/types/location.ts +22 -24
  284. package/tslint.json +0 -28
  285. /package/{test → test-legacy}/0index.js +0 -0
  286. /package/{test → test-legacy}/action-log.js +0 -0
  287. /package/{test → test-legacy}/agency.js +0 -0
  288. /package/{test → test-legacy}/arcgis-group.js +0 -0
  289. /package/{test → test-legacy}/assignment.js +0 -0
  290. /package/{test → test-legacy}/battalion.js +0 -0
  291. /package/{test → test-legacy}/cad-incident-block.js +0 -0
  292. /package/{test → test-legacy}/cad-incident.js +0 -0
  293. /package/{test → test-legacy}/cad-simulation.js +0 -0
  294. /package/{test → test-legacy}/cad-status-map.js +0 -0
  295. /package/{test → test-legacy}/cad-status.js +0 -0
  296. /package/{test → test-legacy}/cad-vehicle-status-history.js +0 -0
  297. /package/{test → test-legacy}/cad-vehicle-status.js +0 -0
  298. /package/{test → test-legacy}/cad-vehicle.js +0 -0
  299. /package/{test → test-legacy}/checklist-item.js +0 -0
  300. /package/{test → test-legacy}/checklist.js +0 -0
  301. /package/{test → test-legacy}/config.js +0 -0
  302. /package/{test → test-legacy}/csv-import.js +0 -0
  303. /package/{test → test-legacy}/department.js +0 -0
  304. /package/{test → test-legacy}/device-mapping.js +0 -0
  305. /package/{test → test-legacy}/esri.js +0 -0
  306. /package/{test → test-legacy}/gst-mapping.js +0 -0
  307. /package/{test → test-legacy}/helpers.js +0 -0
  308. /package/{test → test-legacy}/incident-event.js +0 -0
  309. /package/{test → test-legacy}/incident-notified.js +0 -0
  310. /package/{test → test-legacy}/incident-takeover.js +0 -0
  311. /package/{test → test-legacy}/job-log.js +0 -0
  312. /package/{test → test-legacy}/location.js +0 -0
  313. /package/{test → test-legacy}/mail-log.js +0 -0
  314. /package/{test → test-legacy}/managed-incident.js +0 -0
  315. /package/{test → test-legacy}/mark43-incident-retry.js +0 -0
  316. /package/{test → test-legacy}/message.js +0 -0
  317. /package/{test → test-legacy}/mock.js +0 -0
  318. /package/{test → test-legacy}/monitor.js +0 -0
  319. /package/{test → test-legacy}/personnel-import.js +0 -0
  320. /package/{test → test-legacy}/rate-limit.js +0 -0
  321. /package/{test → test-legacy}/release-note.js +0 -0
  322. /package/{test → test-legacy}/session.js +0 -0
  323. /package/{test → test-legacy}/template.js +0 -0
  324. /package/{test → test-legacy}/user-device.js +0 -0
  325. /package/{test → test-legacy}/user-registration.js +0 -0
  326. /package/{test → test-legacy}/user.js +0 -0
  327. /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,25 @@ module.exports = function(dependencies) {
666
956
  text: "#00AA00",
667
957
  background: "#FFAAFF"
668
958
  },
669
- modified: new Date().toISOString()
959
+ modified: new Date(),
960
+ visibility: [
961
+ "hidden",
962
+ "visible",
963
+ "cad",
964
+ "shared",
965
+ // Does not exist
966
+ "none",
967
+ "",
968
+ ]
670
969
  };
671
970
 
672
971
  const managedIncident = {
673
- _id: mongoose.Types.ObjectId(),
972
+ _id: new mongoose.Types.ObjectId(),
674
973
  CallerNumber: "(720) 275-6765",
675
974
  CommandChannel: "ACPRI",
676
975
  TacticalAltChannel: "ACOPSB",
677
976
  TacticalChannel: "ACOPSA",
678
- active: 1,
977
+ active: true,
679
978
  address: "Interstate 76 Eb / Federal To I 76 Eb, UNINCORPORATED ADAMS COUNTY CO",
680
979
  api_incident_number: "ACFR040719-0002506",
681
980
  channel: "ADAMSCOUNTYFIRERESCUEN1C-MANAGED-ACFR040719-0002506",
@@ -693,15 +992,16 @@ module.exports = function(dependencies) {
693
992
  history: [
694
993
  //
695
994
  {
696
- entity_id: 9207,
995
+ entity_id: "9207",
697
996
  entity_type: 14,
698
997
  message: "(43) 2a72 start medical (Shared)",
699
- time: 1554681941
998
+ time: 1554681941,
999
+ user: "",
700
1000
  }
701
1001
  ],
702
- is_closed: 1,
1002
+ is_closed: true,
703
1003
  location: "39.802526,-105.019773",
704
- managed: "1",
1004
+ managed: 1,
705
1005
  modified_date: "2019-04-08T00:16:30.473", // Same as the modified_unix_date
706
1006
  modified_unix_date: 1554682590.47396,
707
1007
  name: "INJURED PARTY",
@@ -714,20 +1014,52 @@ module.exports = function(dependencies) {
714
1014
  //
715
1015
  {
716
1016
  UnitID: "M12",
717
- active: 1,
1017
+ assignment: {
1018
+ name: "",
1019
+ uuid: "",
1020
+ modified_date: new Date().toISOString(),
1021
+ modified_unix_date: 1,
1022
+ built_in: true,
1023
+ isMandatory: false,
1024
+ description: "",
1025
+ active: true,
1026
+ position: 1,
1027
+ },
1028
+ AlarmAtDispatch: 0,
1029
+ uuid: "",
1030
+ parent_uuid: "",
1031
+ local_id: "",
1032
+ active: true,
718
1033
  air_time: "",
719
1034
  api_unit_dispatch_number: "5163322",
720
- checked: 0,
1035
+ checked: false,
721
1036
  column_position: 0,
722
1037
  group_position: 0,
723
1038
  incident_position: 0,
724
1039
  isSupervisor: false,
725
1040
  is_part_of_group: false,
1041
+ location_on_image: "",
726
1042
  location_on_map: "",
727
1043
  modified_date: "2019-04-08T00:16:30+0000",
728
1044
  modified_unix_date: 1554682590.51667,
729
1045
  note: "",
730
1046
  personnelOnScene: 2,
1047
+ Personnel: [
1048
+ {
1049
+ "PersonnelID": "X14",
1050
+ "PersonnelName": "Mary Smith",
1051
+ "PersonnelNote": "X",
1052
+ "PersonnelRank": "Captain",
1053
+ "PersonnelWorkCode": "TRD"
1054
+ },
1055
+ {
1056
+ "PersonnelID": "Y21",
1057
+ "PersonnelName": "Nicholas Santos",
1058
+ "PersonnelNote": "Y",
1059
+ "PersonnelRank": "PM",
1060
+ "PersonnelWorkCode": "REG"
1061
+ }
1062
+ ],
731
1063
  status: "Arrived",
732
1064
  status_unix_date: 1554682217,
733
1065
  time: "",
@@ -735,20 +1067,78 @@ module.exports = function(dependencies) {
735
1067
  }
736
1068
  ],
737
1069
  userId: "5b3e78cc944e2a18d5222424",
738
- uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F"
1070
+ uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F",
1071
+ // Share incident properties
1072
+ ReportNumber: [
1073
+ //
1074
+ {
1075
+ "name": "A",
1076
+ "number": "07-0351"
1077
+ },
1078
+ {
1079
+ "name": "B",
1080
+ "number": "UM-02210"
1081
+ }
1082
+ ],
1083
+ radioChannels: [
1084
+ //
1085
+ {
1086
+ "name": "CMD",
1087
+ "channel": "LOCAL Tone: 3",
1088
+ "url": "http://example.com/stream1",
1089
+ "channelDescription": "",
1090
+ },
1091
+ {
1092
+ "name": "TAC",
1093
+ "channel": "CDF TAC 10",
1094
+ "url": "http://example.com/stream2",
1095
+ "channelDescription": "",
1096
+ }
1097
+ ],
1098
+ record: {
1099
+ "name": "John",
1100
+ "value": "Smith",
1101
+ },
1102
+ sharedSource: {
1103
+ isExternal: true,
1104
+ name: "Demo RTS Fire Department",
1105
+ reasons: [
1106
+ {
1107
+ date: new Date("2024-05-03T00:00:00.000Z"),
1108
+ name: "Unit B10 assigned"
1109
+ }
1110
+ ]
1111
+ },
1112
+ sharedTo: [
1113
+ //
1114
+ {
1115
+ active: true,
1116
+ departmentId: "5195426cc4e016a988000965",
1117
+ expireAt: new Date("2024-08-01T10:20:30.400Z"),
1118
+ name: "Test Fire Department",
1119
+ reasons: [
1120
+ {
1121
+ date: new Date("2024-05-03T01:01:01.010Z"),
1122
+ name: "Unit M10 assigned"
1123
+ }
1124
+ ],
1125
+ startAt: new Date("2024-05-01T01:02:03.040Z"),
1126
+ }
1127
+ ],
739
1128
  };
740
1129
 
741
1130
  const monitor = {
742
- _id: mongoose.Types.ObjectId(),
1131
+ _id: new mongoose.Types.ObjectId(),
743
1132
  departmentId: "546ace2b3cd8d60d1d00256a",
744
1133
  agencyId: "123",
745
- notificationType: "maps-token-error",
1134
+ notificationType: "maps-auth-error",
746
1135
  status: "active",
1136
+ sentAt: new Date(1000.0 * 1603263604),
747
1137
  sentUnixDate: 1603263604
748
1138
  };
749
1139
 
750
1140
  const rateLimit = {
751
- _id: mongoose.Types.ObjectId(),
1141
+ _id: new mongoose.Types.ObjectId(),
752
1142
  username: "test123",
753
1143
  modified_unix_date: 1426983552.49945,
754
1144
  count: 8
@@ -783,7 +1173,7 @@ module.exports = function(dependencies) {
783
1173
  };
784
1174
 
785
1175
  const user = {
786
- _id: mongoose.Types.ObjectId(),
1176
+ _id: new mongoose.Types.ObjectId(),
787
1177
  nick: "Test",
788
1178
  email: "test@save.me",
789
1179
  mapId: "TEST",
@@ -804,9 +1194,10 @@ module.exports = function(dependencies) {
804
1194
  offDutyEnabled: true,
805
1195
  webMapSettings: {
806
1196
  defaultZoomLevel: 10,
807
- defaultCenter: [1,1],
1197
+ defaultCenter: [1, 1],
808
1198
  defaultMap: "Default"
809
- }
1199
+ },
1200
+ restrictedCommentsEnabled: true
810
1201
  };
811
1202
 
812
1203
  const userRegistration = {
@@ -844,7 +1235,9 @@ module.exports = function(dependencies) {
844
1235
  criticalAlertsEnabled: true,
845
1236
  session: "1234321",
846
1237
  active: true,
847
- offDuty: false
1238
+ offDuty: false,
1239
+ t: new Date(),
1240
+ channelId: "",
848
1241
  }
849
1242
  ],
850
1243
  notificationCount: 12,
@@ -879,7 +1272,7 @@ module.exports = function(dependencies) {
879
1272
  };
880
1273
 
881
1274
  const personnelImport = {
882
- _id: mongoose.Types.ObjectId(),
1275
+ _id: new mongoose.Types.ObjectId(),
883
1276
  PersonnelID: "AM0111",
884
1277
  PersonnelName: "Test User",
885
1278
  PersonnelRank: "Eng",
@@ -888,11 +1281,11 @@ module.exports = function(dependencies) {
888
1281
  departmentId: "123zzz",
889
1282
  radioNames: ["M10", "Z1"],
890
1283
  shiftStartTime: 1559446299,
891
- shiftStart: "2019-06-02T03:31:39.000Z",
1284
+ shiftStart: new Date("2019-06-02T03:31:39.000Z"),
892
1285
  shiftEndTime: 1569446299,
893
- shiftEnd: "2019-09-25T21:18:19.000Z",
1286
+ shiftEnd: new Date("2019-09-25T21:18:19.000Z"),
894
1287
  modified_unix_date: 1570446299,
895
- modified: "2019-10-07T11:04:59.000Z",
1288
+ modified: new Date("2019-10-07T11:04:59.000Z"),
896
1289
  active: true,
897
1290
  agencyCode: "TC",
898
1291
  agencyName: "Tablet Command",
@@ -900,38 +1293,77 @@ module.exports = function(dependencies) {
900
1293
  };
901
1294
 
902
1295
  const csvImport = {
903
- _id: mongoose.Types.ObjectId(),
1296
+ _id: new mongoose.Types.ObjectId(),
904
1297
  batchId: "AM0111",
905
1298
  departmentId: "1234",
906
1299
  agencyId: "abcd1234",
907
1300
  importType: "users",
908
1301
  fileType: "csv",
909
1302
  fileName: "test file 123",
910
- fileSize: 800,
1303
+ fileSize: "800",
911
1304
  records: [],
912
1305
  userId: "4321",
913
1306
  status: "success",
914
1307
  sendNotification: false
915
1308
  };
916
1309
 
1310
+ const validationReport = {
1311
+ _id: new mongoose.Types.ObjectId(),
1312
+ departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
1313
+ modified: new Date("2022-11-13T22:02:01Z"),
1314
+ location: [],
1315
+ statusMap: [],
1316
+ status: [],
1317
+ vehicleStatus: [],
1318
+ vehicle: [],
1319
+ incident: [
1320
+ {
1321
+ message: "path: /ReportNumber msg: must be array",
1322
+ firstSeenAt: new Date("2022-11-14T09:23:48.866Z"),
1323
+ lastSeenAt: new Date("2022-11-14T09:23:48.866Z"),
1324
+ clearedAt: new Date("2022-11-14T09:23:48.866Z"),
1325
+ payload: {
1326
+ AgencyID: "99999",
1327
+ IncidentNumber: "ABCD-1234",
1328
+ ReportNumber: ""
1329
+ }
1330
+ }
1331
+ ],
1332
+ personnel: [],
1333
+ };
1334
+
917
1335
  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({});
1336
+ if (!shouldRun()) {
1337
+ process.exit(1);
1338
+ }
1339
+
1340
+ const items = await _.first(mongoose.connections)?.db.collections();
1341
+ for (const coll of items ?? []) {
1342
+ // console.log(`Emptying ${coll.collectionName}.`);
1343
+ await coll.deleteMany({});
1344
+ }
1345
+ }
1346
+
1347
+ async function beforeEach() {
1348
+ if (!shouldRun()) {
1349
+ process.exit(1);
1350
+ }
1351
+
1352
+ await cleanup();
926
1353
  }
927
1354
 
928
1355
  return {
1356
+ beforeEach,
1357
+ cleanup,
1358
+
929
1359
  actionLog,
1360
+ mark43IncidentRetry,
930
1361
  agency,
931
- assignment,
932
1362
  arcGISGroup,
1363
+ assignment,
933
1364
  battalion,
934
1365
  cadIncident,
1366
+ cadIncidentBlock,
935
1367
  cadStatus,
936
1368
  cadStatusMap,
937
1369
  cadVehicle,
@@ -939,18 +1371,22 @@ module.exports = function(dependencies) {
939
1371
  cadVehicleStatusHistory,
940
1372
  checklist,
941
1373
  checklistItem,
942
- cleanup,
1374
+ csvImport,
943
1375
  department,
944
1376
  deviceMapping,
1377
+ deviceMappingWithWhiteSpaces,
945
1378
  esri,
946
1379
  gstMapping,
947
1380
  incidentEvent,
948
1381
  incidentNotified,
949
1382
  incidentTakeover,
1383
+ jobLog,
1384
+ releaseNote,
1385
+ cadSimulation,
950
1386
  location,
951
1387
  mailLog,
952
- message,
953
1388
  managedIncident,
1389
+ message,
954
1390
  monitor,
955
1391
  personnelImport,
956
1392
  rateLimit,
@@ -959,7 +1395,7 @@ module.exports = function(dependencies) {
959
1395
  user,
960
1396
  userDevice,
961
1397
  userRegistration,
962
- csvImport
1398
+ validationReport,
963
1399
  };
964
- };
965
- */
1400
+ }
1401
+