kuzzle-device-manager 2.1.3 → 2.1.4
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/dist/lib/modules/asset/AssetService.js +1 -0
- package/dist/lib/modules/asset/AssetService.js.map +1 -1
- package/dist/lib/modules/decoder/Decoder.d.ts +3 -0
- package/dist/lib/modules/decoder/Decoder.js.map +1 -1
- package/dist/lib/modules/device/DeviceService.js +1 -1
- package/dist/lib/modules/device/DeviceService.js.map +1 -1
- package/dist/lib/modules/device/DevicesController.js +3 -0
- package/dist/lib/modules/device/DevicesController.js.map +1 -1
- package/dist/lib/modules/measure/MeasureService.js +7 -3
- package/dist/lib/modules/measure/MeasureService.js.map +1 -1
- package/dist/{features/fixtures → tests}/application/app.js +3 -1
- package/dist/tests/application/app.js.map +1 -0
- package/dist/{features/fixtures → tests}/application/assets/Container.d.ts +1 -1
- package/dist/{features/fixtures → tests}/application/assets/Container.js +8 -3
- package/dist/tests/application/assets/Container.js.map +1 -0
- package/dist/{features/fixtures → tests}/application/assets/Warehouse.d.ts +1 -1
- package/dist/tests/application/assets/Warehouse.js.map +1 -0
- package/dist/{features/fixtures → tests}/application/decoders/DummyTempDecoder.d.ts +4 -1
- package/dist/{features/fixtures → tests}/application/decoders/DummyTempDecoder.js +12 -2
- package/dist/tests/application/decoders/DummyTempDecoder.js.map +1 -0
- package/dist/{features/fixtures → tests}/application/decoders/DummyTempPositionDecoder.d.ts +1 -1
- package/dist/{features/fixtures → tests}/application/decoders/DummyTempPositionDecoder.js +1 -1
- package/dist/tests/application/decoders/DummyTempPositionDecoder.js.map +1 -0
- package/dist/tests/application/decoders/index.js.map +1 -0
- package/dist/tests/application/tests/controller.js.map +1 -0
- package/dist/{features/fixtures → tests}/application/tests/pipes.js +6 -15
- package/dist/tests/application/tests/pipes.js.map +1 -0
- package/dist/tests/fixtures/fixtures.d.ts +42 -0
- package/dist/tests/fixtures/fixtures.js +143 -0
- package/dist/tests/fixtures/fixtures.js.map +1 -0
- package/dist/tests/helpers/document.d.ts +5 -0
- package/dist/tests/helpers/document.js +11 -0
- package/dist/tests/helpers/document.js.map +1 -0
- package/dist/tests/helpers/index.d.ts +4 -0
- package/dist/tests/helpers/index.js +21 -0
- package/dist/tests/helpers/index.js.map +1 -0
- package/dist/tests/helpers/payloads.d.ts +18 -0
- package/dist/tests/helpers/payloads.js +50 -0
- package/dist/tests/helpers/payloads.js.map +1 -0
- package/dist/tests/helpers/sdk.d.ts +2 -0
- package/dist/tests/helpers/sdk.js +9 -0
- package/dist/tests/helpers/sdk.js.map +1 -0
- package/dist/tests/helpers/setup.d.ts +1 -0
- package/dist/tests/helpers/setup.js +24 -0
- package/dist/tests/helpers/setup.js.map +1 -0
- package/dist/tests/hooks/collections.d.ts +3 -0
- package/dist/tests/hooks/collections.js +40 -0
- package/dist/tests/hooks/collections.js.map +1 -0
- package/dist/tests/hooks/engines.d.ts +2 -0
- package/dist/tests/hooks/engines.js +26 -0
- package/dist/tests/hooks/engines.js.map +1 -0
- package/dist/tests/hooks/fixtures.d.ts +2 -0
- package/dist/tests/hooks/fixtures.js +17 -0
- package/dist/tests/hooks/fixtures.js.map +1 -0
- package/dist/tests/scenario/migrated/asset-controller.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/asset-controller.test.js +189 -0
- package/dist/tests/scenario/migrated/asset-controller.test.js.map +1 -0
- package/dist/tests/scenario/migrated/asset-history.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/asset-history.test.js +186 -0
- package/dist/tests/scenario/migrated/asset-history.test.js.map +1 -0
- package/dist/tests/scenario/migrated/asset-roles.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/asset-roles.test.js +42 -0
- package/dist/tests/scenario/migrated/asset-roles.test.js.map +1 -0
- package/dist/tests/scenario/migrated/decoder-decoders-controller.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/decoder-decoders-controller.test.js +82 -0
- package/dist/tests/scenario/migrated/decoder-decoders-controller.test.js.map +1 -0
- package/dist/tests/scenario/migrated/decoder-default-rights.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/decoder-default-rights.test.js +29 -0
- package/dist/tests/scenario/migrated/decoder-default-rights.test.js.map +1 -0
- package/dist/tests/scenario/migrated/decoder-payload-controller.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/decoder-payload-controller.test.js +219 -0
- package/dist/tests/scenario/migrated/decoder-payload-controller.test.js.map +1 -0
- package/dist/tests/scenario/migrated/decoder-payloads-mappings.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/decoder-payloads-mappings.test.js +37 -0
- package/dist/tests/scenario/migrated/decoder-payloads-mappings.test.js.map +1 -0
- package/dist/tests/scenario/migrated/decoder-roles.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/decoder-roles.test.js +34 -0
- package/dist/tests/scenario/migrated/decoder-roles.test.js.map +1 -0
- package/dist/tests/scenario/migrated/device-controller-attach-engine.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/device-controller-attach-engine.test.js +81 -0
- package/dist/tests/scenario/migrated/device-controller-attach-engine.test.js.map +1 -0
- package/dist/tests/scenario/migrated/device-controller-detach-engine.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/device-controller-detach-engine.test.js +71 -0
- package/dist/tests/scenario/migrated/device-controller-detach-engine.test.js.map +1 -0
- package/dist/tests/scenario/migrated/device-controller-get-measures.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/device-controller-get-measures.test.js +77 -0
- package/dist/tests/scenario/migrated/device-controller-get-measures.test.js.map +1 -0
- package/dist/tests/scenario/migrated/device-controller-unlink-asset.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/device-controller-unlink-asset.test.js +89 -0
- package/dist/tests/scenario/migrated/device-controller-unlink-asset.test.js.map +1 -0
- package/dist/tests/scenario/migrated/device-metadata.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/device-metadata.test.js +29 -0
- package/dist/tests/scenario/migrated/device-metadata.test.js.map +1 -0
- package/dist/tests/scenario/migrated/device-roles.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/device-roles.test.js +58 -0
- package/dist/tests/scenario/migrated/device-roles.test.js.map +1 -0
- package/dist/tests/scenario/migrated/measure-ingestion-pipeline.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/measure-ingestion-pipeline.test.js +119 -0
- package/dist/tests/scenario/migrated/measure-ingestion-pipeline.test.js.map +1 -0
- package/dist/tests/scenario/migrated/measure-provisionning.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/measure-provisionning.test.js +38 -0
- package/dist/tests/scenario/migrated/measure-provisionning.test.js.map +1 -0
- package/dist/tests/scenario/migrated/measure-roles.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/measure-roles.test.js +42 -0
- package/dist/tests/scenario/migrated/measure-roles.test.js.map +1 -0
- package/dist/tests/scenario/migrated/model-controller.test.d.ts +1 -0
- package/dist/tests/scenario/migrated/model-controller.test.js +470 -0
- package/dist/tests/scenario/migrated/model-controller.test.js.map +1 -0
- package/dist/tests/scenario/modules/assets/action-get-measures.test.d.ts +1 -0
- package/dist/tests/scenario/modules/assets/action-get-measures.test.js +61 -0
- package/dist/tests/scenario/modules/assets/action-get-measures.test.js.map +1 -0
- package/dist/tests/scenario/modules/assets/asset-history.test.d.ts +1 -0
- package/dist/tests/scenario/modules/assets/asset-history.test.js +57 -0
- package/dist/tests/scenario/modules/assets/asset-history.test.js.map +1 -0
- package/dist/tests/scenario/modules/devices/action-attach-engine.test.d.ts +1 -0
- package/dist/tests/scenario/modules/devices/action-attach-engine.test.js +67 -0
- package/dist/tests/scenario/modules/devices/action-attach-engine.test.js.map +1 -0
- package/dist/tests/scenario/modules/devices/action-link-asset.test.d.ts +1 -0
- package/dist/tests/scenario/modules/devices/action-link-asset.test.js +200 -0
- package/dist/tests/scenario/modules/devices/action-link-asset.test.js.map +1 -0
- package/dist/tests/scenario/modules/devices/action-receive-measure.test.d.ts +1 -0
- package/dist/tests/scenario/modules/devices/action-receive-measure.test.js +109 -0
- package/dist/tests/scenario/modules/devices/action-receive-measure.test.js.map +1 -0
- package/dist/tests/scenario/modules/devices/action-scrud.test.d.ts +1 -0
- package/dist/tests/scenario/modules/devices/action-scrud.test.js +90 -0
- package/dist/tests/scenario/modules/devices/action-scrud.test.js.map +1 -0
- package/dist/tests/scenario/modules/ingestion-pipeline/before-ingestion.test.d.ts +1 -0
- package/dist/tests/scenario/modules/ingestion-pipeline/before-ingestion.test.js +33 -0
- package/dist/tests/scenario/modules/ingestion-pipeline/before-ingestion.test.js.map +1 -0
- package/dist/tests/scenario/modules/ingestion-pipeline/propagation.test.d.ts +1 -0
- package/dist/tests/scenario/modules/ingestion-pipeline/propagation.test.js +25 -0
- package/dist/tests/scenario/modules/ingestion-pipeline/propagation.test.js.map +1 -0
- package/dist/tests/scenario/usecase/dynamicaly-register-device-model.test.d.ts +1 -0
- package/dist/tests/scenario/usecase/dynamicaly-register-device-model.test.js +69 -0
- package/dist/tests/scenario/usecase/dynamicaly-register-device-model.test.js.map +1 -0
- package/package.json +10 -14
- package/dist/features/fixtures/application/app.js.map +0 -1
- package/dist/features/fixtures/application/assets/Container.js.map +0 -1
- package/dist/features/fixtures/application/assets/Warehouse.js.map +0 -1
- package/dist/features/fixtures/application/decoders/DummyTempDecoder.js.map +0 -1
- package/dist/features/fixtures/application/decoders/DummyTempPositionDecoder.js.map +0 -1
- package/dist/features/fixtures/application/decoders/index.js.map +0 -1
- package/dist/features/fixtures/application/tests/controller.js.map +0 -1
- package/dist/features/fixtures/application/tests/pipes.js.map +0 -1
- /package/dist/{features/fixtures → tests}/application/app.d.ts +0 -0
- /package/dist/{features/fixtures → tests}/application/assets/Warehouse.js +0 -0
- /package/dist/{features/fixtures → tests}/application/decoders/index.d.ts +0 -0
- /package/dist/{features/fixtures → tests}/application/decoders/index.js +0 -0
- /package/dist/{features/fixtures → tests}/application/tests/controller.d.ts +0 -0
- /package/dist/{features/fixtures → tests}/application/tests/controller.js +0 -0
- /package/dist/{features/fixtures → tests}/application/tests/pipes.d.ts +0 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const deviceDetached1 = {
|
|
4
|
+
model: "DummyTemp",
|
|
5
|
+
reference: "detached1",
|
|
6
|
+
metadata: {},
|
|
7
|
+
measures: {},
|
|
8
|
+
};
|
|
9
|
+
const deviceDetached1Id = `${deviceDetached1.model}-${deviceDetached1.reference}`;
|
|
10
|
+
const deviceAyseLinked1 = {
|
|
11
|
+
model: "DummyTemp",
|
|
12
|
+
reference: "linked1",
|
|
13
|
+
metadata: {},
|
|
14
|
+
measures: {},
|
|
15
|
+
engineId: "engine-ayse",
|
|
16
|
+
assetId: "Container-linked1",
|
|
17
|
+
};
|
|
18
|
+
const deviceAyseLinked1Id = `${deviceAyseLinked1.model}-${deviceAyseLinked1.reference}`;
|
|
19
|
+
const deviceAyseLinked2 = {
|
|
20
|
+
model: "DummyTempPosition",
|
|
21
|
+
reference: "linked2",
|
|
22
|
+
metadata: {},
|
|
23
|
+
measures: {},
|
|
24
|
+
engineId: "engine-ayse",
|
|
25
|
+
assetId: "Container-linked2",
|
|
26
|
+
};
|
|
27
|
+
const deviceAyseLinked2Id = `${deviceAyseLinked2.model}-${deviceAyseLinked2.reference}`;
|
|
28
|
+
const deviceAyseUnlinked1 = {
|
|
29
|
+
model: "DummyTemp",
|
|
30
|
+
reference: "unlinked1",
|
|
31
|
+
metadata: {},
|
|
32
|
+
measures: {},
|
|
33
|
+
engineId: "engine-ayse",
|
|
34
|
+
assetId: null,
|
|
35
|
+
};
|
|
36
|
+
const deviceAyseUnlinked1Id = `${deviceAyseUnlinked1.model}-${deviceAyseUnlinked1.reference}`;
|
|
37
|
+
const deviceAyseUnlinked2 = {
|
|
38
|
+
model: "DummyTemp",
|
|
39
|
+
reference: "unlinked2",
|
|
40
|
+
metadata: {},
|
|
41
|
+
measures: {},
|
|
42
|
+
engineId: "engine-ayse",
|
|
43
|
+
assetId: null,
|
|
44
|
+
};
|
|
45
|
+
const deviceAyseUnlinked2Id = `${deviceAyseUnlinked2.model}-${deviceAyseUnlinked2.reference}`;
|
|
46
|
+
const deviceAyseUnlinked3 = {
|
|
47
|
+
model: "DummyTempPosition",
|
|
48
|
+
reference: "unlinked3",
|
|
49
|
+
metadata: {},
|
|
50
|
+
measures: {},
|
|
51
|
+
engineId: "engine-ayse",
|
|
52
|
+
assetId: null,
|
|
53
|
+
};
|
|
54
|
+
const deviceAyseUnlinked3Id = `${deviceAyseUnlinked3.model}-${deviceAyseUnlinked3.reference}`;
|
|
55
|
+
const assetAyseLinked1 = {
|
|
56
|
+
model: "Container",
|
|
57
|
+
reference: "linked1",
|
|
58
|
+
metadata: {
|
|
59
|
+
weight: 10,
|
|
60
|
+
height: 11,
|
|
61
|
+
trailer: {
|
|
62
|
+
weight: 128,
|
|
63
|
+
capacity: 1024,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
linkedDevices: [
|
|
67
|
+
{
|
|
68
|
+
measureNames: [{ asset: "temperatureExt", device: "temperature" }],
|
|
69
|
+
_id: "DummyTemp-linked1",
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
const assetAyseLinked1Id = `${assetAyseLinked1.model}-${assetAyseLinked1.reference}`;
|
|
74
|
+
const assetAyseLinked2 = {
|
|
75
|
+
model: "Container",
|
|
76
|
+
reference: "linked2",
|
|
77
|
+
metadata: {
|
|
78
|
+
weight: 42,
|
|
79
|
+
height: 21,
|
|
80
|
+
},
|
|
81
|
+
linkedDevices: [
|
|
82
|
+
{
|
|
83
|
+
measureNames: [
|
|
84
|
+
{ asset: "temperatureExt", device: "temperature" },
|
|
85
|
+
{ asset: "position", device: "position" },
|
|
86
|
+
],
|
|
87
|
+
_id: "DummyTempPosition-linked2",
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
};
|
|
91
|
+
const assetAyseLinked2Id = `${assetAyseLinked2.model}-${assetAyseLinked2.reference}`;
|
|
92
|
+
const assetAyseUnlinked = {
|
|
93
|
+
model: "Container",
|
|
94
|
+
reference: "unlinked1",
|
|
95
|
+
metadata: {
|
|
96
|
+
weight: 20,
|
|
97
|
+
height: 22,
|
|
98
|
+
},
|
|
99
|
+
linkedDevices: [],
|
|
100
|
+
};
|
|
101
|
+
const assetAyseUnlinkedId = `${assetAyseUnlinked.model}-${assetAyseUnlinked.reference}`;
|
|
102
|
+
exports.default = {
|
|
103
|
+
"device-manager": {
|
|
104
|
+
devices: [
|
|
105
|
+
{ index: { _id: deviceAyseLinked1Id } },
|
|
106
|
+
deviceAyseLinked1,
|
|
107
|
+
{ index: { _id: deviceAyseLinked2Id } },
|
|
108
|
+
deviceAyseLinked2,
|
|
109
|
+
{ index: { _id: deviceDetached1Id } },
|
|
110
|
+
deviceDetached1,
|
|
111
|
+
{ index: { _id: deviceAyseUnlinked1Id } },
|
|
112
|
+
deviceAyseUnlinked1,
|
|
113
|
+
{ index: { _id: deviceAyseUnlinked2Id } },
|
|
114
|
+
deviceAyseUnlinked2,
|
|
115
|
+
{ index: { _id: deviceAyseUnlinked3Id } },
|
|
116
|
+
deviceAyseUnlinked3,
|
|
117
|
+
],
|
|
118
|
+
},
|
|
119
|
+
// Index "engine-ayse"
|
|
120
|
+
"engine-ayse": {
|
|
121
|
+
devices: [
|
|
122
|
+
{ index: { _id: deviceAyseLinked1Id } },
|
|
123
|
+
deviceAyseLinked1,
|
|
124
|
+
{ index: { _id: deviceAyseLinked2Id } },
|
|
125
|
+
deviceAyseLinked2,
|
|
126
|
+
{ index: { _id: deviceAyseUnlinked1Id } },
|
|
127
|
+
deviceAyseUnlinked1,
|
|
128
|
+
{ index: { _id: deviceAyseUnlinked2Id } },
|
|
129
|
+
deviceAyseUnlinked2,
|
|
130
|
+
{ index: { _id: deviceAyseUnlinked3Id } },
|
|
131
|
+
deviceAyseUnlinked3,
|
|
132
|
+
],
|
|
133
|
+
assets: [
|
|
134
|
+
{ index: { _id: assetAyseLinked1Id } },
|
|
135
|
+
assetAyseLinked1,
|
|
136
|
+
{ index: { _id: assetAyseLinked2Id } },
|
|
137
|
+
assetAyseLinked2,
|
|
138
|
+
{ index: { _id: assetAyseUnlinkedId } },
|
|
139
|
+
assetAyseUnlinked,
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../tests/fixtures/fixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.documentGet = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Returns directly the document content
|
|
6
|
+
*/
|
|
7
|
+
async function documentGet(sdk, index, collection, id) {
|
|
8
|
+
return (await sdk.document.get(index, collection, id))._source;
|
|
9
|
+
}
|
|
10
|
+
exports.documentGet = documentGet;
|
|
11
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../tests/helpers/document.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACI,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,KAAa,EACb,UAAkB,EAClB,EAAU;IAEV,OAAO,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACjE,CAAC;AAPD,kCAOC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./sdk"), exports);
|
|
18
|
+
__exportStar(require("./payloads"), exports);
|
|
19
|
+
__exportStar(require("./document"), exports);
|
|
20
|
+
__exportStar(require("./setup"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tests/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,6CAA2B;AAC3B,6CAA2B;AAC3B,0CAAwB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { JSONObject, Kuzzle } from "kuzzle-sdk";
|
|
2
|
+
export type DummyTempPayload = {
|
|
3
|
+
deviceEUI: string;
|
|
4
|
+
temperature: number;
|
|
5
|
+
measuredAt?: number;
|
|
6
|
+
battery?: number;
|
|
7
|
+
metadata?: JSONObject;
|
|
8
|
+
};
|
|
9
|
+
export type DummyTempPositionPayload = DummyTempPayload & {
|
|
10
|
+
location: {
|
|
11
|
+
lat: number;
|
|
12
|
+
lon: number;
|
|
13
|
+
accuracy?: number;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare function sendDummyTempPayloads(sdk: Kuzzle, payloads: DummyTempPayload[]): Promise<void>;
|
|
17
|
+
export declare function sendDummyTempPositionPayloads(sdk: Kuzzle, payloads: DummyTempPositionPayload[]): Promise<void>;
|
|
18
|
+
export declare function sendPayloads(sdk: Kuzzle, action: string, payloads: JSONObject[]): Promise<any>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendPayloads = exports.sendDummyTempPositionPayloads = exports.sendDummyTempPayloads = void 0;
|
|
4
|
+
async function sendDummyTempPayloads(sdk, payloads) {
|
|
5
|
+
for (const payload of payloads) {
|
|
6
|
+
await sdk.query({
|
|
7
|
+
controller: "device-manager/payloads",
|
|
8
|
+
action: "dummy-temp",
|
|
9
|
+
body: payload,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.sendDummyTempPayloads = sendDummyTempPayloads;
|
|
14
|
+
async function sendDummyTempPositionPayloads(sdk, payloads) {
|
|
15
|
+
for (const payload of payloads) {
|
|
16
|
+
await sdk.query({
|
|
17
|
+
controller: "device-manager/payloads",
|
|
18
|
+
action: "dummy-temp-position",
|
|
19
|
+
body: payload,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.sendDummyTempPositionPayloads = sendDummyTempPositionPayloads;
|
|
24
|
+
// Delay in second for dates sent between two steps so the plugin accept the new
|
|
25
|
+
// Add a delay for subsequent payload of the same device so the plugin accept it
|
|
26
|
+
const deviceDelay = {};
|
|
27
|
+
async function sendPayloads(sdk, action, payloads) {
|
|
28
|
+
let response;
|
|
29
|
+
for (let i = 0; i < payloads.length; i++) {
|
|
30
|
+
const payload = payloads[i];
|
|
31
|
+
if (deviceDelay[payload.reference]) {
|
|
32
|
+
deviceDelay[payload.reference] += 2;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
deviceDelay[payload.reference] = 1;
|
|
36
|
+
}
|
|
37
|
+
if (!payload.date) {
|
|
38
|
+
const delay = deviceDelay[payload.reference] * 1000;
|
|
39
|
+
payload.date = new Date(Date.now() + delay);
|
|
40
|
+
}
|
|
41
|
+
response = await sdk.query({
|
|
42
|
+
controller: "device-manager/payloads",
|
|
43
|
+
action,
|
|
44
|
+
body: payload,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return response;
|
|
48
|
+
}
|
|
49
|
+
exports.sendPayloads = sendPayloads;
|
|
50
|
+
//# sourceMappingURL=payloads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payloads.js","sourceRoot":"","sources":["../../../tests/helpers/payloads.ts"],"names":[],"mappings":";;;AAkBO,KAAK,UAAU,qBAAqB,CACzC,GAAW,EACX,QAA4B;IAE5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,GAAG,CAAC,KAAK,CAAC;YACd,UAAU,EAAE,yBAAyB;YACrC,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;KACJ;AACH,CAAC;AAXD,sDAWC;AAEM,KAAK,UAAU,6BAA6B,CACjD,GAAW,EACX,QAAoC;IAEpC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,GAAG,CAAC,KAAK,CAAC;YACd,UAAU,EAAE,yBAAyB;YACrC,MAAM,EAAE,qBAAqB;YAC7B,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;KACJ;AACH,CAAC;AAXD,sEAWC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,MAAM,WAAW,GAAG,EAAE,CAAC;AAEhB,KAAK,UAAU,YAAY,CAChC,GAAW,EACX,MAAc,EACd,QAAsB;IAEtB,IAAI,QAAQ,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAClC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACrC;aAAM;YACL,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACpC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjB,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YACpD,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;SAC7C;QAED,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC;YACzB,UAAU,EAAE,yBAAyB;YACrC,MAAM;YACN,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;KACJ;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AA7BD,oCA6BC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSdk = void 0;
|
|
4
|
+
const kuzzle_sdk_1 = require("kuzzle-sdk");
|
|
5
|
+
function useSdk() {
|
|
6
|
+
return new kuzzle_sdk_1.Kuzzle(new kuzzle_sdk_1.WebSocket("localhost", { port: 7512 }));
|
|
7
|
+
}
|
|
8
|
+
exports.useSdk = useSdk;
|
|
9
|
+
//# sourceMappingURL=sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../tests/helpers/sdk.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAE/C,SAAgB,MAAM;IACpB,OAAO,IAAI,mBAAM,CAAC,IAAI,sBAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC;AAFD,wBAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function setupHooks(): import("kuzzle-sdk").Kuzzle;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupHooks = void 0;
|
|
4
|
+
const collections_1 = require("../hooks/collections");
|
|
5
|
+
const engines_1 = require("../hooks/engines");
|
|
6
|
+
const fixtures_1 = require("../hooks/fixtures");
|
|
7
|
+
const sdk_1 = require("./sdk");
|
|
8
|
+
function setupHooks() {
|
|
9
|
+
const sdk = (0, sdk_1.useSdk)();
|
|
10
|
+
beforeAll(async () => {
|
|
11
|
+
await sdk.connect();
|
|
12
|
+
await (0, engines_1.beforeAllCreateEngines)(sdk);
|
|
13
|
+
});
|
|
14
|
+
beforeEach(async () => {
|
|
15
|
+
await (0, collections_1.beforeEachTruncateCollections)(sdk);
|
|
16
|
+
await (0, fixtures_1.beforeEachLoadFixtures)(sdk);
|
|
17
|
+
});
|
|
18
|
+
afterAll(async () => {
|
|
19
|
+
sdk.disconnect();
|
|
20
|
+
});
|
|
21
|
+
return sdk;
|
|
22
|
+
}
|
|
23
|
+
exports.setupHooks = setupHooks;
|
|
24
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../tests/helpers/setup.ts"],"names":[],"mappings":";;;AAAA,sDAAqE;AACrE,8CAA0D;AAC1D,gDAA2D;AAC3D,+BAA+B;AAE/B,SAAgB,UAAU;IACxB,MAAM,GAAG,GAAG,IAAA,YAAM,GAAE,CAAC;IAErB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAA,gCAAsB,EAAC,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,IAAA,2CAA6B,EAAC,GAAG,CAAC,CAAC;QACzC,MAAM,IAAA,iCAAsB,EAAC,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,GAAG,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAlBD,gCAkBC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.beforeEachTruncateCollections = exports.truncateCollection = void 0;
|
|
4
|
+
async function truncateCollection(sdk, index, collection) {
|
|
5
|
+
await sdk.collection.refresh(index, collection);
|
|
6
|
+
await sdk.document.deleteByQuery(index, collection, {});
|
|
7
|
+
}
|
|
8
|
+
exports.truncateCollection = truncateCollection;
|
|
9
|
+
async function deleteModels(sdk) {
|
|
10
|
+
await sdk.collection.refresh("device-manager", "models");
|
|
11
|
+
await sdk.document.deleteByQuery("device-manager", "models", {
|
|
12
|
+
query: {
|
|
13
|
+
ids: {
|
|
14
|
+
values: [
|
|
15
|
+
"model-measure-presence",
|
|
16
|
+
"model-asset-plane",
|
|
17
|
+
"model-device-Zigbee",
|
|
18
|
+
"model-device-Enginko",
|
|
19
|
+
],
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
async function beforeEachTruncateCollections(sdk) {
|
|
25
|
+
await Promise.all([
|
|
26
|
+
truncateCollection(sdk, "device-manager", "devices"),
|
|
27
|
+
truncateCollection(sdk, "device-manager", "payloads"),
|
|
28
|
+
truncateCollection(sdk, "engine-kuzzle", "assets"),
|
|
29
|
+
truncateCollection(sdk, "engine-kuzzle", "assets-history"),
|
|
30
|
+
truncateCollection(sdk, "engine-kuzzle", "measures"),
|
|
31
|
+
truncateCollection(sdk, "engine-kuzzle", "devices"),
|
|
32
|
+
truncateCollection(sdk, "engine-ayse", "assets"),
|
|
33
|
+
truncateCollection(sdk, "engine-ayse", "assets-history"),
|
|
34
|
+
truncateCollection(sdk, "engine-ayse", "measures"),
|
|
35
|
+
truncateCollection(sdk, "engine-ayse", "devices"),
|
|
36
|
+
deleteModels(sdk),
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
39
|
+
exports.beforeEachTruncateCollections = beforeEachTruncateCollections;
|
|
40
|
+
//# sourceMappingURL=collections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../../tests/hooks/collections.ts"],"names":[],"mappings":";;;AAEO,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,KAAa,EACb,UAAkB;IAElB,MAAM,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC;AAPD,gDAOC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,MAAM,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,EAAE,QAAQ,EAAE;QAC3D,KAAK,EAAE;YACL,GAAG,EAAE;gBACH,MAAM,EAAE;oBACN,wBAAwB;oBACxB,mBAAmB;oBACnB,qBAAqB;oBACrB,sBAAsB;iBACvB;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,6BAA6B,CAAC,GAAW;IAC7D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,CAAC;QACpD,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,UAAU,CAAC;QAErD,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,CAAC;QAClD,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,CAAC;QAC1D,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC;QACpD,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,CAAC;QAEnD,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;QAChD,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,gBAAgB,CAAC;QACxD,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC;QAClD,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC;QACjD,YAAY,CAAC,GAAG,CAAC;KAClB,CAAC,CAAC;AACL,CAAC;AAhBD,sEAgBC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.beforeAllCreateEngines = void 0;
|
|
4
|
+
async function createEngineIfNotExists(sdk, index) {
|
|
5
|
+
const { result } = await sdk.query({
|
|
6
|
+
controller: "device-manager/engine",
|
|
7
|
+
action: "exists",
|
|
8
|
+
index,
|
|
9
|
+
});
|
|
10
|
+
if (result.exists) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
await sdk.query({
|
|
14
|
+
controller: "device-manager/engine",
|
|
15
|
+
action: "create",
|
|
16
|
+
index,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async function beforeAllCreateEngines(sdk) {
|
|
20
|
+
await Promise.all([
|
|
21
|
+
createEngineIfNotExists(sdk, "engine-ayse"),
|
|
22
|
+
createEngineIfNotExists(sdk, "engine-kuzzle"),
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
exports.beforeAllCreateEngines = beforeAllCreateEngines;
|
|
26
|
+
//# sourceMappingURL=engines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../../tests/hooks/engines.ts"],"names":[],"mappings":";;;AAEA,KAAK,UAAU,uBAAuB,CAAC,GAAW,EAAE,KAAa;IAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,CAA0B;QAC1D,UAAU,EAAE,uBAAuB;QACnC,MAAM,EAAE,QAAQ;QAChB,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,OAAO;KACR;IAED,MAAM,GAAG,CAAC,KAAK,CAAC;QACd,UAAU,EAAE,uBAAuB;QACnC,MAAM,EAAE,QAAQ;QAChB,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAAC,GAAW;IACtD,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,uBAAuB,CAAC,GAAG,EAAE,aAAa,CAAC;QAC3C,uBAAuB,CAAC,GAAG,EAAE,eAAe,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC;AALD,wDAKC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.beforeEachLoadFixtures = void 0;
|
|
7
|
+
const fixtures_1 = __importDefault(require("../fixtures/fixtures"));
|
|
8
|
+
async function beforeEachLoadFixtures(sdk) {
|
|
9
|
+
await sdk.query({
|
|
10
|
+
controller: "admin",
|
|
11
|
+
action: "loadFixtures",
|
|
12
|
+
refresh: "false",
|
|
13
|
+
body: fixtures_1.default,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
exports.beforeEachLoadFixtures = beforeEachLoadFixtures;
|
|
17
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../tests/hooks/fixtures.ts"],"names":[],"mappings":";;;;;;AAEA,oEAA4C;AAErC,KAAK,UAAU,sBAAsB,CAAC,GAAW;IACtD,MAAM,GAAG,CAAC,KAAK,CAAC;QACd,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,kBAAQ;KACf,CAAC,CAAC;AACL,CAAC;AAPD,wDAOC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const collections_1 = require("../../hooks/collections");
|
|
4
|
+
const engines_1 = require("../../hooks/engines");
|
|
5
|
+
const fixtures_1 = require("../../hooks/fixtures");
|
|
6
|
+
const helpers_1 = require("../../helpers");
|
|
7
|
+
jest.setTimeout(10000);
|
|
8
|
+
describe("features/Asset/Controller", () => {
|
|
9
|
+
const sdk = (0, helpers_1.useSdk)();
|
|
10
|
+
beforeAll(async () => {
|
|
11
|
+
await sdk.connect();
|
|
12
|
+
await (0, engines_1.beforeAllCreateEngines)(sdk);
|
|
13
|
+
});
|
|
14
|
+
beforeEach(async () => {
|
|
15
|
+
await (0, collections_1.beforeEachTruncateCollections)(sdk);
|
|
16
|
+
await (0, fixtures_1.beforeEachLoadFixtures)(sdk);
|
|
17
|
+
});
|
|
18
|
+
afterAll(async () => {
|
|
19
|
+
sdk.disconnect();
|
|
20
|
+
});
|
|
21
|
+
it("SCRUD asset", async () => {
|
|
22
|
+
let response;
|
|
23
|
+
let promise;
|
|
24
|
+
response = await sdk.query({
|
|
25
|
+
controller: "device-manager/assets",
|
|
26
|
+
action: "create",
|
|
27
|
+
engineId: "engine-kuzzle",
|
|
28
|
+
body: { model: "Container", reference: "A1", metadata: { height: 5 } },
|
|
29
|
+
});
|
|
30
|
+
await expect(sdk.document.get("engine-kuzzle", "assets", "Container-A1")).resolves.toMatchObject({
|
|
31
|
+
_source: {
|
|
32
|
+
metadata: { height: 5, weight: null },
|
|
33
|
+
measures: {
|
|
34
|
+
temperatureExt: null,
|
|
35
|
+
temperatureInt: null,
|
|
36
|
+
position: null,
|
|
37
|
+
},
|
|
38
|
+
linkedDevices: [],
|
|
39
|
+
_kuzzle_info: { author: "-1" },
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
response = await sdk.query({
|
|
43
|
+
controller: "device-manager/assets",
|
|
44
|
+
action: "update",
|
|
45
|
+
engineId: "engine-kuzzle",
|
|
46
|
+
_id: "Container-A1",
|
|
47
|
+
body: { metadata: { weight: 1250 } },
|
|
48
|
+
});
|
|
49
|
+
await expect(sdk.document.get("engine-kuzzle", "assets", "Container-A1")).resolves.toMatchObject({
|
|
50
|
+
_source: {
|
|
51
|
+
metadata: { height: 5, weight: 1250 },
|
|
52
|
+
_kuzzle_info: { updater: "-1" },
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
response = await sdk.query({
|
|
56
|
+
controller: "device-manager/assets",
|
|
57
|
+
action: "get",
|
|
58
|
+
engineId: "engine-kuzzle",
|
|
59
|
+
_id: "Container-A1",
|
|
60
|
+
});
|
|
61
|
+
expect(response.result).toMatchObject({
|
|
62
|
+
_source: { metadata: { height: 5 }, reference: "A1" },
|
|
63
|
+
});
|
|
64
|
+
response = await sdk.query({
|
|
65
|
+
controller: "device-manager/assets",
|
|
66
|
+
action: "create",
|
|
67
|
+
engineId: "engine-kuzzle",
|
|
68
|
+
body: { model: "Container", reference: "B2" },
|
|
69
|
+
});
|
|
70
|
+
await sdk.collection.refresh("engine-kuzzle", "assets");
|
|
71
|
+
response = await sdk.query({
|
|
72
|
+
controller: "device-manager/assets",
|
|
73
|
+
action: "search",
|
|
74
|
+
engineId: "engine-kuzzle",
|
|
75
|
+
body: { query: { equals: { reference: "A1" } } },
|
|
76
|
+
size: 1,
|
|
77
|
+
lang: "koncorde",
|
|
78
|
+
});
|
|
79
|
+
expect(response.result.hits[0]).toMatchObject({ _id: "Container-A1" });
|
|
80
|
+
response = await sdk.query({
|
|
81
|
+
controller: "device-manager/assets",
|
|
82
|
+
action: "delete",
|
|
83
|
+
engineId: "engine-kuzzle",
|
|
84
|
+
_id: "Container-A1",
|
|
85
|
+
});
|
|
86
|
+
await expect(sdk.document.exists("engine-kuzzle", "assets", "Container-A1")).resolves.toBe(false);
|
|
87
|
+
});
|
|
88
|
+
it("Error when creating Asset from unknown model", async () => {
|
|
89
|
+
let response;
|
|
90
|
+
let promise;
|
|
91
|
+
promise = sdk.query({
|
|
92
|
+
controller: "device-manager/assets",
|
|
93
|
+
action: "create",
|
|
94
|
+
engineId: "engine-kuzzle",
|
|
95
|
+
body: { model: "truck", reference: "BX98HZ" },
|
|
96
|
+
});
|
|
97
|
+
await expect(promise).rejects.toMatchObject({
|
|
98
|
+
message: 'Unknown Asset model "truck".',
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
it("Update linked device when deleting asset", async () => {
|
|
102
|
+
let response;
|
|
103
|
+
let promise;
|
|
104
|
+
response = await sdk.query({
|
|
105
|
+
controller: "device-manager/assets",
|
|
106
|
+
action: "delete",
|
|
107
|
+
engineId: "engine-ayse",
|
|
108
|
+
_id: "Container-linked1",
|
|
109
|
+
});
|
|
110
|
+
await expect(sdk.document.exists("engine-ayse", "assets", "Container-linked1")).resolves.toBe(false);
|
|
111
|
+
await expect(sdk.document.get("device-manager", "devices", "DummyTemp-linked1")).resolves.toMatchObject({
|
|
112
|
+
_source: { assetId: null },
|
|
113
|
+
});
|
|
114
|
+
await expect(sdk.document.get("engine-ayse", "devices", "DummyTemp-linked1")).resolves.toMatchObject({
|
|
115
|
+
_source: { assetId: null },
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
it("Get asset measures history", async () => {
|
|
119
|
+
let response;
|
|
120
|
+
let promise;
|
|
121
|
+
response = await (0, helpers_1.sendPayloads)(sdk, "dummy-temp", [
|
|
122
|
+
{ deviceEUI: "linked1", temperature: 42 },
|
|
123
|
+
{ deviceEUI: "linked1", temperature: 41 },
|
|
124
|
+
{ deviceEUI: "linked1", temperature: 40 },
|
|
125
|
+
]);
|
|
126
|
+
await sdk.collection.refresh("engine-ayse", "measures");
|
|
127
|
+
response = await sdk.query({
|
|
128
|
+
controller: "device-manager/assets",
|
|
129
|
+
action: "getMeasures",
|
|
130
|
+
engineId: "engine-ayse",
|
|
131
|
+
_id: "Container-linked1",
|
|
132
|
+
size: 2,
|
|
133
|
+
body: { sort: { "values.temperature": "desc" } },
|
|
134
|
+
});
|
|
135
|
+
expect(response.result).toMatchObject({
|
|
136
|
+
total: 3,
|
|
137
|
+
measures: { length: 2 },
|
|
138
|
+
});
|
|
139
|
+
expect(response.result.measures[0]).toMatchObject({
|
|
140
|
+
_source: {
|
|
141
|
+
values: { temperature: 42 },
|
|
142
|
+
asset: { _id: "Container-linked1", model: "Container" },
|
|
143
|
+
origin: { _id: "DummyTemp-linked1" },
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
expect(response.result.measures[1]).toMatchObject({
|
|
147
|
+
_source: {
|
|
148
|
+
values: { temperature: 41 },
|
|
149
|
+
asset: { _id: "Container-linked1", model: "Container" },
|
|
150
|
+
origin: { _id: "DummyTemp-linked1" },
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
response = await sdk.query({
|
|
154
|
+
controller: "device-manager/assets",
|
|
155
|
+
action: "getMeasures",
|
|
156
|
+
engineId: "engine-ayse",
|
|
157
|
+
_id: "Container-linked1",
|
|
158
|
+
body: { query: { equals: { "values.temperature": 40 } } },
|
|
159
|
+
});
|
|
160
|
+
expect(response.result.measures[0]).toMatchObject({
|
|
161
|
+
_source: {
|
|
162
|
+
values: { temperature: 40 },
|
|
163
|
+
asset: { _id: "Container-linked1", model: "Container" },
|
|
164
|
+
origin: { _id: "DummyTemp-linked1" },
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
response = await sdk.query({
|
|
168
|
+
controller: "device-manager/assets",
|
|
169
|
+
action: "getMeasures",
|
|
170
|
+
engineId: "engine-ayse",
|
|
171
|
+
_id: "Container-linked1",
|
|
172
|
+
type: "position",
|
|
173
|
+
});
|
|
174
|
+
expect(response.result).toMatchObject({ measures: [] });
|
|
175
|
+
});
|
|
176
|
+
it("Create asset from backend side", async () => {
|
|
177
|
+
let response;
|
|
178
|
+
let promise;
|
|
179
|
+
response = await sdk.query({
|
|
180
|
+
controller: "tests",
|
|
181
|
+
action: "createDigitalTwinFromBackend",
|
|
182
|
+
engineId: "engine-kuzzle",
|
|
183
|
+
body: { reference: "foobar" },
|
|
184
|
+
});
|
|
185
|
+
await expect(sdk.document.exists("engine-kuzzle", "assets", "Container-foobar")).resolves.toBe(true);
|
|
186
|
+
await expect(sdk.document.exists("engine-kuzzle", "devices", "DummyTemp-foobar")).resolves.toBe(true);
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
//# sourceMappingURL=asset-controller.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-controller.test.js","sourceRoot":"","sources":["../../../../tests/scenario/migrated/asset-controller.test.ts"],"names":[],"mappings":"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"}
|