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.
- package/build/constants.js +43 -1
- package/build/constants.js.map +1 -1
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/build/models/cad-incident-stream.js +2 -2
- package/build/models/cad-incident-stream.js.map +1 -1
- package/build/models/chart-device-stats.js +2 -2
- package/build/models/chart-device-stats.js.map +1 -1
- package/build/models/chart-incident.js +2 -2
- package/build/models/chart-incident.js.map +1 -1
- package/build/models/chart-managed-incident.js +2 -2
- package/build/models/chart-managed-incident.js.map +1 -1
- package/build/models/chart-user.js +2 -2
- package/build/models/chart-user.js.map +1 -1
- package/build/models/department.js +7 -2
- package/build/models/department.js.map +1 -1
- package/build/models/device-mapping.js +4 -0
- package/build/models/device-mapping.js.map +1 -1
- package/build/models/incident-event.js +2 -2
- package/build/models/incident-event.js.map +1 -1
- package/build/models/job-log.js +2 -2
- package/build/models/job-log.js.map +1 -1
- package/build/models/location.js +37 -2
- package/build/models/location.js.map +1 -1
- package/build/models/managed-incident.js +2 -2
- package/build/models/managed-incident.js.map +1 -1
- package/build/models/monitor.js +2 -2
- package/build/models/monitor.js.map +1 -1
- package/build/models/schema/cad-incident.js +2 -3
- package/build/models/schema/cad-incident.js.map +1 -1
- package/build/models/smtp-unhandled.js +2 -2
- package/build/models/smtp-unhandled.js.map +1 -1
- package/build/test/0index.js +72 -0
- package/build/test/0index.js.map +1 -0
- package/build/test/action-log.js +40 -0
- package/build/test/action-log.js.map +1 -0
- package/build/test/agency.js +41 -0
- package/build/test/agency.js.map +1 -0
- package/build/test/arcgis-group.js +48 -85
- package/build/test/arcgis-group.js.map +1 -1
- package/build/test/assignment.js +39 -0
- package/build/test/assignment.js.map +1 -0
- package/build/test/battalion.js +45 -0
- package/build/test/battalion.js.map +1 -0
- package/build/test/cad-incident-block.js +43 -0
- package/build/test/cad-incident-block.js.map +1 -0
- package/build/test/cad-incident.js +159 -0
- package/build/test/cad-incident.js.map +1 -0
- package/build/test/cad-simulation.js +32 -0
- package/build/test/cad-simulation.js.map +1 -0
- package/build/test/cad-status-map.js +41 -0
- package/build/test/cad-status-map.js.map +1 -0
- package/build/test/cad-status.js +57 -0
- package/build/test/cad-status.js.map +1 -0
- package/build/test/cad-vehicle-status-history.js +36 -0
- package/build/test/cad-vehicle-status-history.js.map +1 -0
- package/build/test/cad-vehicle-status.js +42 -0
- package/build/test/cad-vehicle-status.js.map +1 -0
- package/build/test/cad-vehicle.js +38 -0
- package/build/test/cad-vehicle.js.map +1 -0
- package/build/test/checklist-item.js +42 -0
- package/build/test/checklist-item.js.map +1 -0
- package/build/test/checklist.js +43 -0
- package/build/test/checklist.js.map +1 -0
- package/build/test/config.js +2 -1
- package/build/test/config.js.map +1 -1
- package/build/test/csv-import.js +44 -0
- package/build/test/csv-import.js.map +1 -0
- package/build/test/department.js +99 -0
- package/build/test/department.js.map +1 -0
- package/build/test/device-mapping.js +51 -0
- package/build/test/device-mapping.js.map +1 -0
- package/build/test/esri.js +67 -0
- package/build/test/esri.js.map +1 -0
- package/build/test/gst-mapping.js +37 -0
- package/build/test/gst-mapping.js.map +1 -0
- package/build/test/helpers.js +14 -0
- package/build/test/helpers.js.map +1 -0
- package/build/test/incident-event.js +52 -0
- package/build/test/incident-event.js.map +1 -0
- package/build/test/incident-notified.js +42 -0
- package/build/test/incident-notified.js.map +1 -0
- package/build/test/incident-takeover.js +38 -0
- package/build/test/incident-takeover.js.map +1 -0
- package/build/test/job-log.js +36 -0
- package/build/test/job-log.js.map +1 -0
- package/build/test/location.js +87 -0
- package/build/test/location.js.map +1 -0
- package/build/test/mail-log.js +52 -0
- package/build/test/mail-log.js.map +1 -0
- package/build/test/managed-incident.js +107 -0
- package/build/test/managed-incident.js.map +1 -0
- package/build/test/mark43-incident-retry.js +33 -0
- package/build/test/mark43-incident-retry.js.map +1 -0
- package/build/test/message.js +38 -0
- package/build/test/message.js.map +1 -0
- package/build/test/mock.js +1289 -910
- package/build/test/mock.js.map +1 -1
- package/build/test/monitor.js +34 -0
- package/build/test/monitor.js.map +1 -0
- package/build/test/personnel-import.js +55 -0
- package/build/test/personnel-import.js.map +1 -0
- package/build/test/rate-limit.js +32 -0
- package/build/test/rate-limit.js.map +1 -0
- package/build/test/release-note.js +34 -0
- package/build/test/release-note.js.map +1 -0
- package/build/test/session.js +42 -0
- package/build/test/session.js.map +1 -0
- package/build/test/template.js +43 -0
- package/build/test/template.js.map +1 -0
- package/build/test/user-device.js +69 -0
- package/build/test/user-device.js.map +1 -0
- package/build/test/user-registration.js +44 -0
- package/build/test/user-registration.js.map +1 -0
- package/build/test/user.js +51 -0
- package/build/test/user.js.map +1 -0
- package/build/test/validation-report.js +33 -0
- package/build/test/validation-report.js.map +1 -0
- package/cspell.json +11 -8
- package/definitions/constants.d.ts +12 -0
- package/definitions/constants.d.ts.map +1 -1
- package/definitions/index.d.ts +2 -2
- package/definitions/index.d.ts.map +1 -1
- package/definitions/models/department.d.ts.map +1 -1
- package/definitions/models/device-mapping.d.ts.map +1 -1
- package/definitions/models/location.d.ts +2 -0
- package/definitions/models/location.d.ts.map +1 -1
- package/definitions/models/schema/cad-incident.d.ts.map +1 -1
- package/definitions/test/0index.d.ts +2 -0
- package/definitions/test/0index.d.ts.map +1 -0
- package/definitions/test/action-log.d.ts +2 -0
- package/definitions/test/action-log.d.ts.map +1 -0
- package/definitions/test/agency.d.ts +2 -0
- package/definitions/test/agency.d.ts.map +1 -0
- package/definitions/test/arcgis-group.d.ts.map +1 -1
- package/definitions/test/assignment.d.ts +2 -0
- package/definitions/test/assignment.d.ts.map +1 -0
- package/definitions/test/battalion.d.ts +2 -0
- package/definitions/test/battalion.d.ts.map +1 -0
- package/definitions/test/cad-incident-block.d.ts +2 -0
- package/definitions/test/cad-incident-block.d.ts.map +1 -0
- package/definitions/test/cad-incident.d.ts +2 -0
- package/definitions/test/cad-incident.d.ts.map +1 -0
- package/definitions/test/cad-simulation.d.ts +2 -0
- package/definitions/test/cad-simulation.d.ts.map +1 -0
- package/definitions/test/cad-status-map.d.ts +2 -0
- package/definitions/test/cad-status-map.d.ts.map +1 -0
- package/definitions/test/cad-status.d.ts +2 -0
- package/definitions/test/cad-status.d.ts.map +1 -0
- package/definitions/test/cad-vehicle-status-history.d.ts +2 -0
- package/definitions/test/cad-vehicle-status-history.d.ts.map +1 -0
- package/definitions/test/cad-vehicle-status.d.ts +2 -0
- package/definitions/test/cad-vehicle-status.d.ts.map +1 -0
- package/definitions/test/cad-vehicle.d.ts +2 -0
- package/definitions/test/cad-vehicle.d.ts.map +1 -0
- package/definitions/test/checklist-item.d.ts +2 -0
- package/definitions/test/checklist-item.d.ts.map +1 -0
- package/definitions/test/checklist.d.ts +2 -0
- package/definitions/test/checklist.d.ts.map +1 -0
- package/definitions/test/config.d.ts.map +1 -1
- package/definitions/test/csv-import.d.ts +2 -0
- package/definitions/test/csv-import.d.ts.map +1 -0
- package/definitions/test/department.d.ts +2 -0
- package/definitions/test/department.d.ts.map +1 -0
- package/definitions/test/device-mapping.d.ts +2 -0
- package/definitions/test/device-mapping.d.ts.map +1 -0
- package/definitions/test/esri.d.ts +2 -0
- package/definitions/test/esri.d.ts.map +1 -0
- package/definitions/test/gst-mapping.d.ts +2 -0
- package/definitions/test/gst-mapping.d.ts.map +1 -0
- package/definitions/test/helpers.d.ts +2 -0
- package/definitions/test/helpers.d.ts.map +1 -0
- package/definitions/test/incident-event.d.ts +2 -0
- package/definitions/test/incident-event.d.ts.map +1 -0
- package/definitions/test/incident-notified.d.ts +2 -0
- package/definitions/test/incident-notified.d.ts.map +1 -0
- package/definitions/test/incident-takeover.d.ts +2 -0
- package/definitions/test/incident-takeover.d.ts.map +1 -0
- package/definitions/test/job-log.d.ts +2 -0
- package/definitions/test/job-log.d.ts.map +1 -0
- package/definitions/test/location.d.ts +2 -0
- package/definitions/test/location.d.ts.map +1 -0
- package/definitions/test/mail-log.d.ts +2 -0
- package/definitions/test/mail-log.d.ts.map +1 -0
- package/definitions/test/managed-incident.d.ts +2 -0
- package/definitions/test/managed-incident.d.ts.map +1 -0
- package/definitions/test/mark43-incident-retry.d.ts +2 -0
- package/definitions/test/mark43-incident-retry.d.ts.map +1 -0
- package/definitions/test/message.d.ts +2 -0
- package/definitions/test/message.d.ts.map +1 -0
- package/definitions/test/mock.d.ts +1057 -3
- package/definitions/test/mock.d.ts.map +1 -1
- package/definitions/test/monitor.d.ts +2 -0
- package/definitions/test/monitor.d.ts.map +1 -0
- package/definitions/test/personnel-import.d.ts +2 -0
- package/definitions/test/personnel-import.d.ts.map +1 -0
- package/definitions/test/rate-limit.d.ts +2 -0
- package/definitions/test/rate-limit.d.ts.map +1 -0
- package/definitions/test/release-note.d.ts +2 -0
- package/definitions/test/release-note.d.ts.map +1 -0
- package/definitions/test/session.d.ts +2 -0
- package/definitions/test/session.d.ts.map +1 -0
- package/definitions/test/template.d.ts +2 -0
- package/definitions/test/template.d.ts.map +1 -0
- package/definitions/test/user-device.d.ts +2 -0
- package/definitions/test/user-device.d.ts.map +1 -0
- package/definitions/test/user-registration.d.ts +2 -0
- package/definitions/test/user-registration.d.ts.map +1 -0
- package/definitions/test/user.d.ts +2 -0
- package/definitions/test/user.d.ts.map +1 -0
- package/definitions/test/validation-report.d.ts +2 -0
- package/definitions/test/validation-report.d.ts.map +1 -0
- package/definitions/types/cad.d.ts +2 -2
- package/definitions/types/cad.d.ts.map +1 -1
- package/definitions/types/department.d.ts +1 -0
- package/definitions/types/department.d.ts.map +1 -1
- package/definitions/types/location.d.ts +24 -23
- package/definitions/types/location.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/constants.ts +43 -0
- package/src/index.ts +2 -0
- package/src/models/cad-incident-stream.ts +1 -1
- package/src/models/chart-device-stats.ts +1 -1
- package/src/models/chart-incident.ts +1 -1
- package/src/models/chart-managed-incident.ts +1 -1
- package/src/models/chart-user.ts +1 -1
- package/src/models/department.ts +7 -1
- package/src/models/device-mapping.ts +4 -0
- package/src/models/incident-event.ts +1 -1
- package/src/models/job-log.ts +1 -1
- package/src/models/location.ts +41 -2
- package/src/models/managed-incident.ts +1 -1
- package/src/models/monitor.ts +1 -1
- package/src/models/schema/cad-incident.ts +1 -3
- package/src/models/smtp-unhandled.ts +1 -1
- package/src/mongoose-lean-virtuals.d.ts +4 -2
- package/src/test/0index.ts +71 -0
- package/src/test/action-log.ts +41 -0
- package/src/test/agency.ts +41 -0
- package/src/test/arcgis-group.ts +25 -63
- package/src/test/assignment.ts +41 -0
- package/src/test/battalion.ts +45 -0
- package/src/test/cad-incident-block.ts +44 -0
- package/src/test/cad-incident.ts +168 -0
- package/src/test/cad-simulation.ts +33 -0
- package/src/test/cad-status-map.ts +41 -0
- package/src/test/cad-status.ts +57 -0
- package/src/test/cad-vehicle-status-history.ts +37 -0
- package/src/test/cad-vehicle-status.ts +43 -0
- package/src/test/cad-vehicle.ts +38 -0
- package/src/test/checklist-item.ts +43 -0
- package/src/test/checklist.ts +44 -0
- package/src/test/config.ts +3 -3
- package/src/test/csv-import.ts +44 -0
- package/src/test/department.ts +95 -0
- package/src/test/device-mapping.ts +53 -0
- package/src/test/esri.ts +69 -0
- package/src/test/gst-mapping.ts +38 -0
- package/src/test/helpers.ts +15 -0
- package/src/test/incident-event.ts +53 -0
- package/src/test/incident-notified.ts +41 -0
- package/src/test/incident-takeover.ts +39 -0
- package/src/test/job-log.ts +37 -0
- package/src/test/location.ts +93 -0
- package/src/test/mail-log.ts +51 -0
- package/src/test/managed-incident.ts +116 -0
- package/src/test/mark43-incident-retry.ts +34 -0
- package/src/test/message.ts +39 -0
- package/src/test/mock.ts +599 -163
- package/src/test/monitor.ts +35 -0
- package/src/test/personnel-import.ts +55 -0
- package/src/test/rate-limit.ts +33 -0
- package/src/test/release-note.ts +36 -0
- package/src/test/session.ts +43 -0
- package/src/test/template.ts +44 -0
- package/src/test/user-device.ts +66 -0
- package/src/test/user-registration.ts +45 -0
- package/src/test/user.ts +51 -0
- package/src/test/validation-report.ts +33 -0
- package/src/tsconfig.json +6 -3
- package/src/types/cad.ts +2 -2
- package/src/types/department.ts +1 -0
- package/src/types/location.ts +22 -24
- package/tslint.json +0 -28
- /package/{test → test-legacy}/0index.js +0 -0
- /package/{test → test-legacy}/action-log.js +0 -0
- /package/{test → test-legacy}/agency.js +0 -0
- /package/{test → test-legacy}/arcgis-group.js +0 -0
- /package/{test → test-legacy}/assignment.js +0 -0
- /package/{test → test-legacy}/battalion.js +0 -0
- /package/{test → test-legacy}/cad-incident-block.js +0 -0
- /package/{test → test-legacy}/cad-incident.js +0 -0
- /package/{test → test-legacy}/cad-simulation.js +0 -0
- /package/{test → test-legacy}/cad-status-map.js +0 -0
- /package/{test → test-legacy}/cad-status.js +0 -0
- /package/{test → test-legacy}/cad-vehicle-status-history.js +0 -0
- /package/{test → test-legacy}/cad-vehicle-status.js +0 -0
- /package/{test → test-legacy}/cad-vehicle.js +0 -0
- /package/{test → test-legacy}/checklist-item.js +0 -0
- /package/{test → test-legacy}/checklist.js +0 -0
- /package/{test → test-legacy}/config.js +0 -0
- /package/{test → test-legacy}/csv-import.js +0 -0
- /package/{test → test-legacy}/department.js +0 -0
- /package/{test → test-legacy}/device-mapping.js +0 -0
- /package/{test → test-legacy}/esri.js +0 -0
- /package/{test → test-legacy}/gst-mapping.js +0 -0
- /package/{test → test-legacy}/helpers.js +0 -0
- /package/{test → test-legacy}/incident-event.js +0 -0
- /package/{test → test-legacy}/incident-notified.js +0 -0
- /package/{test → test-legacy}/incident-takeover.js +0 -0
- /package/{test → test-legacy}/job-log.js +0 -0
- /package/{test → test-legacy}/location.js +0 -0
- /package/{test → test-legacy}/mail-log.js +0 -0
- /package/{test → test-legacy}/managed-incident.js +0 -0
- /package/{test → test-legacy}/mark43-incident-retry.js +0 -0
- /package/{test → test-legacy}/message.js +0 -0
- /package/{test → test-legacy}/mock.js +0 -0
- /package/{test → test-legacy}/monitor.js +0 -0
- /package/{test → test-legacy}/personnel-import.js +0 -0
- /package/{test → test-legacy}/rate-limit.js +0 -0
- /package/{test → test-legacy}/release-note.js +0 -0
- /package/{test → test-legacy}/session.js +0 -0
- /package/{test → test-legacy}/template.js +0 -0
- /package/{test → test-legacy}/user-device.js +0 -0
- /package/{test → test-legacy}/user-registration.js +0 -0
- /package/{test → test-legacy}/user.js +0 -0
- /package/{test → test-legacy}/validation-report.js +0 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
import { assert } from "chai";
|
2
|
+
import "mocha";
|
3
|
+
import * as m from "../index";
|
4
|
+
import * as config from "./config";
|
5
|
+
import mockModule from "./mock";
|
6
|
+
|
7
|
+
describe("IncidentNotified", function() {
|
8
|
+
let models: m.BackendModels, mongoose: m.MongooseModule;
|
9
|
+
let testItem: Partial<m.IncidentNotified>;
|
10
|
+
beforeEach(async function() {
|
11
|
+
const c = await m.connect(config.url);
|
12
|
+
models = c.models;
|
13
|
+
mongoose = c.mongoose;
|
14
|
+
|
15
|
+
const mock = mockModule({
|
16
|
+
mongoose
|
17
|
+
});
|
18
|
+
testItem = mock.incidentNotified;
|
19
|
+
});
|
20
|
+
afterEach(async function() {
|
21
|
+
await mongoose.disconnect();
|
22
|
+
});
|
23
|
+
|
24
|
+
it("is saved", async function() {
|
25
|
+
const item = new models.IncidentNotified(testItem);
|
26
|
+
const sut = await item.save();
|
27
|
+
|
28
|
+
assert.isNotNull(testItem._id);
|
29
|
+
assert.equal(testItem.departmentId, sut.departmentId);
|
30
|
+
assert.equal(testItem.IncidentNumber, sut.IncidentNumber);
|
31
|
+
assert.deepEqual(testItem.incidentTypes, sut.incidentTypes);
|
32
|
+
assert.deepEqual(testItem.units, sut.units);
|
33
|
+
if (testItem.unitsByDispatch?.length) {
|
34
|
+
assert.equal(testItem.unitsByDispatch[0]?.UnitID, sut.unitsByDispatch[0]?.UnitID);
|
35
|
+
assert.equal(testItem.unitsByDispatch[0]?.UnitDispatchNumber, sut.unitsByDispatch[0]?.UnitDispatchNumber);
|
36
|
+
} else {
|
37
|
+
assert.equal(testItem?.unitsByDispatch?.length, 1);
|
38
|
+
}
|
39
|
+
assert.equal(testItem.updated?.toISOString(), sut.updated.toISOString());
|
40
|
+
});
|
41
|
+
});
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { assert } from "chai";
|
2
|
+
import "mocha";
|
3
|
+
import * as m from "../index";
|
4
|
+
import * as config from "./config";
|
5
|
+
import mockModule from "./mock";
|
6
|
+
|
7
|
+
describe("IncidentTakeover", function() {
|
8
|
+
let models: m.BackendModels, mongoose: m.MongooseModule;
|
9
|
+
let testItem: Partial<m.IncidentTakeover>;
|
10
|
+
beforeEach(async function() {
|
11
|
+
const c = await m.connect(config.url);
|
12
|
+
models = c.models;
|
13
|
+
mongoose = c.mongoose;
|
14
|
+
|
15
|
+
const mock = mockModule({
|
16
|
+
mongoose
|
17
|
+
});
|
18
|
+
testItem = mock.incidentTakeover;
|
19
|
+
});
|
20
|
+
afterEach(async function() {
|
21
|
+
await mongoose.disconnect();
|
22
|
+
});
|
23
|
+
|
24
|
+
it("is saved", async function() {
|
25
|
+
const item = new models.IncidentTakeover(testItem);
|
26
|
+
const sut = await item.save();
|
27
|
+
|
28
|
+
assert.isNotNull(testItem._id);
|
29
|
+
assert.equal(testItem.departmentId, sut.departmentId);
|
30
|
+
assert.equal(testItem.incident_id, sut.incident_id);
|
31
|
+
assert.equal(testItem.incident_name, sut.incident_name);
|
32
|
+
assert.equal(testItem.incident_number, sut.incident_number);
|
33
|
+
assert.equal(testItem.old_owner, sut.old_owner);
|
34
|
+
assert.equal(testItem.new_owner, sut.new_owner);
|
35
|
+
assert.equal(testItem.status, sut.status);
|
36
|
+
assert.equal(testItem.request_time, sut.request_time);
|
37
|
+
assert.isTrue(sut.uuid !== "");
|
38
|
+
});
|
39
|
+
});
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { assert } from "chai";
|
2
|
+
import "mocha";
|
3
|
+
import * as m from "../index";
|
4
|
+
import * as config from "./config";
|
5
|
+
import mockModule from "./mock";
|
6
|
+
|
7
|
+
describe("JobLog", function() {
|
8
|
+
let models: m.BackendModels, mongoose: m.MongooseModule;
|
9
|
+
let testItem: Partial<m.JobLog>;
|
10
|
+
beforeEach(async function() {
|
11
|
+
const c = await m.connect(config.url);
|
12
|
+
models = c.models;
|
13
|
+
mongoose = c.mongoose;
|
14
|
+
|
15
|
+
const mock = mockModule({
|
16
|
+
mongoose
|
17
|
+
});
|
18
|
+
testItem = mock.jobLog;
|
19
|
+
});
|
20
|
+
afterEach(async function() {
|
21
|
+
await mongoose.disconnect();
|
22
|
+
});
|
23
|
+
|
24
|
+
it("is saved", async function() {
|
25
|
+
const item = new models.JobLog(testItem);
|
26
|
+
const sut = await item.save();
|
27
|
+
|
28
|
+
assert.isNotNull(testItem._id);
|
29
|
+
assert.equal(testItem.host, sut.host);
|
30
|
+
assert.equal(testItem.jobName, sut.jobName);
|
31
|
+
assert.equal(testItem.state, sut.state);
|
32
|
+
assert.equal(testItem.bidDate, sut.bidDate);
|
33
|
+
assert.equal(testItem.startDate, sut.startDate);
|
34
|
+
assert.equal(testItem.completedDate, sut.completedDate);
|
35
|
+
assert.equal(testItem.forceClosed, sut.forceClosed);
|
36
|
+
});
|
37
|
+
});
|
@@ -0,0 +1,93 @@
|
|
1
|
+
import { assert } from "chai";
|
2
|
+
import "mocha";
|
3
|
+
import * as m from "../index";
|
4
|
+
import * as config from "./config";
|
5
|
+
import mockModule from "./mock";
|
6
|
+
import { decodeLocationVisibility } from "../models/location";
|
7
|
+
import { LocationVisibility } from "../constants";
|
8
|
+
|
9
|
+
describe("Location", function() {
|
10
|
+
let models: m.BackendModels, mongoose: m.MongooseModule;
|
11
|
+
let testItem: Partial<m.Location>;
|
12
|
+
beforeEach(async function() {
|
13
|
+
const c = await m.connect(config.url);
|
14
|
+
models = c.models;
|
15
|
+
mongoose = c.mongoose;
|
16
|
+
|
17
|
+
const mock = mockModule({
|
18
|
+
mongoose
|
19
|
+
});
|
20
|
+
testItem = mock.location;
|
21
|
+
});
|
22
|
+
afterEach(async function() {
|
23
|
+
await mongoose.disconnect();
|
24
|
+
});
|
25
|
+
|
26
|
+
it("is saved", async function() {
|
27
|
+
const item = new models.Location(testItem);
|
28
|
+
const sut = await item.save();
|
29
|
+
assert.isNotNull(testItem._id);
|
30
|
+
assert.equal(testItem.departmentId, sut.departmentId);
|
31
|
+
assert.equal(testItem.userId, sut.userId);
|
32
|
+
assert.equal(testItem.uuid, sut.uuid);
|
33
|
+
assert.equal(testItem.username, sut.username);
|
34
|
+
assert.equal(testItem.device_type, sut.device_type);
|
35
|
+
assert.equal(testItem.session, sut.session);
|
36
|
+
assert.equal(testItem.active, sut.active);
|
37
|
+
assert.equal(testItem.heading, sut.heading);
|
38
|
+
assert.equal(testItem.locationGeoJSON?.coordinates[0], sut.location?.longitude);
|
39
|
+
assert.equal(testItem.locationGeoJSON?.coordinates[1], sut.location?.latitude);
|
40
|
+
assert.equal(testItem.locationGeoJSON?.type, "Point");
|
41
|
+
assert.equal(testItem.locationGeoJSON?.coordinates[0], sut.locationGeoJSON.coordinates[0]);
|
42
|
+
assert.equal(testItem.locationGeoJSON?.coordinates[1], sut.locationGeoJSON.coordinates[1]);
|
43
|
+
assert.equal(testItem.opAreaCode, sut.opAreaCode);
|
44
|
+
assert.equal(testItem.opAreaName, sut.opAreaName);
|
45
|
+
assert.equal(testItem.shared, sut.shared);
|
46
|
+
assert.equal(testItem.state, sut.state);
|
47
|
+
assert.equal(testItem.sendToCAD, sut.sendToCAD);
|
48
|
+
assert.equal(testItem.color?.text, sut.color.text);
|
49
|
+
assert.equal(testItem.color?.background, sut.color.background);
|
50
|
+
assert.isTrue(sut.uuid !== "");
|
51
|
+
|
52
|
+
const { longitude, latitude } = sut.location ?? { latitude: 0, longitude: 0 };
|
53
|
+
const maxDistance = 10000;
|
54
|
+
const geoQuery = {
|
55
|
+
locationGeoJSON: {
|
56
|
+
$nearSphere: {
|
57
|
+
$geometry: {
|
58
|
+
type: "Point",
|
59
|
+
coordinates: [longitude, latitude],
|
60
|
+
},
|
61
|
+
$maxDistance: maxDistance
|
62
|
+
}
|
63
|
+
}
|
64
|
+
};
|
65
|
+
|
66
|
+
try {
|
67
|
+
await models.Location.findOne(geoQuery);
|
68
|
+
assert.isFalse(true, "Expecting above to fail.");
|
69
|
+
} catch (error) {
|
70
|
+
assert.isNotNull(error, "Expecting above to fail");
|
71
|
+
}
|
72
|
+
|
73
|
+
await models.Location.createIndexes();
|
74
|
+
|
75
|
+
const found = await models.Location.findOne(geoQuery);
|
76
|
+
assert.isObject(found);
|
77
|
+
|
78
|
+
await models.Location.collection.dropIndexes();
|
79
|
+
});
|
80
|
+
|
81
|
+
it("decodes .visibility", async function() {
|
82
|
+
const item = new models.Location(testItem);
|
83
|
+
const sut = await item.save();
|
84
|
+
|
85
|
+
const sutVis = decodeLocationVisibility(sut.visibility);
|
86
|
+
|
87
|
+
assert.equal(sutVis.length, 4);
|
88
|
+
assert.notEqual(sutVis.indexOf(LocationVisibility.Hidden), -1);
|
89
|
+
assert.notEqual(sutVis.indexOf(LocationVisibility.Visible), -1);
|
90
|
+
assert.notEqual(sutVis.indexOf(LocationVisibility.CAD), -1);
|
91
|
+
assert.notEqual(sutVis.indexOf(LocationVisibility.Shared), -1);
|
92
|
+
});
|
93
|
+
});
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import { assert } from "chai";
|
2
|
+
import "mocha";
|
3
|
+
import * as m from "../index";
|
4
|
+
import * as config from "./config";
|
5
|
+
import mockModule from "./mock";
|
6
|
+
|
7
|
+
describe("MailLog", function() {
|
8
|
+
let models: m.BackendModels, mongoose: m.MongooseModule;
|
9
|
+
let testItem: Partial<m.MailLog>;
|
10
|
+
beforeEach(async function() {
|
11
|
+
const c = await m.connect(config.url);
|
12
|
+
models = c.models;
|
13
|
+
mongoose = c.mongoose;
|
14
|
+
|
15
|
+
const mock = mockModule({
|
16
|
+
mongoose
|
17
|
+
});
|
18
|
+
testItem = mock.mailLog;
|
19
|
+
});
|
20
|
+
afterEach(async function() {
|
21
|
+
await mongoose.disconnect();
|
22
|
+
});
|
23
|
+
|
24
|
+
it("is saved", async function() {
|
25
|
+
const item = new models.MailLog(testItem);
|
26
|
+
const sut = await item.save();
|
27
|
+
|
28
|
+
assert.isNotNull(testItem._id);
|
29
|
+
assert.equal(testItem.mailId, sut.mailId);
|
30
|
+
assert.equal(testItem.event, sut.event);
|
31
|
+
assert.equal(testItem.timestamp, sut.timestamp);
|
32
|
+
assert.equal(testItem.recipient, sut.recipient);
|
33
|
+
assert.equal(testItem.recipientDomain, sut.recipientDomain);
|
34
|
+
if (testItem.tags?.length) {
|
35
|
+
assert.equal(testItem.tags[0], sut.tags[0]);
|
36
|
+
} else {
|
37
|
+
assert.equal(testItem.tags?.length, 1);
|
38
|
+
}
|
39
|
+
assert.equal(testItem.deliveryStatus, sut.deliveryStatus);
|
40
|
+
assert.equal(testItem.message, sut.message);
|
41
|
+
assert.equal(testItem.deliveryStatus, sut.deliveryStatus);
|
42
|
+
assert.equal(testItem.flags, sut.flags);
|
43
|
+
assert.equal(testItem.envelope, sut.envelope);
|
44
|
+
assert.equal(testItem.logLevel, sut.logLevel);
|
45
|
+
assert.equal(testItem.reason, sut.reason);
|
46
|
+
assert.equal(testItem.severity, sut.severity);
|
47
|
+
const expectedDate = new Date().valueOf() / 1000.0;
|
48
|
+
const timeDelta = expectedDate - sut.modified_unix_date;
|
49
|
+
assert.isTrue(timeDelta < 1);
|
50
|
+
});
|
51
|
+
});
|
@@ -0,0 +1,116 @@
|
|
1
|
+
import { assert } from "chai";
|
2
|
+
import "mocha";
|
3
|
+
import * as _ from "lodash";
|
4
|
+
import * as m from "../index";
|
5
|
+
import * as config from "./config";
|
6
|
+
import mockModule from "./mock";
|
7
|
+
|
8
|
+
describe("ManagedIncident", function() {
|
9
|
+
let models: m.BackendModels, mongoose: m.MongooseModule;
|
10
|
+
let testItem: Partial<m.ManagedIncident>;
|
11
|
+
beforeEach(async function() {
|
12
|
+
const c = await m.connect(config.url);
|
13
|
+
models = c.models;
|
14
|
+
mongoose = c.mongoose;
|
15
|
+
|
16
|
+
const mock = mockModule({
|
17
|
+
mongoose
|
18
|
+
});
|
19
|
+
testItem = mock.managedIncident;
|
20
|
+
});
|
21
|
+
afterEach(async function() {
|
22
|
+
await mongoose.disconnect();
|
23
|
+
});
|
24
|
+
|
25
|
+
it("is saved", async function() {
|
26
|
+
const item = new models.ManagedIncident(testItem);
|
27
|
+
const sut = await item.save();
|
28
|
+
|
29
|
+
|
30
|
+
assert.isNotNull(testItem._id);
|
31
|
+
assert.equal(sut.departmentId, testItem.departmentId);
|
32
|
+
assert.equal(sut.CallerNumber, testItem.CallerNumber);
|
33
|
+
assert.equal(sut.CommandChannel, testItem.CommandChannel);
|
34
|
+
assert.equal(sut.TacticalAltChannel, testItem.TacticalAltChannel);
|
35
|
+
assert.equal(sut.TacticalChannel, testItem.TacticalChannel);
|
36
|
+
assert.equal(sut.active, testItem.active);
|
37
|
+
assert.equal(sut.address, testItem.address);
|
38
|
+
assert.equal(sut.api_incident_number, testItem.api_incident_number);
|
39
|
+
assert.equal(sut.channel, testItem.channel);
|
40
|
+
assert.equal(sut.channel_owner, testItem.channel_owner);
|
41
|
+
assert.equal(sut.end_time, testItem.end_time);
|
42
|
+
assert.equal(sut.end_unix_time, testItem.end_unix_time);
|
43
|
+
assert.equal(sut.is_closed, testItem.is_closed);
|
44
|
+
assert.equal(sut.location, testItem.location);
|
45
|
+
assert.equal(sut.managed, testItem.managed);
|
46
|
+
assert.equal(sut.modified_date, testItem.modified_date);
|
47
|
+
assert.equal(sut.modified_unix_date, testItem.modified_unix_date);
|
48
|
+
assert.equal(sut.name, testItem.name);
|
49
|
+
assert.equal(sut.preference_location, testItem.preference_location);
|
50
|
+
assert.equal(sut.slave_map_changed, testItem.slave_map_changed);
|
51
|
+
assert.equal(sut.source, testItem.source);
|
52
|
+
assert.equal(sut.start_time, testItem.start_time);
|
53
|
+
assert.equal(sut.start_unix_time, testItem.start_unix_time);
|
54
|
+
assert.equal(sut.userId, testItem.userId);
|
55
|
+
assert.equal(sut.uuid, testItem.uuid);
|
56
|
+
|
57
|
+
assert.isTrue(sut.active);
|
58
|
+
assert.isTrue(sut.is_closed);
|
59
|
+
|
60
|
+
const unit = _.first(sut.units.filter((x) => x.UnitID === "M12"));
|
61
|
+
assert.equal(unit?.Personnel.length, 2);
|
62
|
+
const p1 = _.first(unit?.Personnel.filter((x) => x.PersonnelID === "X14"));
|
63
|
+
assert.equal(p1?.PersonnelName, "Mary Smith");
|
64
|
+
assert.equal(p1?.PersonnelNote, "X");
|
65
|
+
assert.equal(p1?.PersonnelRank, "Captain");
|
66
|
+
assert.equal(p1?.PersonnelWorkCode, "TRD");
|
67
|
+
|
68
|
+
// Share incident properties
|
69
|
+
assert.isArray(sut.ReportNumber);
|
70
|
+
assert.equal(sut.ReportNumber.length, 2);
|
71
|
+
const rna = _.first(sut.ReportNumber.filter((x) => x.name === "A"));
|
72
|
+
assert.isObject(rna);
|
73
|
+
assert.equal(rna?.number, "07-0351");
|
74
|
+
const rnb = _.first(sut.ReportNumber.filter((x) => x.name === "B"));
|
75
|
+
assert.isObject(rnb);
|
76
|
+
assert.equal(rnb?.number, "UM-02210");
|
77
|
+
|
78
|
+
assert.isArray(sut.radioChannels);
|
79
|
+
assert.equal(sut.radioChannels.length, 2);
|
80
|
+
const rca = _.first(sut.radioChannels.filter((x) => x.name === "CMD"));
|
81
|
+
assert.isObject(rca);
|
82
|
+
assert.equal(rca?.channel, "LOCAL Tone: 3");
|
83
|
+
assert.equal(rca?.url, "http://example.com/stream1");
|
84
|
+
const rcb = _.first(sut.radioChannels.filter((x) => x.name === "TAC"));
|
85
|
+
assert.isObject(rcb);
|
86
|
+
assert.equal(rcb?.channel, "CDF TAC 10");
|
87
|
+
assert.equal(rcb?.url, "http://example.com/stream2");
|
88
|
+
|
89
|
+
assert.isObject(sut.record);
|
90
|
+
assert.equal(sut.record.name, "John");
|
91
|
+
assert.equal(sut.record.value, "Smith");
|
92
|
+
|
93
|
+
assert.isObject(sut.sharedSource);
|
94
|
+
assert.equal(sut.sharedSource.isExternal, true);
|
95
|
+
assert.equal(sut.sharedSource.name, "Demo RTS Fire Department");
|
96
|
+
assert.isArray(sut.sharedSource.reasons);
|
97
|
+
assert.equal(sut.sharedSource.reasons.length, 1);
|
98
|
+
const ssr1 = _.first(sut.sharedSource.reasons);
|
99
|
+
assert.isObject(ssr1);
|
100
|
+
assert.equal(ssr1?.name, "Unit B10 assigned");
|
101
|
+
assert.equal(ssr1?.date.toISOString(), "2024-05-03T00:00:00.000Z");
|
102
|
+
|
103
|
+
assert.isArray(sut.sharedTo);
|
104
|
+
assert.equal(sut.sharedTo.length, 1);
|
105
|
+
const st1 = _.first(sut.sharedTo);
|
106
|
+
assert.equal(st1?.active, true);
|
107
|
+
assert.equal(st1?.departmentId, "5195426cc4e016a988000965");
|
108
|
+
assert.equal(st1?.expireAt.toISOString(), "2024-08-01T10:20:30.400Z");
|
109
|
+
assert.equal(st1?.name, "Test Fire Department");
|
110
|
+
assert.equal(st1?.startAt.toISOString(), "2024-05-01T01:02:03.040Z");
|
111
|
+
assert.equal(st1?.reasons.length, 1);
|
112
|
+
const str1 = _.first(st1?.reasons);
|
113
|
+
assert.equal(str1?.name, "Unit M10 assigned");
|
114
|
+
assert.equal(str1?.date.toISOString(), "2024-05-03T01:01:01.010Z");
|
115
|
+
});
|
116
|
+
});
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { assert } from "chai";
|
2
|
+
import "mocha";
|
3
|
+
import * as m from "../index";
|
4
|
+
import * as config from "./config";
|
5
|
+
import mockModule from "./mock";
|
6
|
+
|
7
|
+
describe("Mark43IncidentRetry", function() {
|
8
|
+
let models: m.BackendModels, mongoose: m.MongooseModule;
|
9
|
+
let testItem: Partial<m.Mark43IncidentRetry>;
|
10
|
+
beforeEach(async function() {
|
11
|
+
const c = await m.connect(config.url);
|
12
|
+
models = c.models;
|
13
|
+
mongoose = c.mongoose;
|
14
|
+
|
15
|
+
const mock = mockModule({
|
16
|
+
mongoose
|
17
|
+
});
|
18
|
+
testItem = mock.mark43IncidentRetry;
|
19
|
+
});
|
20
|
+
afterEach(async function() {
|
21
|
+
await mongoose.disconnect();
|
22
|
+
});
|
23
|
+
|
24
|
+
it("is saved", async function() {
|
25
|
+
const item = new models.Mark43IncidentRetry(testItem);
|
26
|
+
const sut = await item.save();
|
27
|
+
|
28
|
+
assert.isNotNull(sut._id);
|
29
|
+
assert.equal(testItem.departmentId, sut.departmentId);
|
30
|
+
assert.equal(testItem.active, sut.active);
|
31
|
+
assert.equal(testItem.mark43IncidentId, sut.mark43IncidentId);
|
32
|
+
assert.equal(JSON.stringify(testItem.retryPayload), JSON.stringify(sut.retryPayload));
|
33
|
+
});
|
34
|
+
});
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { assert } from "chai";
|
2
|
+
import "mocha";
|
3
|
+
import * as m from "../index";
|
4
|
+
import * as config from "./config";
|
5
|
+
import mockModule from "./mock";
|
6
|
+
|
7
|
+
describe("Message", function() {
|
8
|
+
let models: m.BackendModels, mongoose: m.MongooseModule;
|
9
|
+
let testItem: Partial<m.Message>;
|
10
|
+
beforeEach(async function() {
|
11
|
+
const c = await m.connect(config.url);
|
12
|
+
models = c.models;
|
13
|
+
mongoose = c.mongoose;
|
14
|
+
|
15
|
+
const mock = mockModule({
|
16
|
+
mongoose
|
17
|
+
});
|
18
|
+
testItem = mock.message;
|
19
|
+
});
|
20
|
+
afterEach(async function() {
|
21
|
+
await mongoose.disconnect();
|
22
|
+
});
|
23
|
+
|
24
|
+
it("is saved", async function() {
|
25
|
+
const item = new models.Message(testItem);
|
26
|
+
const sut = await item.save();
|
27
|
+
|
28
|
+
assert.isNotNull(testItem._id);
|
29
|
+
assert.equal(testItem.departmentId, sut.departmentId);
|
30
|
+
assert.equal(testItem.title, sut.title);
|
31
|
+
assert.equal(testItem.uuid, sut.uuid);
|
32
|
+
assert.equal(testItem.requestId, sut.requestId);
|
33
|
+
assert.equal(testItem.body, sut.body);
|
34
|
+
assert.equal(testItem.actionTitle, sut.actionTitle);
|
35
|
+
assert.equal(testItem.url, sut.url);
|
36
|
+
assert.equal(testItem.priority, sut.priority);
|
37
|
+
assert.equal(JSON.stringify(testItem.type), JSON.stringify(sut.type));
|
38
|
+
});
|
39
|
+
});
|