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
@@ -1,17 +1,183 @@
1
1
  "use strict";
2
- // import * as uuid from "uuid";
3
- // import { Types } from "mongoose";
4
2
  Object.defineProperty(exports, "__esModule", { value: true });
5
- const config_1 = require("./config");
6
- (0, config_1.checkIfTestDatabase)();
7
- function MockModule(
8
- // dependecies: {
9
- // models: unknown,
10
- // }
11
- ) {
12
- async function cleanup() {
13
- return "";
3
+ const uuid = require("uuid");
4
+ const _ = require("lodash");
5
+ const helpers_1 = require("../helpers");
6
+ function mockModule(dependencies) {
7
+ function shouldRun() {
8
+ const mongoUrl = process.env.NODE_MONGO_URL || "";
9
+ if (!/massive-test/i.exec(mongoUrl)) {
10
+ console.log(`Not a test database: ${mongoUrl}? Expecting database: massive-test.`);
11
+ return false;
12
+ }
13
+ return true;
14
14
  }
15
+ if (!shouldRun()) {
16
+ process.exit(1);
17
+ }
18
+ const { mongoose } = dependencies;
19
+ const mark43IncidentRetry = {
20
+ departmentId: "123",
21
+ incidentNumber: "abc123",
22
+ active: true,
23
+ mark43IncidentId: 123,
24
+ attempts: 0,
25
+ created: new Date(),
26
+ modified: new Date(),
27
+ retryPayload: {
28
+ departmentId: 4321,
29
+ activityType: "EVENT_CREATED",
30
+ relatedEvent: {
31
+ mark43Id: 1234,
32
+ cadAgencyEventNumber: "1234"
33
+ }
34
+ }
35
+ };
36
+ const actionLog = {
37
+ departmentId: "d1234",
38
+ email: "hello@example.com",
39
+ action: "someAction",
40
+ userId: "1234",
41
+ object: {
42
+ vehicleId: "v1171",
43
+ radioName: "E10"
44
+ },
45
+ before: {
46
+ test: "test1"
47
+ },
48
+ after: {
49
+ test: "test2"
50
+ },
51
+ delta: {
52
+ test: "test2"
53
+ }
54
+ };
55
+ const jobLog = {
56
+ host: "TestHost-01",
57
+ jobName: "Test Job 1",
58
+ state: "ready",
59
+ bidDate: new Date(),
60
+ startDate: new Date(),
61
+ completedDate: new Date(),
62
+ forceClosed: false
63
+ };
64
+ const releaseNote = {
65
+ title: "test note",
66
+ notes: "long form note...",
67
+ version: "1.94.0",
68
+ releaseDate: new Date(),
69
+ status: "draft"
70
+ };
71
+ const cadSimulation = {
72
+ "departmentId": "123",
73
+ "active": true,
74
+ "friendlyId": "test-1",
75
+ "modifiedDate": 1544771122.997,
76
+ "modified": new Date(),
77
+ "title": "Structure Fire with Confirming stills and Rescues",
78
+ "notes": "3 story apartment building ",
79
+ "simulation": true,
80
+ "notify": true,
81
+ "rts": true,
82
+ "tags": [],
83
+ "incidentType": "Structure Fire ",
84
+ "streetName": "123 test Blvd.",
85
+ "locationComment": "3 Story Apartment building ",
86
+ "suite": "Apartment Building",
87
+ "CrossStreet1": "321 Ave",
88
+ "city": "Test",
89
+ "state": "Ca",
90
+ "lat": "55.784387",
91
+ "lon": "-122.228394",
92
+ "firemap": "",
93
+ "mapPages": "",
94
+ "tacticalChannel": "Test 2 ",
95
+ "commandChannel": "",
96
+ "radioChannels": [],
97
+ "closeDelay": 1800,
98
+ "priorIncidents": [],
99
+ "randomPriorIncidents": false,
100
+ "randomStaffing": false,
101
+ "sequences": [
102
+ {
103
+ "_id": new mongoose.Types.ObjectId(),
104
+ "title": "test Alarm ",
105
+ "alarm": "1",
106
+ "sequenceId": 0,
107
+ "unitsConfig": {
108
+ "alarmLevelAtDispatch": "1",
109
+ "units": [
110
+ "E13",
111
+ "E4",
112
+ "E18",
113
+ "E16",
114
+ "T2",
115
+ "T6",
116
+ "B4",
117
+ "B2"
118
+ ]
119
+ },
120
+ "comments": [
121
+ {
122
+ "comment": "4-2-2 alarm assignment ",
123
+ "source": "DISP2"
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ "_id": new mongoose.Types.ObjectId(),
129
+ "title": "2nd Alarm ",
130
+ "alarm": "2",
131
+ "sequenceId": 1,
132
+ "unitsConfig": {
133
+ "alarmLevelAtDispatch": "2",
134
+ "units": [
135
+ "E17",
136
+ "E12",
137
+ "E29",
138
+ "T1",
139
+ "B3"
140
+ ],
141
+ },
142
+ "comments": [],
143
+ },
144
+ {
145
+ "_id": new mongoose.Types.ObjectId(),
146
+ "title": "3 Alarm ",
147
+ "alarm": "3",
148
+ "sequenceId": 2,
149
+ "unitsConfig": {
150
+ "alarmLevelAtDispatch": "3",
151
+ "units": [
152
+ "E1",
153
+ "E2",
154
+ "E25",
155
+ "T4"
156
+ ]
157
+ },
158
+ "comments": [],
159
+ }
160
+ ]
161
+ };
162
+ const agency = {
163
+ _id: new mongoose.Types.ObjectId(),
164
+ departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
165
+ code: "TC",
166
+ name: "Tablet Command",
167
+ active: true,
168
+ administrators: [
169
+ new mongoose.Types.ObjectId()
170
+ ],
171
+ personnelIntegration: true,
172
+ personnelMonitorHours: 24,
173
+ crossStaffing: [
174
+ {
175
+ radioName: "E1",
176
+ crossStaffedUnits: ["E2", "E3"],
177
+ alwaysCrossStaff: true
178
+ }
179
+ ]
180
+ };
15
181
  const arcGISGroup = {
16
182
  access: "private",
17
183
  linkedDepartments: [
@@ -19,7 +185,7 @@ function MockModule(
19
185
  department: "Demo RTS Fire Department",
20
186
  departmentId: "558365a198b2fa4278000053",
21
187
  authUsername: "tabletcmd",
22
- authError: null,
188
+ authError: "",
23
189
  users: [
24
190
  //
25
191
  {
@@ -54,908 +220,1121 @@ function MockModule(
54
220
  },
55
221
  ]
56
222
  };
57
- return {
58
- cleanup,
59
- arcGISGroup,
223
+ const assignment = {
224
+ position: 1,
225
+ active: true,
226
+ name: "Vertical Test",
227
+ userId: "1234",
228
+ departmentId: "4321",
229
+ description: "testing",
230
+ isMandatory: false,
60
231
  };
61
- }
62
- exports.default = MockModule;
63
- /*
64
- module.exports = function(dependencies) {
65
- "use strict";
66
-
67
- const {
68
- models,
69
- mongoose
70
- } = dependencies;
71
-
72
- const actionLog = {
73
- departmentId: "d1234",
74
- email: "hello@example.com",
75
- action: "someAction",
76
- userId: "1234",
77
- object: {
78
- vehicleId: "v1171",
79
- radioName: "E10"
80
- },
81
- before: {
82
- test: "test1"
83
- },
84
- after: {
85
- test: "test2"
86
- },
87
- delta: {
88
- test: "test2"
89
- }
90
- };
91
-
92
- const agency = {
93
- _id: mongoose.Types.ObjectId(),
94
- departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
95
- code: "TC",
96
- name: "Tablet Command",
97
- active: true,
98
- administrators: [
99
- new mongoose.Types.ObjectId()
100
- ],
101
- personnelIntegration: true,
102
- personnelMonitorHours: 24,
103
- crossStaffing: [
104
- {
105
- radioName: "E1",
106
- crossStaffedUnits: ["E2", "E3"],
107
- alwaysCrossStaff: true
108
- }
109
- ]
110
- };
111
-
112
- const arcGISGroup = {
113
- access: "private",
114
- linkedDepartments: [
115
- {
116
- department: "Demo RTS Fire Department",
117
- departmentId: "558365a198b2fa4278000053",
118
- authUsername: "tabletcmd",
119
- authError: null,
120
- users: [
121
- //
122
- {
123
- username: "tc_someone",
124
- email: "hello@tc.com",
125
- userId: "558365a198a2aa42780000aa",
126
- }
127
- ]
128
- }
129
- ],
130
- externalOrgIds: [
131
- "MyTOuXKXZoizaaa"
132
- ],
133
- groupId: "c5d013e197244577a583c49984d319d9",
134
- outsiders: [
135
- {
136
- fullName: "Michael Kallum",
137
- memberType: "member",
138
- orgId: "MyTOuXKXZoizaaa",
139
- username: "Michael_Kallum"
140
- }
141
- ],
142
- owner: "jane_tabletcommand",
143
- protected: true,
144
- title: "TC - City of Fire Department",
145
- users: [
146
- {
147
- fullName: "Jane Serrano",
148
- memberType: "admin",
149
- orgId: "zGXMcUaDlMGoAAAg",
150
- username: "jane_tabletcommand"
151
- },
152
- ]
153
- };
154
-
155
- const assignment = {
156
- position: 1,
157
- active: true,
158
- name: "Vertical Test",
159
- userId: "1234",
160
- departmentId: "4321",
161
- description: "testing",
162
- isMandatory: false,
163
- };
164
-
165
- const battalionUnit = {
166
- name: "BattalionUnit Test",
167
- friendly_id: "B1",
168
- local_id: 321,
169
- personnel: 4,
170
- position: 1,
171
- active: true,
172
- isMandatory: false,
173
- departmentId: "123",
174
- userId: "123",
175
- api_battalion_id: "123",
176
- battalion_uuid: "",
177
- battalion_name: "",
178
- };
179
-
180
- const battalion = {
181
- name: "Battalion Test",
182
- active: true,
183
- isMandatory: false,
184
- userId: "123",
185
- departmentId: 123,
186
- AgencyId: new mongoose.Types.ObjectId(agency._id),
187
- position: 1,
188
- units: [battalionUnit]
189
- };
190
-
191
- const checklistId = mongoose.Types.ObjectId();
192
- const checklistUUID = "150cf1ca-ffbb-42c9-bd4c-fd64be45d888";
193
-
194
- const checklistItem = {
195
- _id: mongoose.Types.ObjectId(),
196
- uuid: "150cf1ca-ffbb-42c9-bd4c-fd64be45d887",
197
- checklist_uuid: checklistUUID,
198
- position: 1,
199
- active: true,
200
- name: "TC Test Item",
201
- checked: 0,
202
- api_checklist_id: checklistId,
203
- userId: "1234",
204
- departmentId: "4321",
205
- local_id: 1,
206
- isMandatory: true,
207
- agencyId: new mongoose.Types.ObjectId(agency._id),
208
- description: "Testing Description"
209
- };
210
-
211
- const checklist = {
212
- _id: checklistId,
213
- uuid: checklistUUID,
214
- position: 1,
215
- active: true,
216
- name: "TC Test",
217
- userId: "1234",
218
- departmentId: "4321",
219
- local_id: 1,
220
- isMandatory: true,
221
- agencyId: new mongoose.Types.ObjectId(agency._id),
222
- items: [checklistItem]
223
- };
224
-
225
- const mailLog = {
226
- mailId: "1234",
227
- event: "delivery",
228
- timestamp: 1553199671,
229
- recipient: "test@tabletcommand.com",
230
- recipientDomain: "tabletcommand.com",
231
- tags: ["create account"],
232
- deliveryStatus: {},
233
- message: {},
234
- flags: {},
235
- envelope: {},
236
- logLevel: "info",
237
- reason: "Message Sent",
238
- severity: "Mild"
239
- };
240
-
241
- const message = {
242
- departmentId: "d1234",
243
- "active" : false,
244
- "title" : "Upgrade App",
245
- "body" : "Application out of date.",
246
- "actionTitle" : "Upgrade App",
247
- "color" : null,
248
- "url" : "",
249
- "priority" : 4,
250
- "type" : {
251
- "type" : "upgradeApp",
252
- "typeOpts" : {
253
- "major" : 3,
254
- "minor" : 0,
255
- "patch" : 1
256
- }
257
- },
258
- "created" : new Date().toISOString(),
259
- "uuid" : "138acffd-a94f-402d-87b3-ff6ed31a19dc",
260
- "requestId" : "138acffd-a94f-402d-87b3-ff6ed31a19db",
261
- };
262
-
263
- const cadIncident = {
264
- _id: mongoose.Types.ObjectId(),
265
- uuid: "150cf1ca-ffbb-42c9-bd4c-fd64be45d679",
266
- departmentId: "56131f724143487a10000001",
267
- AgencyID: "BDC",
268
- IncidentNumber: "19-058314",
269
- TransactionID: "15532010710000",
270
- AgencyIncidentCallTypeDescription: "AT - Ambulance Transport",
271
- StreetName: "College",
272
- StreetSuffix: "Court",
273
- Predirectional: "North",
274
- Postdirectional: "Late",
275
- CityOrLocality: "San Francisco",
276
- Floor: "2",
277
- Suite: "AA",
278
- City: "San Francisco",
279
- Building: "E",
280
- StateOrProvince: "CA",
281
- CommonPlaceName: "VALLEY VIEW MEDICAL CENTER",
282
- LocationComment: "VALLEY VIEW MEDICAL CENTER",
283
- CrossStreet1: "FIVE MILE RD",
284
- CrossStreet2: "No X-Street",
285
- cross_streets: "FIVE MILE RD/No X-Street",
286
- PostalCode: "29191",
287
- CallerNumber: "0192-122-299",
288
- PriorIncidentChanged: true,
289
- PriorIncident: [
290
- //
291
- {
292
- IncidentNumber: "19-042678",
293
- IncidentDateTime: "2019-03-01T01:56:54-08:00",
294
- Problem: "Problem Abcd",
295
- Address: "5330 Us 95 Hwy S",
296
- Suite: "83",
297
- Jurisdiction: "San Bernardino County",
232
+ const battalionUnit = {
233
+ _id: new mongoose.Types.ObjectId("56131f724143487a10009999"),
234
+ uuid: "",
235
+ agencyId: new mongoose.Types.ObjectId(),
236
+ name: "BattalionUnit Test",
237
+ friendly_id: "B1",
238
+ local_id: 321,
239
+ personnel: 4,
240
+ position: 1,
241
+ active: true,
242
+ isMandatory: false,
243
+ departmentId: "123",
244
+ userId: "123",
245
+ api_battalion_id: "123",
246
+ battalion_uuid: "",
247
+ battalion_name: "",
248
+ modified_date: "",
249
+ modified_unix_date: 1,
250
+ modified: new Date(),
251
+ };
252
+ const battalion = {
253
+ name: "Battalion Test",
254
+ active: true,
255
+ isMandatory: false,
256
+ userId: "123",
257
+ departmentId: "123",
258
+ AgencyId: new mongoose.Types.ObjectId(agency._id),
259
+ position: 1,
260
+ units: [battalionUnit]
261
+ };
262
+ const checklistId = "56131f724143487a10123456";
263
+ const checklistUUID = "150cf1ca-ffbb-42c9-bd4c-fd64be45d888";
264
+ const checklistItem = {
265
+ _id: new mongoose.Types.ObjectId(),
266
+ uuid: "150cf1ca-ffbb-42c9-bd4c-fd64be45d887",
267
+ checklist_uuid: checklistUUID,
268
+ position: 1,
269
+ active: true,
270
+ name: "TC Test Item",
271
+ checked: 0,
272
+ api_checklist_id: checklistId,
273
+ userId: "1234",
274
+ departmentId: "4321",
275
+ local_id: 1,
276
+ isMandatory: true,
277
+ description: "Testing Description",
278
+ modified_date: "",
279
+ modified_unix_date: (0, helpers_1.retrieveCurrentUnixTime)(),
280
+ };
281
+ const checklist = {
282
+ _id: new mongoose.Types.ObjectId(checklistId),
283
+ uuid: checklistUUID,
284
+ position: 1,
285
+ active: true,
286
+ name: "TC Test",
287
+ userId: "1234",
288
+ departmentId: "4321",
289
+ local_id: 1,
290
+ isMandatory: true,
291
+ agencyId: new mongoose.Types.ObjectId(agency._id),
292
+ items: [checklistItem],
293
+ modified_date: "",
294
+ modified_unix_date: (0, helpers_1.retrieveCurrentUnixTime)(),
295
+ };
296
+ const mailLog = {
297
+ mailId: "1234",
298
+ event: "delivery",
299
+ timestamp: 1553199671,
300
+ recipient: "test@tabletcommand.com",
301
+ recipientDomain: "tabletcommand.com",
302
+ tags: ["create account"],
303
+ deliveryStatus: {},
304
+ message: {},
305
+ flags: {},
306
+ envelope: {},
307
+ logLevel: "info",
308
+ reason: "Message Sent",
309
+ severity: "Mild"
310
+ };
311
+ const message = {
312
+ departmentId: "d1234",
313
+ "active": false,
314
+ "title": "Upgrade App",
315
+ "body": "Application out of date.",
316
+ "actionTitle": "Upgrade App",
317
+ "color": { background: "", text: "" },
318
+ "url": "",
319
+ "priority": 4,
320
+ "type": {
321
+ "type": "upgradeApp",
322
+ "typeOpts": {
323
+ "major": 3,
324
+ "minor": 0,
325
+ "patch": 1
326
+ }
327
+ },
328
+ "created": new Date(),
329
+ "uuid": "138acffd-a94f-402d-87b3-ff6ed31a19dc",
330
+ "requestId": "138acffd-a94f-402d-87b3-ff6ed31a19db",
331
+ };
332
+ const cadIncident = {
333
+ _id: new mongoose.Types.ObjectId(),
334
+ uuid: "150cf1ca-ffbb-42c9-bd4c-fd64be45d679",
335
+ departmentId: "56131f724143487a10000001",
336
+ AgencyID: "BDC",
337
+ IncidentNumber: "19-058314",
338
+ TransactionID: "15532010710000",
339
+ AgencyIncidentCallTypeDescription: "AT - Ambulance Transport",
340
+ StreetName: "College",
341
+ StreetSuffix: "Court",
342
+ Predirectional: "North",
343
+ Postdirectional: "Late",
344
+ CityOrLocality: "San Francisco",
345
+ Floor: "2",
346
+ Suite: "AA",
347
+ City: "San Francisco",
348
+ Building: "E",
349
+ StateOrProvince: "CA",
350
+ CommonPlaceName: "VALLEY VIEW MEDICAL CENTER",
351
+ LocationComment: "VALLEY VIEW MEDICAL CENTER",
352
+ CrossStreet1: "FIVE MILE RD",
353
+ CrossStreet2: "No X-Street",
354
+ cross_streets: "FIVE MILE RD/No X-Street",
355
+ PostalCode: "29191",
356
+ CallerNumber: "0192-122-299",
357
+ PriorIncidentChanged: true,
358
+ PriorIncident: [
359
+ //
360
+ {
361
+ IncidentNumber: "19-042678",
362
+ IncidentDateTime: "2019-03-01T01:56:54-08:00",
363
+ Problem: "Problem Abcd",
364
+ Address: "5330 Us 95 Hwy S",
365
+ Suite: "83",
366
+ Jurisdiction: "San Bernardino County",
367
+ Comment: [
368
+ //
369
+ {
370
+ Comment: "[1] Call Appended to Incident number 19-042593",
371
+ CommentSource: "G8724",
372
+ CommentDateTime: "2019-03-01T01:59:57-08:00",
373
+ CommentConfidential: false,
374
+ CommentOpts: { type: "", item: "" },
375
+ }
376
+ ]
377
+ }
378
+ ],
379
+ Latitude: 34.788611,
380
+ Longitude: -114.549444,
298
381
  Comment: [
299
- //
300
- {
301
- Comment: "[1] Call Appended to Incident number 19-042593",
302
- CommentSource: "G8724",
303
- CommentDateTime: "2019-03-01T01:59:57-08:00"
304
- }
382
+ //
383
+ {
384
+ Comment: "(1) VALLEY VIEW ICU TO SUNRISE ICU",
385
+ CommentSource: "H6577",
386
+ CommentDateTime: "2019-03-21T13:21:08-07:00",
387
+ CommentConfidential: false,
388
+ CommentOpts: { type: "", item: "" },
389
+ }
390
+ ],
391
+ units: [
392
+ //
393
+ {
394
+ UnitDispatchNumber: "4067677",
395
+ UnitID: "MA31",
396
+ TimeDispatched: "2019-03-21T13:21:22-07:00",
397
+ Personnel: [
398
+ {
399
+ "PersonnelID": "X14",
400
+ "PersonnelName": "Mary Smith",
401
+ "PersonnelNote": "X",
402
+ "PersonnelRank": "Captain",
403
+ "PersonnelWorkCode": "TRD",
404
+ },
405
+ {
406
+ "PersonnelID": "Y21",
407
+ "PersonnelName": "Nicholas Santos",
408
+ "PersonnelNote": "Y",
409
+ "PersonnelRank": "PM",
410
+ "PersonnelWorkCode": "REG",
411
+ }
412
+ ],
413
+ "AlarmAtDispatch": "",
414
+ "TimeEnroute": "",
415
+ "TimeArrived": "",
416
+ "TimeStaged": "",
417
+ "TimeCleared": "",
418
+ "TimeAtHospital": "",
419
+ "TimePatient": "",
420
+ "TimeTransport": "",
421
+ "TimeTransporting": "",
422
+ "PersonnelCount": 2,
423
+ "uuid": "",
424
+ }
425
+ ],
426
+ preference_location: "address",
427
+ EntryDateTime: "2019-03-21T13:21:11-07:00",
428
+ ClosedDateTime: "",
429
+ closed_unix_date: 0,
430
+ start_unix_date: 1553199671,
431
+ modified_unix_date: 1553201071.636,
432
+ // Share incident properties
433
+ ReportNumber: [
434
+ //
435
+ {
436
+ "name": "A",
437
+ "number": "07-0351"
438
+ },
439
+ {
440
+ "name": "B",
441
+ "number": "UM-02210"
442
+ }
443
+ ],
444
+ radioChannels: [
445
+ //
446
+ {
447
+ "name": "CMD",
448
+ "channel": "LOCAL Tone: 3",
449
+ "url": "http://example.com/stream1",
450
+ "channelDescription": ""
451
+ },
452
+ {
453
+ "name": "TAC",
454
+ "channel": "CDF TAC 10",
455
+ "url": "http://example.com/stream2",
456
+ "channelDescription": ""
457
+ }
458
+ ],
459
+ record: {
460
+ "name": "John",
461
+ "value": "Smith",
462
+ },
463
+ sharedSource: {
464
+ isExternal: true,
465
+ name: "Demo RTS Fire Department",
466
+ reasons: [
467
+ {
468
+ date: new Date("2024-05-03T00:00:00.000Z"),
469
+ name: "Unit B10 assigned"
470
+ }
471
+ ]
472
+ },
473
+ sharedTo: [
474
+ //
475
+ {
476
+ active: true,
477
+ departmentId: "5195426cc4e016a988000965",
478
+ expireAt: new Date("2024-08-01T10:20:30.400Z"),
479
+ name: "Test Fire Department",
480
+ reasons: [
481
+ {
482
+ date: new Date("2024-05-03T01:01:01.010Z"),
483
+ name: "Unit M10 assigned"
484
+ }
485
+ ],
486
+ startAt: new Date("2024-05-01T01:02:03.040Z"),
487
+ }
488
+ ],
489
+ };
490
+ const cadIncidentBlock = {
491
+ "EntryDateTime": "2023-09-20T09:14:37-07:00",
492
+ "ClosedDateTime": "2023-09-20T10:36:36-07:00",
493
+ "source": "callType",
494
+ "departmentId": "64948d8f051d17033f77d034",
495
+ "AgencyIncidentCallTypeDescription": "OTH, MISCELLANEOUS",
496
+ "IncidentNumber": "A23031",
497
+ "ReportNumber": [
498
+ {
499
+ "name": "Incident",
500
+ "number": "CA68"
501
+ }
502
+ ],
503
+ "createdAt": "2023-09-20T16:14:30.000+0000"
504
+ };
505
+ const cadStatus = {
506
+ _id: new mongoose.Types.ObjectId(),
507
+ code: "AV",
508
+ codeDisplay: "RS",
509
+ color: {
510
+ background: "#7b7d7d",
511
+ text: "#F8F9F9"
512
+ },
513
+ departmentId: "51a2529293e11b3569000057",
514
+ modifiedDate: 1544771122.997,
515
+ name: "In Service",
516
+ normalized: "inService",
517
+ options: [
518
+ //
519
+ {
520
+ cadKey: "oosCode",
521
+ cadValues: [
522
+ //
523
+ {
524
+ favorite: false,
525
+ name: "ADM - Admin",
526
+ position: 20,
527
+ type: "string",
528
+ value: "ADM",
529
+ visible: true,
530
+ isDefault: true,
531
+ latitude: 0,
532
+ longitude: 0,
533
+ time: 0,
534
+ }
535
+ ],
536
+ name: "oosCode",
537
+ position: 2,
538
+ visible: true
539
+ }
540
+ ],
541
+ roaming: false,
542
+ selfAssignable: true,
543
+ status: "OR",
544
+ statusId: 1,
545
+ uuid: "8086956b-43af-4300-aa30-5efbd10b2c98"
546
+ };
547
+ const cadStatusMap = {
548
+ "departmentId": "51a2529293e11b3569000057",
549
+ "fromStatusId": 0,
550
+ "modifiedDate": 1544143059.729,
551
+ "toStatusIds": [
552
+ //
553
+ {
554
+ "statusId": 1,
555
+ "userEnabled": true,
556
+ "position": 0,
557
+ }
558
+ ]
559
+ };
560
+ const cadVehicle = {
561
+ _id: new mongoose.Types.ObjectId(),
562
+ uuid: "30f8d7c7-20a3-4a12-b911-a424f5037003",
563
+ radioName: "T01",
564
+ vehicleId: "7705",
565
+ modifiedDate: 1541569088.909,
566
+ departmentId: "5195426cc4e016a988000965",
567
+ station: {
568
+ code: "S01",
569
+ name: "Station 01"
570
+ },
571
+ capability: ""
572
+ };
573
+ const cadVehicleStatus = {
574
+ uuid: "5a324923-2622-48f2-abaa-8a855e7cebdf",
575
+ departmentId: "d1234",
576
+ vehicleId: "v1171",
577
+ radioName: "E10",
578
+ requestTime: 1516557000,
579
+ responseTime: 1516567096,
580
+ status: "Dispatched",
581
+ statusCode: "DISP",
582
+ modifiedDate: 1516577096,
583
+ requestStatus: 0,
584
+ incidentNumber: "INC19991",
585
+ capability: "",
586
+ owner: "user",
587
+ ownerId: "M1"
588
+ };
589
+ const cadVehicleStatusHistory = {
590
+ departmentId: "d1234",
591
+ vehicleId: "v1171",
592
+ radioName: "E10",
593
+ status: "Dispatched",
594
+ statusCode: "DISP",
595
+ requestedAt: 1516557000,
596
+ requestedBy: "user",
597
+ modifiedDate: 1516577096,
598
+ incidentNumber: "INC19991"
599
+ };
600
+ const department = {
601
+ _id: new mongoose.Types.ObjectId(),
602
+ department: "Test Department",
603
+ addressDetails: {
604
+ city: "San Francisco",
605
+ address: "",
606
+ state: "",
607
+ zipCode: "",
608
+ country: "",
609
+ },
610
+ active: true,
611
+ apikey: "abcd",
612
+ partialApiKey: "ab",
613
+ personnelStaffingEnabled: true,
614
+ rtsEnabled: true,
615
+ rtsChannelPrefix: "CH_TEST",
616
+ pubNubV3: {
617
+ token: "CH_AUTH_TOKEN",
618
+ expireAt: new Date("2021-09-10T23:25:02.196Z"),
619
+ runAt: new Date("2021-09-10T08:25:02.196Z"),
620
+ },
621
+ agencyIds: [
622
+ new mongoose.Types.ObjectId(agency._id)
623
+ ],
624
+ signupKey: "A1B2",
625
+ incidentTypes: [{
626
+ name: "Type",
627
+ value: "type",
628
+ allowPartialMatch: true,
629
+ callTypeDescription: [],
630
+ callType: [],
631
+ }],
632
+ shareLocationPhones: false,
633
+ shareLocationTablets: true,
634
+ cadOneWayVehiclesEnabled: false,
635
+ mowsEnabled: true,
636
+ shareAVL: {
637
+ enabled: true,
638
+ opAreaCode: "DAL",
639
+ opAreaName: "Delta Operations",
640
+ fadeZoomLevel: 1,
641
+ },
642
+ accountType: "production",
643
+ timeZone: "America/Los_Angeles",
644
+ firstArrivingEnabled: true,
645
+ firstArriving: {
646
+ token: "123",
647
+ apiUrl: "",
648
+ },
649
+ simpleSenseEnabled: true,
650
+ simpleSense: {
651
+ token: "123"
652
+ },
653
+ licensing: {
654
+ tcPro2Way: 0,
655
+ tcPro1Way: 0,
656
+ tcMobile: 0,
657
+ tcWeb: 0,
658
+ fireMapperPro: 0,
659
+ sendToCAD: 0,
660
+ tcStreams: 0,
661
+ },
662
+ webDisclaimer: {
663
+ message: "test",
664
+ enabled: true
665
+ },
666
+ notificationEmails: ["test@test.com"],
667
+ externalNotificationsEnabled: true,
668
+ restrictedComments: {
669
+ enabled: false,
670
+ callTypesAllowed: [],
671
+ statusesAllowed: [],
672
+ restrictedFields: [],
673
+ restrictedMessage: "Restricted Message"
674
+ },
675
+ customButtons: [
676
+ {
677
+ name: "Button Custom",
678
+ url: "",
679
+ order: 1,
680
+ allowExternal: false,
681
+ defaultExternal: false,
682
+ allowFloating: false,
683
+ color: {
684
+ "background": "#512e5f",
685
+ "text": "#F8F9F9"
686
+ }
687
+ }
688
+ ],
689
+ reportNumberEnabled: true,
690
+ samsara: {
691
+ enabled: false,
692
+ token: "",
693
+ },
694
+ reportOdometer: "status",
695
+ };
696
+ const esriMap = {
697
+ offline: [],
698
+ size: 0,
699
+ modified: 1,
700
+ modifiedAt: new Date(),
701
+ mapLayers: [
702
+ //
703
+ {
704
+ "url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/XBO_Branches_Updated/FeatureServer/0",
705
+ "itemId": "XBO_Branches_Updated_3067",
706
+ "layerType": "ArcGISFeatureLayer",
707
+ "title": "XBO Branches_Updated",
708
+ "layerId": "",
709
+ "visibility": true,
710
+ "opacity": 1,
711
+ "access": "",
712
+ "owner": "",
713
+ },
714
+ {
715
+ "itemId": "city_limits_092019_4185",
716
+ "layerType": "ArcGISFeatureLayer",
717
+ "title": "City Limits",
718
+ "url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/city_limits_092019/FeatureServer/0",
719
+ "layerId": "",
720
+ "visibility": true,
721
+ "opacity": 1,
722
+ "access": "",
723
+ "owner": "",
724
+ },
725
+ {
726
+ "itemId": "unvdpdod57lext9eck9nxipcov2dgjqs_8576",
727
+ "layerType": "ArcGISFeatureLayer",
728
+ "title": "Tablet Command",
729
+ "url": "https://api.tabletcommand.com/esri/tc-file/unvdpdod57lext9eck9nxipcov2dgjqs/FeatureServer/0",
730
+ "layerId": "",
731
+ "visibility": true,
732
+ "opacity": 1,
733
+ "access": "",
734
+ "owner": "",
735
+ }
736
+ ],
737
+ "owner": "john_tabletcommand",
738
+ "title": "Location (MM Filters)",
739
+ "url": "",
740
+ "access": "shared",
741
+ "baseMap": {
742
+ "baseMapLayers": [
743
+ //
744
+ {
745
+ "opacity": 1,
746
+ "id": "VectorTile_1188",
747
+ "type": "VectorTileLayer",
748
+ "layerType": "VectorTileLayer",
749
+ "title": "World Street Map (Night)",
750
+ "styleUrl": "https://cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json",
751
+ "visibility": true,
752
+ "layerId": "",
753
+ "itemId": "",
754
+ "url": "",
755
+ "access": "",
756
+ "owner": "",
757
+ }
758
+ ],
759
+ "title": "Streets (Night)"
760
+ },
761
+ "itemId": "01cebf7aede94ed3a9f4c260e18a7d7e",
762
+ "type": "Web Map",
763
+ "tags": [
764
+ "XBO",
765
+ "Tabletcommand"
766
+ ],
767
+ "development": true,
768
+ };
769
+ const deviceMapping = {
770
+ _id: new mongoose.Types.ObjectId(),
771
+ nick: "Test",
772
+ departmentId: "d123",
773
+ deviceType: "hello",
774
+ mapId: "map123",
775
+ deviceId: "deviceType121",
776
+ modified_unix_date: 1432230780,
777
+ active: false,
778
+ remoteAddress: "1.2.3.4",
779
+ note: "don't feed after dark",
780
+ mapHidden: false
781
+ };
782
+ const deviceMappingWithWhiteSpaces = {
783
+ _id: new mongoose.Types.ObjectId(),
784
+ nick: "Test Nick",
785
+ departmentId: "d123",
786
+ deviceType: "DeviceTypeTest",
787
+ mapId: " map123 ",
788
+ deviceId: " deviceType123 ",
789
+ modified_unix_date: 1432230780,
790
+ active: false,
791
+ remoteAddress: " 6.0.6.0 ",
792
+ note: " i will get trimmed ",
793
+ mapHidden: false
794
+ };
795
+ const esri = {
796
+ _id: new mongoose.Types.ObjectId(),
797
+ departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
798
+ modified_unix_date: 1432230780,
799
+ auth: {
800
+ username: "fire_maps",
801
+ encrypted: {
802
+ iv: "18f17",
803
+ encryptedData: "dee54"
804
+ }
805
+ },
806
+ fireMapperAuth: {
807
+ username: "fire_mapper",
808
+ encrypted: {
809
+ iv: "28f10",
810
+ encryptedData: "dee99"
811
+ },
812
+ encryptedAccessCode: {
813
+ iv: "99f1341",
814
+ encryptedData: "zoom123"
815
+ }
816
+ },
817
+ maps: [
818
+ esriMap
819
+ ],
820
+ mapsProperties: [
821
+ //
822
+ {
823
+ itemId: "01cebf7aede94ed3a9f4c260e18a7d7e",
824
+ download: true,
825
+ }
826
+ ]
827
+ };
828
+ const gstMapping = {
829
+ _id: new mongoose.Types.ObjectId(),
830
+ departmentId: "d123",
831
+ unitId: "E123",
832
+ modified_unix_date: 1432230780,
833
+ active: false,
834
+ remoteAddress: "1.2.3.4",
835
+ note: "don't feed after dark",
836
+ mapHidden: false,
837
+ gstAgency: "LAX",
838
+ deviceType: "gst",
839
+ };
840
+ const incidentEvent = {
841
+ IncidentNumber: "TC1212121",
842
+ departmentId: "d123",
843
+ modified_unix_date: 1432230780,
844
+ message: "Hello from the other side",
845
+ location: {
846
+ longitude: -29.90129,
847
+ latitude: 121.223131
848
+ },
849
+ userTime: 1437121647,
850
+ type: "contribution",
851
+ user: {
852
+ email: "marius+cc@tabletcommand.com",
853
+ username: "ztc-marcc",
854
+ radioName: "E12",
855
+ userId: "51c2dcca0c599704e400001f"
856
+ },
857
+ uuid: "ABCDEF"
858
+ };
859
+ const incidentTakeover = {
860
+ _id: new mongoose.Types.ObjectId(),
861
+ incident_id: "i1234",
862
+ incident_name: "Test Incident",
863
+ incident_number: "TC-12345",
864
+ departmentId: "d123",
865
+ old_owner: "user1",
866
+ new_owner: "user2",
867
+ owner: "",
868
+ status: "request",
869
+ request_time: 1442888560
870
+ };
871
+ const incidentNotified = {
872
+ _id: new mongoose.Types.ObjectId(),
873
+ departmentId: "d123",
874
+ IncidentNumber: "T-1536603902",
875
+ incidentTypes: [
876
+ "any"
877
+ ],
878
+ units: [
879
+ "E31"
880
+ ],
881
+ unitsByDispatch: [
882
+ {
883
+ UnitID: "E31",
884
+ UnitDispatchNumber: "12345"
885
+ }
886
+ ],
887
+ sent: [],
888
+ updated: new Date("2018-09-10T18:25:02.196Z")
889
+ };
890
+ const location = {
891
+ _id: new mongoose.Types.ObjectId(),
892
+ departmentId: "d123",
893
+ userId: "542a40db20783c000000153d",
894
+ uuid: "92c8f732-52b7-46cc-855a-d54fddfe3172",
895
+ username: "E23",
896
+ device_type: "iPad",
897
+ active: true,
898
+ heading: 43,
899
+ locationGeoJSON: {
900
+ type: "Point",
901
+ coordinates: [-120.001, 37.001],
902
+ },
903
+ session: "abcd",
904
+ opAreaCode: "DAL",
905
+ opAreaName: "Delta Operations",
906
+ shared: true,
907
+ state: "CA",
908
+ sendToCAD: false,
909
+ color: {
910
+ text: "#00AA00",
911
+ background: "#FFAAFF"
912
+ },
913
+ modified: new Date(),
914
+ visibility: [
915
+ "hidden",
916
+ "visible",
917
+ "cad",
918
+ "shared",
919
+ // Does not exist
920
+ "none",
921
+ "",
305
922
  ]
306
- }
307
- ],
308
- Latitude: "34.788611",
309
- Longitude: "-114.549444",
310
- Comment: [
311
- //
312
- {
313
- Comment: "(1) VALLEY VIEW ICU TO SUNRISE ICU",
314
- CommentSource: "H6577",
315
- CommentDateTime: "2019-03-21T13:21:08-07:00"
316
- }
317
- ],
318
- units: [
319
- //
320
- {
321
- UnitDispatchNumber: 4067677,
322
- UnitID: "MA31",
323
- TimeDispatched: "2019-03-21T13:21:22-07:00"
324
- }
325
- ],
326
- preference_location: "address",
327
- EntryDateTime: "2019-03-21T13:21:11-07:00",
328
- ClosedDateTime: "",
329
- closed_unix_date: 0,
330
- start_unix_date: 1553199671,
331
- modified_unix_date: 1553201071.636
332
- };
333
-
334
- const cadStatus = {
335
- _id: mongoose.Types.ObjectId(),
336
- code: "AV",
337
- codeDisplay: "RS",
338
- color: {
339
- background: "#7b7d7d",
340
- text: "#F8F9F9"
341
- },
342
- departmentId: "51a2529293e11b3569000057",
343
- modifiedDate: 1544771122.997,
344
- name: "In Service",
345
- normalized: "inService",
346
- options: [
347
- //
348
- {
349
- cadKey: "oosCode",
350
- cadValues: [
351
- //
352
- {
353
- favorite: false,
354
- name: "ADM - Admin",
355
- position: 20,
356
- type: "string",
357
- value: "ADM",
358
- visible: true
359
- }
923
+ };
924
+ const managedIncident = {
925
+ _id: new mongoose.Types.ObjectId(),
926
+ CallerNumber: "(720) 275-6765",
927
+ CommandChannel: "ACPRI",
928
+ TacticalAltChannel: "ACOPSB",
929
+ TacticalChannel: "ACOPSA",
930
+ active: true,
931
+ address: "Interstate 76 Eb / Federal To I 76 Eb, UNINCORPORATED ADAMS COUNTY CO",
932
+ api_incident_number: "ACFR040719-0002506",
933
+ channel: "ADAMSCOUNTYFIRERESCUEN1C-MANAGED-ACFR040719-0002506",
934
+ channel_owner: "e12@acfpd.org",
935
+ departmentId: "5b17f315f877ee16f3d019b7",
936
+ end_time: "2019-04-08T00:16:30+0000",
937
+ end_unix_time: 1554682590.44313,
938
+ esri_map: {
939
+ json: "YnBsaXN0MDDUAQIDBAUGCAlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKEHVSRudWxsXxAPTlNLZXllZEFyY2hpdmVy0QoLVHJvb3SAAAgRGiMtMjc5P1FUWQAAAAAAAAEBAAAAAAAAAAwAAAAAAAAAAAAAAAAAAABb",
940
+ map_type: "Generic",
941
+ name: "Street",
942
+ url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
943
+ uuid: "00FCA57A-6F1B-4F74-84BD-E7A8B8BFF8FB"
944
+ },
945
+ history: [
946
+ //
947
+ {
948
+ entity_id: "9207",
949
+ entity_type: 14,
950
+ message: "(43) 2a72 start medical (Shared)",
951
+ time: 1554681941,
952
+ user: "",
953
+ }
954
+ ],
955
+ is_closed: true,
956
+ location: "39.802526,-105.019773",
957
+ managed: 1,
958
+ modified_date: "2019-04-08T00:16:30.473",
959
+ modified_unix_date: 1554682590.47396,
960
+ name: "INJURED PARTY",
961
+ preference_location: "location",
962
+ slave_map_changed: false,
963
+ source: "cad",
964
+ start_time: "2019-04-08T00:05:41+0000",
965
+ start_unix_time: 1554681941,
966
+ units: [
967
+ //
968
+ {
969
+ UnitID: "M12",
970
+ assignment: {
971
+ name: "",
972
+ uuid: "",
973
+ modified_date: new Date().toISOString(),
974
+ modified_unix_date: 1,
975
+ built_in: true,
976
+ isMandatory: false,
977
+ description: "",
978
+ active: true,
979
+ position: 1,
980
+ },
981
+ AlarmAtDispatch: 0,
982
+ uuid: "",
983
+ parent_uuid: "",
984
+ local_id: "",
985
+ active: true,
986
+ air_time: "",
987
+ api_unit_dispatch_number: "5163322",
988
+ checked: false,
989
+ column_position: 0,
990
+ group_position: 0,
991
+ incident_position: 0,
992
+ isSupervisor: false,
993
+ is_part_of_group: false,
994
+ location_on_image: "",
995
+ location_on_map: "",
996
+ modified_date: "2019-04-08T00:16:30+0000",
997
+ modified_unix_date: 1554682590.51667,
998
+ note: "",
999
+ personnelOnScene: 2,
1000
+ Personnel: [
1001
+ {
1002
+ "PersonnelID": "X14",
1003
+ "PersonnelName": "Mary Smith",
1004
+ "PersonnelNote": "X",
1005
+ "PersonnelRank": "Captain",
1006
+ "PersonnelWorkCode": "TRD"
1007
+ },
1008
+ {
1009
+ "PersonnelID": "Y21",
1010
+ "PersonnelName": "Nicholas Santos",
1011
+ "PersonnelNote": "Y",
1012
+ "PersonnelRank": "PM",
1013
+ "PersonnelWorkCode": "REG"
1014
+ }
1015
+ ],
1016
+ status: "Arrived",
1017
+ status_unix_date: 1554682217,
1018
+ time: "",
1019
+ warning: 0
1020
+ }
1021
+ ],
1022
+ userId: "5b3e78cc944e2a18d5222424",
1023
+ uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F",
1024
+ // Share incident properties
1025
+ ReportNumber: [
1026
+ //
1027
+ {
1028
+ "name": "A",
1029
+ "number": "07-0351"
1030
+ },
1031
+ {
1032
+ "name": "B",
1033
+ "number": "UM-02210"
1034
+ }
1035
+ ],
1036
+ radioChannels: [
1037
+ //
1038
+ {
1039
+ "name": "CMD",
1040
+ "channel": "LOCAL Tone: 3",
1041
+ "url": "http://example.com/stream1",
1042
+ "channelDescription": "",
1043
+ },
1044
+ {
1045
+ "name": "TAC",
1046
+ "channel": "CDF TAC 10",
1047
+ "url": "http://example.com/stream2",
1048
+ "channelDescription": "",
1049
+ }
1050
+ ],
1051
+ record: {
1052
+ "name": "John",
1053
+ "value": "Smith",
1054
+ },
1055
+ sharedSource: {
1056
+ isExternal: true,
1057
+ name: "Demo RTS Fire Department",
1058
+ reasons: [
1059
+ {
1060
+ date: new Date("2024-05-03T00:00:00.000Z"),
1061
+ name: "Unit B10 assigned"
1062
+ }
1063
+ ]
1064
+ },
1065
+ sharedTo: [
1066
+ //
1067
+ {
1068
+ active: true,
1069
+ departmentId: "5195426cc4e016a988000965",
1070
+ expireAt: new Date("2024-08-01T10:20:30.400Z"),
1071
+ name: "Test Fire Department",
1072
+ reasons: [
1073
+ {
1074
+ date: new Date("2024-05-03T01:01:01.010Z"),
1075
+ name: "Unit M10 assigned"
1076
+ }
1077
+ ],
1078
+ startAt: new Date("2024-05-01T01:02:03.040Z"),
1079
+ }
1080
+ ],
1081
+ };
1082
+ const monitor = {
1083
+ _id: new mongoose.Types.ObjectId(),
1084
+ departmentId: "546ace2b3cd8d60d1d00256a",
1085
+ agencyId: "123",
1086
+ notificationType: "maps-auth-error",
1087
+ status: "active",
1088
+ sentAt: new Date(1000.0 * 1603263604),
1089
+ sentUnixDate: 1603263604
1090
+ };
1091
+ const rateLimit = {
1092
+ _id: new mongoose.Types.ObjectId(),
1093
+ username: "test123",
1094
+ modified_unix_date: 1426983552.49945,
1095
+ count: 8
1096
+ };
1097
+ const session = {
1098
+ when: "2019-04-01T04:41:38.509Z",
1099
+ user: "51c2dcca0c599704e400001f",
1100
+ email: "marius+cc@tabletcommand.com",
1101
+ nick: "ztc-marcc",
1102
+ deviceId: "7evAKaFiOeaWTlsMTOSQMBKN",
1103
+ remoteAddress: "124.148.161.107",
1104
+ userAgent: "TCMobile/1.6 (iPhone; iOS 12.1; Scale/2.00)",
1105
+ why: "password",
1106
+ departmentId: "51a2529293e11b3569000057",
1107
+ source: "iphone.beta",
1108
+ token: uuid.v4(),
1109
+ active: false,
1110
+ ended: "2019-04-01T04:41:39.233Z"
1111
+ };
1112
+ const template = {
1113
+ position: 1,
1114
+ active: true,
1115
+ name: "Vertical Test",
1116
+ userId: "1234",
1117
+ departmentId: "4321",
1118
+ isMandatory: false,
1119
+ group: [],
1120
+ checklist: [],
1121
+ agencyId: new mongoose.Types.ObjectId(agency._id)
1122
+ };
1123
+ const user = {
1124
+ _id: new mongoose.Types.ObjectId(),
1125
+ nick: "Test",
1126
+ email: "test@save.me",
1127
+ mapId: "TEST",
1128
+ departmentId: "d123",
1129
+ isPro: true,
1130
+ agencyId: new mongoose.Types.ObjectId(agency._id),
1131
+ managedAgencies: [new mongoose.Types.ObjectId(agency._id)],
1132
+ shareLocationPhone: false,
1133
+ shareLocationTablet: true,
1134
+ notificationSounds: [
1135
+ //
1136
+ {
1137
+ sound: "testSound.caf",
1138
+ soundType: "default",
1139
+ }
1140
+ ],
1141
+ offlineMapsEnabled: true,
1142
+ offDutyEnabled: true,
1143
+ webMapSettings: {
1144
+ defaultZoomLevel: 10,
1145
+ defaultCenter: [1, 1],
1146
+ defaultMap: "Default"
1147
+ },
1148
+ restrictedCommentsEnabled: true
1149
+ };
1150
+ const userRegistration = {
1151
+ email: "test@email.com",
1152
+ name: "John Waters",
1153
+ firstName: "John",
1154
+ lastName: "Waters",
1155
+ department: "New York City, NY",
1156
+ title: "Mr",
1157
+ modifiedDate: 1426983552.49945,
1158
+ status: "registered",
1159
+ stage: "afterEULA",
1160
+ presentedAt: 1488157071.042124,
1161
+ managedIncidentsCount: 1,
1162
+ checklistsCount: 2,
1163
+ firstIncidentUnixTime: 1443666043.380937,
1164
+ lastIncidentLocation: "40.999357,-85.767932",
1165
+ lastIncidentUnixTime: 1480525299.50968
1166
+ };
1167
+ const userDevice = {
1168
+ userId: "1234",
1169
+ departmentID: "4321",
1170
+ devices: [
1171
+ //
1172
+ {
1173
+ token: "de2687382a9df6a1165616aac",
1174
+ env: "testmock",
1175
+ ver: "TC Mobile v1.0 b23",
1176
+ ua: "TCMobile/1.0 (iPhone; iOS 10.1.1; Scale/3.00)",
1177
+ time: 1438627429.956,
1178
+ drift: 1438627429.956,
1179
+ bundleIdentifier: "com.testtesttest.TCMobile",
1180
+ silentEnabled: true,
1181
+ criticalAlertsEnabled: true,
1182
+ session: "1234321",
1183
+ active: true,
1184
+ offDuty: false,
1185
+ t: new Date(),
1186
+ channelId: "",
1187
+ }
1188
+ ],
1189
+ notificationCount: 12,
1190
+ notificationUnitSettings: [
1191
+ {
1192
+ radioName: "B1",
1193
+ notificationType: "NORMAL",
1194
+ notificationMode: "ON DUTY"
1195
+ }
1196
+ ],
1197
+ notificationIncidentSettings: [
1198
+ {
1199
+ incidentType: "Cliff Rescue",
1200
+ notificationType: "NORMAL",
1201
+ notificationMode: "ON DUTY"
1202
+ }
1203
+ ],
1204
+ notificationSounds: {
1205
+ ios: {
1206
+ sound: "a.caf",
1207
+ soundType: "default",
1208
+ os: "ios"
1209
+ },
1210
+ android: {
1211
+ sound: "b.mp3",
1212
+ soundType: "default",
1213
+ os: "android"
1214
+ }
1215
+ },
1216
+ offDuty: true,
1217
+ criticalAlertsVolume: "MED",
1218
+ };
1219
+ const personnelImport = {
1220
+ _id: new mongoose.Types.ObjectId(),
1221
+ PersonnelID: "AM0111",
1222
+ PersonnelName: "Test User",
1223
+ PersonnelRank: "Eng",
1224
+ PersonnelWorkCode: "abcd1234",
1225
+ PersonnelNote: "A test user",
1226
+ departmentId: "123zzz",
1227
+ radioNames: ["M10", "Z1"],
1228
+ shiftStartTime: 1559446299,
1229
+ shiftStart: new Date("2019-06-02T03:31:39.000Z"),
1230
+ shiftEndTime: 1569446299,
1231
+ shiftEnd: new Date("2019-09-25T21:18:19.000Z"),
1232
+ modified_unix_date: 1570446299,
1233
+ modified: new Date("2019-10-07T11:04:59.000Z"),
1234
+ active: true,
1235
+ agencyCode: "TC",
1236
+ agencyName: "Tablet Command",
1237
+ importNotes: "test note"
1238
+ };
1239
+ const csvImport = {
1240
+ _id: new mongoose.Types.ObjectId(),
1241
+ batchId: "AM0111",
1242
+ departmentId: "1234",
1243
+ agencyId: "abcd1234",
1244
+ importType: "users",
1245
+ fileType: "csv",
1246
+ fileName: "test file 123",
1247
+ fileSize: "800",
1248
+ records: [],
1249
+ userId: "4321",
1250
+ status: "success",
1251
+ sendNotification: false
1252
+ };
1253
+ const validationReport = {
1254
+ _id: new mongoose.Types.ObjectId(),
1255
+ departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
1256
+ modified: new Date("2022-11-13T22:02:01Z"),
1257
+ location: [],
1258
+ statusMap: [],
1259
+ status: [],
1260
+ vehicleStatus: [],
1261
+ vehicle: [],
1262
+ incident: [
1263
+ {
1264
+ message: "path: /ReportNumber msg: must be array",
1265
+ firstSeenAt: new Date("2022-11-14T09:23:48.866Z"),
1266
+ lastSeenAt: new Date("2022-11-14T09:23:48.866Z"),
1267
+ clearedAt: new Date("2022-11-14T09:23:48.866Z"),
1268
+ payload: {
1269
+ AgencyID: "99999",
1270
+ IncidentNumber: "ABCD-1234",
1271
+ ReportNumber: ""
1272
+ }
1273
+ }
360
1274
  ],
361
- name: "oosCode",
362
- position: 2,
363
- visible: true
364
- }
365
- ],
366
- roaming: false,
367
- selfAssignable: true,
368
- status: "OR",
369
- statusId: 1,
370
- uuid: "8086956b-43af-4300-aa30-5efbd10b2c98"
371
- };
372
-
373
- const cadStatusMap = {
374
- "departmentId": "51a2529293e11b3569000057",
375
- "fromStatusId": 0,
376
- "modifiedDate": 1544143059.729,
377
- "toStatusIds": [
378
- //
379
- {
380
- "statusId": 1,
381
- "userEnabled": true
382
- }
383
- ]
384
- };
385
-
386
- const cadVehicle = {
387
- _id: mongoose.Types.ObjectId(),
388
- uuid: "30f8d7c7-20a3-4a12-b911-a424f5037003",
389
- radioName: "T01",
390
- vehicleId: "7705",
391
- modifiedDate: 1541569088.909,
392
- departmentId: "5195426cc4e016a988000965",
393
- station: {
394
- code: "S01",
395
- name: "Station 01"
396
- },
397
- capability: ""
398
- };
399
-
400
- const cadVehicleStatus = {
401
- uuid: "5a324923-2622-48f2-abaa-8a855e7cebdf",
402
- departmentId: "d1234",
403
- vehicleId: "v1171",
404
- radioName: "E10",
405
- requestTime: 1516557000,
406
- responseTime: 1516567096,
407
- status: "Dispatched",
408
- statusCode: "DISP",
409
- modifiedDate: 1516577096,
410
- requestStatus: 0,
411
- incidentNumber: "INC19991",
412
- capability: "",
413
- owner: "user",
414
- ownerId: "M1"
415
- };
416
-
417
- const cadVehicleStatusHistory = {
418
- departmentId: "d1234",
419
- vehicleId: "v1171",
420
- radioName: "E10",
421
- status: "Dispatched",
422
- statusCode: "DISP",
423
- requestedAt: 1516557000,
424
- requestedBy: "user",
425
- modifiedDate: 1516577096,
426
- incidentNumber: "INC19991"
427
- };
428
-
429
- const department = {
430
- _id: mongoose.Types.ObjectId(),
431
- department: "Test Department",
432
- city: "San Francisco",
433
- active: true,
434
- apikey: "abcd",
435
- partialApiKey: "ab",
436
- personnelStaffingEnabled: true,
437
- rtsEnabled: true,
438
- rtsChannelPrefix: "CH_TEST",
439
- pubNubV3: {
440
- token: "CH_AUTH_TOKEN",
441
- expireAt: "2021-09-10T23:25:02.196Z",
442
- runAt: "2021-09-10T08:25:02.196Z",
443
- },
444
- agencyIds: [
445
- new mongoose.Types.ObjectId(agency._id)
446
- ],
447
- signupKey: "A1B2",
448
- incidentTypes: [{
449
- name: "Type",
450
- value: "type"
451
- }],
452
- shareLocationPhones: false,
453
- shareLocationTablets: true,
454
- cadOneWayVehiclesEnabled: false,
455
- mowsEnabled: true,
456
- shareAVL: {
457
- enabled: true,
458
- opAreaCode: "DAL",
459
- opAreaName: "Delta Operations"
460
- },
461
- accountType: "production",
462
- timeZone: "America/Los_Angeles",
463
- firstArrivingEnabled: true,
464
- simpleSenseEnabled: true,
465
- licensing: {
466
- tcPro2Way: 0,
467
- tcPro1Way: 0,
468
- tcMobile: 0,
469
- tcWeb: 0,
470
- fireMapperPro: 0,
471
- sendToCAD: 0
472
- },
473
- webDisclaimer: {
474
- message: "test",
475
- enabled: true
476
- },
477
- notificationEmails: ["test@test.com"],
478
- externalNotificationsEnabled: true
479
- };
480
-
481
- const esriMap = {
482
- mapLayers: [
483
- //
484
- {
485
- "url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/XBO_Branches_Updated/FeatureServer/0",
486
- "itemId": "XBO_Branches_Updated_3067",
487
- "layerType": "ArcGISFeatureLayer",
488
- "title": "XBO Branches_Updated"
489
- },
490
- {
491
- "itemId": "city_limits_092019_4185",
492
- "layerType": "ArcGISFeatureLayer",
493
- "title": "City Limits",
494
- "url": "https://services.arcgis.com/aA3snZwJfFkVyDuP/arcgis/rest/services/city_limits_092019/FeatureServer/0"
495
- },
496
- {
497
- "itemId": "unvdpdod57lext9eck9nxipcov2dgjqs_8576",
498
- "layerType": "ArcGISFeatureLayer",
499
- "title": "Tablet Command",
500
- "url": "https://api.tabletcommand.com/esri/tc-file/unvdpdod57lext9eck9nxipcov2dgjqs/FeatureServer/0"
501
- }
502
- ],
503
- "owner": "john_tabletcommand",
504
- "title": "Location (MM Filters)",
505
- "url": null,
506
- "access": "shared",
507
- "baseMap": {
508
- "baseMapLayers": [
509
- //
510
- {
511
- "opacity": 1,
512
- "id": "VectorTile_1188",
513
- "type": "VectorTileLayer",
514
- "layerType": "VectorTileLayer",
515
- "title": "World Street Map (Night)",
516
- "styleUrl": "https://cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json",
517
- "visibility": true
1275
+ personnel: [],
1276
+ };
1277
+ async function cleanup() {
1278
+ var _a;
1279
+ if (!shouldRun()) {
1280
+ process.exit(1);
1281
+ }
1282
+ const items = await ((_a = _.first(mongoose.connections)) === null || _a === void 0 ? void 0 : _a.db.collections());
1283
+ for (const coll of items !== null && items !== void 0 ? items : []) {
1284
+ // console.log(`Emptying ${coll.collectionName}.`);
1285
+ await coll.deleteMany({});
518
1286
  }
519
- ],
520
- "title": "Streets (Night)"
521
- },
522
- "itemId": "01cebf7aede94ed3a9f4c260e18a7d7e",
523
- "type": "Web Map",
524
- "tags": [
525
- "XBO",
526
- "Tabletcommand"
527
- ],
528
- "development": true,
529
- };
530
-
531
- const deviceMapping = {
532
- _id: mongoose.Types.ObjectId(),
533
- nick: "Test",
534
- departmentId: "d123",
535
- deviceType: "hello",
536
- mapId: "map123",
537
- deviceId: "deviceType121",
538
- modified_unix_date: 1432230780,
539
- active: false,
540
- remoteAddress: "1.2.3.4",
541
- note: "don't feed after dark",
542
- mapHidden: false
543
- };
544
-
545
- const esri = {
546
- _id: mongoose.Types.ObjectId(),
547
- departmentId: new mongoose.Types.ObjectId("56131f724143487a10000001"),
548
- modified_unix_date: 1432230780,
549
- auth: {
550
- username: "fire_maps",
551
- encrypted: {
552
- iv: "18f17",
553
- encryptedData: "dee54"
554
- }
555
- },
556
- fireMapperAuth: {
557
- username: "fire_mapper",
558
- encrypted: {
559
- iv: "28f10",
560
- encryptedData: "dee99"
561
- },
562
- encryptedAccessCode: {
563
- iv: "99f1341",
564
- encryptedData: "zoom123"
565
- }
566
- },
567
- maps: [
568
- esriMap
569
- ],
570
- mapsProperties: [
571
- //
572
- {
573
- itemId: "01cebf7aede94ed3a9f4c260e18a7d7e",
574
- download: true,
575
- }
576
- ]
577
- };
578
-
579
- const gstMapping = {
580
- _id: mongoose.Types.ObjectId(),
581
- departmentId: "d123",
582
- unitId: "E123",
583
- modified_unix_date: 1432230780,
584
- active: false,
585
- remoteAddress: "1.2.3.4",
586
- note: "don't feed after dark",
587
- mapHidden: false,
588
- gstAgency: "LAX",
589
- deviceType: "gst",
590
- note: ""
591
- };
592
-
593
- const incidentEvent = {
594
- IncidentNumber: "TC1212121",
595
- departmentId: "d123",
596
- modified_unix_date: 1432230780,
597
- message: "Hello from the other side",
598
- location: {
599
- longitude: -29.90129,
600
- latitude: 121.223131
601
- },
602
- userTime: 1437121647,
603
- type: "contribution",
604
- user: {
605
- email: "marius+cc@tabletcommand.com",
606
- username: "ztc-marcc",
607
- radioName: "E12",
608
- userId: "51c2dcca0c599704e400001f"
609
- },
610
- uuid: "ABCDEF"
611
- };
612
-
613
- const incidentTakeover = {
614
- _id: mongoose.Types.ObjectId(),
615
- incident_id: "i1234",
616
- incident_name: "Test Incident",
617
- incident_number: "TC-12345",
618
- departmentId: "d123",
619
- old_owner: "user1",
620
- new_owner: "user2",
621
- owner: "",
622
- status: "request",
623
- request_time: 1442888560
624
- };
625
-
626
- const incidentNotified = {
627
- _id: mongoose.Types.ObjectId(),
628
- departmentId: "d123",
629
- IncidentNumber: "T-1536603902",
630
- incidentTypes: [
631
- "any"
632
- ],
633
- units: [
634
- "E31"
635
- ],
636
- sent: [
637
- ],
638
- updated: "2018-09-10T18:25:02.196Z"
639
- };
640
-
641
- const location = {
642
- _id: mongoose.Types.ObjectId(),
643
- departmentId: "d123",
644
- userId: "542a40db20783c000000153d",
645
- uuid: "92c8f732-52b7-46cc-855a-d54fddfe3172",
646
- username: "E23",
647
- device_type: "iPad",
648
- active: true,
649
- heading: 43,
650
- locationGeoJSON: {
651
- type: "Point",
652
- coordinates: [-120.001, 37.001],
653
- },
654
- session: "abcd",
655
- opAreaCode: "DAL",
656
- opAreaName: "Delta Operations",
657
- shared: true,
658
- state: "CA",
659
- sendToCAD: false,
660
- color: {
661
- text: "#00AA00",
662
- background: "#FFAAFF"
663
- },
664
- modified: new Date().toISOString()
665
- };
666
-
667
- const managedIncident = {
668
- _id: mongoose.Types.ObjectId(),
669
- CallerNumber: "(720) 275-6765",
670
- CommandChannel: "ACPRI",
671
- TacticalAltChannel: "ACOPSB",
672
- TacticalChannel: "ACOPSA",
673
- active: 1,
674
- address: "Interstate 76 Eb / Federal To I 76 Eb, UNINCORPORATED ADAMS COUNTY CO",
675
- api_incident_number: "ACFR040719-0002506",
676
- channel: "ADAMSCOUNTYFIRERESCUEN1C-MANAGED-ACFR040719-0002506",
677
- channel_owner: "e12@acfpd.org",
678
- departmentId: "5b17f315f877ee16f3d019b7",
679
- end_time: "2019-04-08T00:16:30+0000",
680
- end_unix_time: 1554682590.44313,
681
- esri_map: {
682
- json: "YnBsaXN0MDDUAQIDBAUGCAlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKEHVSRudWxsXxAPTlNLZXllZEFyY2hpdmVy0QoLVHJvb3SAAAgRGiMtMjc5P1FUWQAAAAAAAAEBAAAAAAAAAAwAAAAAAAAAAAAAAAAAAABb",
683
- map_type: "Generic",
684
- name: "Street",
685
- url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
686
- uuid: "00FCA57A-6F1B-4F74-84BD-E7A8B8BFF8FB"
687
- },
688
- history: [
689
- //
690
- {
691
- entity_id: 9207,
692
- entity_type: 14,
693
- message: "(43) 2a72 start medical (Shared)",
694
- time: 1554681941
695
- }
696
- ],
697
- is_closed: 1,
698
- location: "39.802526,-105.019773",
699
- managed: "1",
700
- modified_date: "2019-04-08T00:16:30.473", // Same as the modified_unix_date
701
- modified_unix_date: 1554682590.47396,
702
- name: "INJURED PARTY",
703
- preference_location: "location",
704
- slave_map_changed: false,
705
- source: "cad",
706
- start_time: "2019-04-08T00:05:41+0000",
707
- start_unix_time: 1554681941,
708
- units: [
709
- //
710
- {
711
- UnitID: "M12",
712
- active: 1,
713
- air_time: "",
714
- api_unit_dispatch_number: "5163322",
715
- checked: 0,
716
- column_position: 0,
717
- group_position: 0,
718
- incident_position: 0,
719
- isSupervisor: false,
720
- is_part_of_group: false,
721
- location_on_map: "",
722
- modified_date: "2019-04-08T00:16:30+0000",
723
- modified_unix_date: 1554682590.51667,
724
- note: "",
725
- personnelOnScene: 2,
726
- status: "Arrived",
727
- status_unix_date: 1554682217,
728
- time: "",
729
- warning: 0
730
- }
731
- ],
732
- userId: "5b3e78cc944e2a18d5222424",
733
- uuid: "579E2F47-7F63-4351-B41F-4A345D680B8F"
734
- };
735
-
736
- const monitor = {
737
- _id: mongoose.Types.ObjectId(),
738
- departmentId: "546ace2b3cd8d60d1d00256a",
739
- agencyId: "123",
740
- notificationType: "maps-token-error",
741
- status: "active",
742
- sentUnixDate: 1603263604
743
- };
744
-
745
- const rateLimit = {
746
- _id: mongoose.Types.ObjectId(),
747
- username: "test123",
748
- modified_unix_date: 1426983552.49945,
749
- count: 8
750
- };
751
-
752
- const session = {
753
- when: "2019-04-01T04:41:38.509Z",
754
- user: "51c2dcca0c599704e400001f",
755
- email: "marius+cc@tabletcommand.com",
756
- nick: "ztc-marcc",
757
- deviceId: "7evAKaFiOeaWTlsMTOSQMBKN",
758
- remoteAddress: "124.148.161.107",
759
- userAgent: "TCMobile/1.6 (iPhone; iOS 12.1; Scale/2.00)",
760
- why: "password",
761
- departmentId: "51a2529293e11b3569000057",
762
- source: "iphone.beta",
763
- token: uuid.v4(),
764
- active: false,
765
- ended: "2019-04-01T04:41:39.233Z"
766
- };
767
-
768
- const template = {
769
- position: 1,
770
- active: true,
771
- name: "Vertical Test",
772
- userId: "1234",
773
- departmentId: "4321",
774
- isMandatory: false,
775
- group: [],
776
- checklist: [],
777
- agencyId: new mongoose.Types.ObjectId(agency._id)
778
- };
779
-
780
- const user = {
781
- _id: mongoose.Types.ObjectId(),
782
- nick: "Test",
783
- email: "test@save.me",
784
- mapId: "TEST",
785
- departmentId: "d123",
786
- isPro: true,
787
- agencyId: new mongoose.Types.ObjectId(agency._id),
788
- managedAgencies: [new mongoose.Types.ObjectId(agency._id)],
789
- shareLocationPhone: false,
790
- shareLocationTablet: true,
791
- notificationSounds: [
792
- //
793
- {
794
- sound: "testSound.caf",
795
- soundType: "default",
796
- }
797
- ],
798
- offlineMapsEnabled: true,
799
- offDutyEnabled: true,
800
- webMapSettings: {
801
- defaultZoomLevel: 10,
802
- defaultCenter: [1,1],
803
- defaultMap: "Default"
804
1287
  }
805
- };
806
-
807
- const userRegistration = {
808
- email: "test@email.com",
809
- name: "John Waters",
810
- firstName: "John",
811
- lastName: "Waters",
812
- department: "New York City, NY",
813
- title: "Mr",
814
- modifiedDate: 1426983552.49945,
815
- status: "registered",
816
- stage: "afterEULA",
817
- presentedAt: 1488157071.042124,
818
- managedIncidentsCount: 1,
819
- checklistsCount: 2,
820
- firstIncidentUnixTime: 1443666043.380937,
821
- lastIncidentLocation: "40.999357,-85.767932",
822
- lastIncidentUnixTime: 1480525299.50968
823
- };
824
-
825
- const userDevice = {
826
- userId: "1234",
827
- departmentID: "4321",
828
- devices: [
829
- //
830
- {
831
- token: "de2687382a9df6a1165616aac",
832
- env: "testmock",
833
- ver: "TC Mobile v1.0 b23",
834
- ua: "TCMobile/1.0 (iPhone; iOS 10.1.1; Scale/3.00)",
835
- time: 1438627429.956,
836
- drift: 1438627429.956,
837
- bundleIdentifier: "com.testtesttest.TCMobile",
838
- silentEnabled: true,
839
- criticalAlertsEnabled: true,
840
- session: "1234321",
841
- active: true,
842
- offDuty: false
843
- }
844
- ],
845
- notificationCount: 12,
846
- notificationUnitSettings: [
847
- {
848
- radioName: "B1",
849
- notificationType: "NORMAL",
850
- notificationMode: "ON DUTY"
851
- }
852
- ],
853
- notificationIncidentSettings: [
854
- {
855
- incidentType: "Cliff Rescue",
856
- notificationType: "NORMAL",
857
- notificationMode: "ON DUTY"
858
- }
859
- ],
860
- notificationSounds: {
861
- ios: {
862
- sound: "a.caf",
863
- soundType: "default",
864
- os: "ios"
865
- },
866
- android: {
867
- sound: "b.mp3",
868
- soundType: "default",
869
- os: "android"
870
- }
871
- },
872
- offDuty: true,
873
- criticalAlertsVolume: "MED",
874
- };
875
-
876
- const personnelImport = {
877
- _id: mongoose.Types.ObjectId(),
878
- PersonnelID: "AM0111",
879
- PersonnelName: "Test User",
880
- PersonnelRank: "Eng",
881
- PersonnelWorkCode: "abcd1234",
882
- PersonnelNote: "A test user",
883
- departmentId: "123zzz",
884
- radioNames: ["M10", "Z1"],
885
- shiftStartTime: 1559446299,
886
- shiftStart: "2019-06-02T03:31:39.000Z",
887
- shiftEndTime: 1569446299,
888
- shiftEnd: "2019-09-25T21:18:19.000Z",
889
- modified_unix_date: 1570446299,
890
- modified: "2019-10-07T11:04:59.000Z",
891
- active: true,
892
- agencyCode: "TC",
893
- agencyName: "Tablet Command",
894
- importNotes: "test note"
895
- };
896
-
897
- const csvImport = {
898
- _id: mongoose.Types.ObjectId(),
899
- batchId: "AM0111",
900
- departmentId: "1234",
901
- agencyId: "abcd1234",
902
- importType: "users",
903
- fileType: "csv",
904
- fileName: "test file 123",
905
- fileSize: 800,
906
- records: [],
907
- userId: "4321",
908
- status: "success",
909
- sendNotification: false
910
- };
911
-
912
- async function cleanup() {
913
- config.checkIfTestDatabase();
914
-
915
- await models.CADVehicleStatus.deleteMany({});
916
- await models.Esri.deleteMany({});
917
- await models.IncidentNotified.deleteMany({});
918
- await models.PersonnelImport.deleteMany({});
919
- await models.UserDevice.deleteMany({});
920
- await models.User.deleteMany({});
921
- }
922
-
923
- return {
924
- actionLog,
925
- agency,
926
- assignment,
927
- arcGISGroup,
928
- battalion,
929
- cadIncident,
930
- cadStatus,
931
- cadStatusMap,
932
- cadVehicle,
933
- cadVehicleStatus,
934
- cadVehicleStatusHistory,
935
- checklist,
936
- checklistItem,
937
- cleanup,
938
- department,
939
- deviceMapping,
940
- esri,
941
- gstMapping,
942
- incidentEvent,
943
- incidentNotified,
944
- incidentTakeover,
945
- location,
946
- mailLog,
947
- message,
948
- managedIncident,
949
- monitor,
950
- personnelImport,
951
- rateLimit,
952
- session,
953
- template,
954
- user,
955
- userDevice,
956
- userRegistration,
957
- csvImport
958
- };
959
- };
960
- */
1288
+ async function beforeEach() {
1289
+ if (!shouldRun()) {
1290
+ process.exit(1);
1291
+ }
1292
+ await cleanup();
1293
+ }
1294
+ return {
1295
+ beforeEach,
1296
+ cleanup,
1297
+ actionLog,
1298
+ mark43IncidentRetry,
1299
+ agency,
1300
+ arcGISGroup,
1301
+ assignment,
1302
+ battalion,
1303
+ cadIncident,
1304
+ cadIncidentBlock,
1305
+ cadStatus,
1306
+ cadStatusMap,
1307
+ cadVehicle,
1308
+ cadVehicleStatus,
1309
+ cadVehicleStatusHistory,
1310
+ checklist,
1311
+ checklistItem,
1312
+ csvImport,
1313
+ department,
1314
+ deviceMapping,
1315
+ deviceMappingWithWhiteSpaces,
1316
+ esri,
1317
+ gstMapping,
1318
+ incidentEvent,
1319
+ incidentNotified,
1320
+ incidentTakeover,
1321
+ jobLog,
1322
+ releaseNote,
1323
+ cadSimulation,
1324
+ location,
1325
+ mailLog,
1326
+ managedIncident,
1327
+ message,
1328
+ monitor,
1329
+ personnelImport,
1330
+ rateLimit,
1331
+ session,
1332
+ template,
1333
+ user,
1334
+ userDevice,
1335
+ userRegistration,
1336
+ validationReport,
1337
+ };
1338
+ }
1339
+ exports.default = mockModule;
961
1340
  //# sourceMappingURL=mock.js.map