iobroker.telegram-menu 2.4.0 → 2.4.2
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/README.md +8 -1
- package/admin/build/index.js +1 -1
- package/admin/build/index.js.map +3 -3
- package/build/app/action.js +4 -3
- package/build/app/action.js.map +2 -2
- package/build/app/echarts.js.map +1 -1
- package/build/app/getstate.js +8 -6
- package/build/app/getstate.js.map +2 -2
- package/build/app/idBySelector.js.map +2 -2
- package/build/app/telegram.js +5 -1
- package/build/app/telegram.js.map +2 -2
- package/build/lib/appUtils.js.map +2 -2
- package/build/lib/exchangeValue.js +8 -4
- package/build/lib/exchangeValue.js.map +2 -2
- package/build/lib/string.js +7 -1
- package/build/lib/string.js.map +2 -2
- package/build/types/types.js.map +1 -1
- package/io-package.json +27 -27
- package/package.json +5 -5
- package/build/.eslintrc.js +0 -70
- package/build/.eslintrc.js.map +0 -1
- package/build/build/src/app/action.js +0 -447
- package/build/build/src/app/adapterStartMenuSend.js +0 -37
- package/build/build/src/app/backMenu.js +0 -70
- package/build/build/src/app/botAction.js +0 -25
- package/build/build/src/app/connection.js +0 -19
- package/build/build/src/app/createState.js +0 -19
- package/build/build/src/app/dynamicSwitch.js +0 -51
- package/build/build/src/app/dynamicValue.js +0 -64
- package/build/build/src/app/echarts.js +0 -45
- package/build/build/src/app/getstate.js +0 -157
- package/build/build/src/app/global.js +0 -59
- package/build/build/src/app/httpRequest.js +0 -64
- package/build/build/src/app/jsonTable.js +0 -147
- package/build/build/src/app/logging.js +0 -13
- package/build/build/src/app/messageIds.js +0 -88
- package/build/build/src/app/processData.js +0 -208
- package/build/build/src/app/sendNav.js +0 -30
- package/build/build/src/app/sendpic.js +0 -69
- package/build/build/src/app/setstate.js +0 -126
- package/build/build/src/app/shoppingList.js +0 -72
- package/build/build/src/app/subMenu.js +0 -361
- package/build/build/src/app/subscribeStates.js +0 -25
- package/build/build/src/app/telegram.js +0 -101
- package/build/build/src/lib/string.js +0 -28
- package/build/build/src/lib/time.js +0 -23
- package/build/build/src/lib/utilities.js +0 -263
- package/build/build/src/lib/utils.js +0 -13
- package/build/build/src/main.js +0 -402
- package/build/io-package.json +0 -324
- package/build/src/app/action.js +0 -239
- package/build/src/app/action.js.map +0 -1
- package/build/src/app/adapterManager.js +0 -12
- package/build/src/app/adapterManager.js.map +0 -1
- package/build/src/app/adapterStartMenuSend.js +0 -36
- package/build/src/app/adapterStartMenuSend.js.map +0 -1
- package/build/src/app/backMenu.js +0 -81
- package/build/src/app/backMenu.js.map +0 -1
- package/build/src/app/botAction.js +0 -25
- package/build/src/app/botAction.js.map +0 -1
- package/build/src/app/configVariables.js +0 -32
- package/build/src/app/configVariables.js.map +0 -1
- package/build/src/app/connection.js +0 -20
- package/build/src/app/connection.js.map +0 -1
- package/build/src/app/createState.js +0 -19
- package/build/src/app/createState.js.map +0 -1
- package/build/src/app/dynamicSwitch.js +0 -52
- package/build/src/app/dynamicSwitch.js.map +0 -1
- package/build/src/app/dynamicSwitchMenu.js +0 -52
- package/build/src/app/dynamicSwitchMenu.js.map +0 -1
- package/build/src/app/dynamicValue.js +0 -52
- package/build/src/app/dynamicValue.js.map +0 -1
- package/build/src/app/echarts.js +0 -33
- package/build/src/app/echarts.js.map +0 -1
- package/build/src/app/getstate.js +0 -122
- package/build/src/app/getstate.js.map +0 -1
- package/build/src/app/global.js +0 -8
- package/build/src/app/global.js.map +0 -1
- package/build/src/app/httpRequest.js +0 -55
- package/build/src/app/httpRequest.js.map +0 -1
- package/build/src/app/jsonTable.js +0 -147
- package/build/src/app/jsonTable.js.map +0 -1
- package/build/src/app/logging.js +0 -22
- package/build/src/app/logging.js.map +0 -1
- package/build/src/app/messageIds.js +0 -89
- package/build/src/app/messageIds.js.map +0 -1
- package/build/src/app/processData.js +0 -153
- package/build/src/app/processData.js.map +0 -1
- package/build/src/app/sendNav.js +0 -26
- package/build/src/app/sendNav.js.map +0 -1
- package/build/src/app/sendpic.js +0 -66
- package/build/src/app/sendpic.js.map +0 -1
- package/build/src/app/sentry.js +0 -18
- package/build/src/app/sentry.js.map +0 -1
- package/build/src/app/setStateIdsToListenTo.js +0 -17
- package/build/src/app/setStateIdsToListenTo.js.map +0 -1
- package/build/src/app/setstate.js +0 -114
- package/build/src/app/setstate.js.map +0 -1
- package/build/src/app/shoppingList.js +0 -74
- package/build/src/app/shoppingList.js.map +0 -1
- package/build/src/app/subMenu.js +0 -237
- package/build/src/app/subMenu.js.map +0 -1
- package/build/src/app/subscribeStates.js +0 -17
- package/build/src/app/subscribeStates.js.map +0 -1
- package/build/src/app/telegram.js +0 -83
- package/build/src/app/telegram.js.map +0 -1
- package/build/src/app/validateMenus.js +0 -30
- package/build/src/app/validateMenus.js.map +0 -1
- package/build/src/config/config.js +0 -100
- package/build/src/config/config.js.map +0 -1
- package/build/src/lib/appUtils.js +0 -126
- package/build/src/lib/appUtils.js.map +0 -1
- package/build/src/lib/appUtilsString.js +0 -13
- package/build/src/lib/appUtilsString.js.map +0 -1
- package/build/src/lib/json.js +0 -37
- package/build/src/lib/json.js.map +0 -1
- package/build/src/lib/math.js +0 -17
- package/build/src/lib/math.js.map +0 -1
- package/build/src/lib/object.js +0 -10
- package/build/src/lib/object.js.map +0 -1
- package/build/src/lib/splitValues.js +0 -35
- package/build/src/lib/splitValues.js.map +0 -1
- package/build/src/lib/string.js +0 -121
- package/build/src/lib/string.js.map +0 -1
- package/build/src/lib/time.js +0 -57
- package/build/src/lib/time.js.map +0 -1
- package/build/src/lib/utilities.js +0 -111
- package/build/src/lib/utilities.js.map +0 -1
- package/build/src/lib/utils.js +0 -37
- package/build/src/lib/utils.js.map +0 -1
- package/build/src/main.js +0 -332
- package/build/src/main.js.map +0 -1
- package/build/src/test/setup.js +0 -12
- package/build/src/test/setup.js.map +0 -1
- package/build/src/types/types.js +0 -3
- package/build/src/types/types.js.map +0 -1
- package/build/test/integration.js +0 -6
- package/build/test/integration.js.map +0 -1
- package/build/test/mocha.setup.js +0 -14
- package/build/test/mocha.setup.js.map +0 -1
- package/build/test/package.js +0 -6
- package/build/test/package.js.map +0 -1
- package/build/test/setup.js +0 -12
- package/build/test/setup.js.map +0 -1
- package/build/test/test/appUtils.test.js +0 -519
- package/build/test/test/appUtils.test.js.map +0 -1
- package/build/test/test/appUtilsString.test.js +0 -16
- package/build/test/test/appUtilsString.test.js.map +0 -1
- package/build/test/test/math.test.js +0 -33
- package/build/test/test/math.test.js.map +0 -1
- package/build/test/test/object.test.js +0 -66
- package/build/test/test/object.test.js.map +0 -1
- package/build/test/test/string.test.js +0 -385
- package/build/test/test/string.test.js.map +0 -1
- package/build/test/test/time.test.js +0 -186
- package/build/test/test/time.test.js.map +0 -1
- package/build/test/test/utils.test.js +0 -115
- package/build/test/test/utils.test.js.map +0 -1
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const chai_1 = require("chai");
|
|
4
|
-
const object_1 = require("../../src/lib/object");
|
|
5
|
-
describe('deleteDoubleEntriesInArray', () => {
|
|
6
|
-
it('should remove duplicate entries from an array', () => {
|
|
7
|
-
const input = ['a', 'b', 'a', 'c', 'b'];
|
|
8
|
-
const expectedOutput = ['a', 'b', 'c'];
|
|
9
|
-
(0, chai_1.expect)((0, object_1.removeDuplicates)(input)).to.deep.equal(expectedOutput);
|
|
10
|
-
});
|
|
11
|
-
it('should return the same array if there are no duplicates', () => {
|
|
12
|
-
const input = ['a', 'b', 'c'];
|
|
13
|
-
const expectedOutput = ['a', 'b', 'c'];
|
|
14
|
-
(0, chai_1.expect)((0, object_1.removeDuplicates)(input)).to.deep.equal(expectedOutput);
|
|
15
|
-
});
|
|
16
|
-
it('should return an empty array if the input is empty', () => {
|
|
17
|
-
const input = [];
|
|
18
|
-
const expectedOutput = [];
|
|
19
|
-
(0, chai_1.expect)((0, object_1.removeDuplicates)(input)).to.deep.equal(expectedOutput);
|
|
20
|
-
});
|
|
21
|
-
it('should handle arrays with one element', () => {
|
|
22
|
-
const input = ['a'];
|
|
23
|
-
const expectedOutput = ['a'];
|
|
24
|
-
(0, chai_1.expect)((0, object_1.removeDuplicates)(input)).to.deep.equal(expectedOutput);
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
describe('trimAllItems', () => {
|
|
28
|
-
it('should trim whitespace from all items in the array', () => {
|
|
29
|
-
const input = [' a ', ' b', 'c '];
|
|
30
|
-
const expectedOutput = ['a', 'b', 'c'];
|
|
31
|
-
(0, chai_1.expect)((0, object_1.trimAllItems)(input)).to.deep.equal(expectedOutput);
|
|
32
|
-
});
|
|
33
|
-
it('should return an empty array if the input is empty', () => {
|
|
34
|
-
const input = [];
|
|
35
|
-
const expectedOutput = [];
|
|
36
|
-
(0, chai_1.expect)((0, object_1.trimAllItems)(input)).to.deep.equal(expectedOutput);
|
|
37
|
-
});
|
|
38
|
-
it('should handle arrays with one element', () => {
|
|
39
|
-
const input = [' singleItem '];
|
|
40
|
-
const expectedOutput = ['singleItem'];
|
|
41
|
-
(0, chai_1.expect)((0, object_1.trimAllItems)(input)).to.deep.equal(expectedOutput);
|
|
42
|
-
});
|
|
43
|
-
it('should not modify items that do not have whitespace', () => {
|
|
44
|
-
const input = ['a', 'b', 'c'];
|
|
45
|
-
const expectedOutput = ['a', 'b', 'c'];
|
|
46
|
-
(0, chai_1.expect)((0, object_1.trimAllItems)(input)).to.deep.equal(expectedOutput);
|
|
47
|
-
});
|
|
48
|
-
it('should handle arrays with empty strings', () => {
|
|
49
|
-
const input = [' ', 'a', ' '];
|
|
50
|
-
const expectedOutput = ['', 'a', ''];
|
|
51
|
-
(0, chai_1.expect)((0, object_1.trimAllItems)(input)).to.deep.equal(expectedOutput);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe('setStateIdsToIdArray', () => {
|
|
55
|
-
it('should extract ids from an array of SetStateIds objects', () => {
|
|
56
|
-
const input = [{ id: '1', confirm: "true", parse_mode: true, returnText: "", userToSend: "" }, { id: '2', confirm: "true", parse_mode: true, returnText: "", userToSend: "" }, { id: '3', confirm: "true", parse_mode: true, returnText: "", userToSend: "" }];
|
|
57
|
-
const expectedOutput = ['1', '2', '3'];
|
|
58
|
-
(0, chai_1.expect)((0, object_1.setStateIdsToIdArray)(input)).to.deep.equal(expectedOutput);
|
|
59
|
-
});
|
|
60
|
-
it('should return an empty array if the input is empty', () => {
|
|
61
|
-
const input = [];
|
|
62
|
-
const expectedOutput = [];
|
|
63
|
-
(0, chai_1.expect)((0, object_1.setStateIdsToIdArray)(input)).to.deep.equal(expectedOutput);
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
//# sourceMappingURL=object.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object.test.js","sourceRoot":"","sources":["../../../test/test/object.test.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,iDAA0F;AAG1F,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAC/D,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAA,aAAM,EAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAA,aAAM,EAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAA,aAAM,EAAC,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACjC,MAAM,cAAc,GAAG,CAAC,YAAY,CAAC,CAAC;QACtC,IAAA,aAAM,EAAC,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACrC,IAAA,aAAM,EAAC,IAAA,qBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAC/D,MAAM,KAAK,GAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAC,EAAE,EAAE,UAAU,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAC,EAAE,EAAE,UAAU,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAC,EAAE,EAAE,UAAU,EAAC,EAAE,EAAE,CAAC,CAAC;QACrQ,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,IAAA,6BAAoB,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAA,aAAM,EAAC,IAAA,6BAAoB,EAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const string_1 = require("../../src/lib/string");
|
|
4
|
-
const chai_1 = require("chai");
|
|
5
|
-
const testing_1 = require("@iobroker/testing");
|
|
6
|
-
const appUtils_1 = require("../../src/lib/appUtils");
|
|
7
|
-
const { adapter, database } = testing_1.utils.unit.createMocks({});
|
|
8
|
-
describe('jsonString', () => {
|
|
9
|
-
it('jsonString', () => {
|
|
10
|
-
const result = (0, string_1.jsonString)({ test: 'test' });
|
|
11
|
-
(0, chai_1.expect)(result).to.equal('{"test":"test"}');
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
describe('parseJSON', () => {
|
|
15
|
-
it('parseJSON with json', () => {
|
|
16
|
-
const result = (0, string_1.parseJSON)('{"test":123}');
|
|
17
|
-
(0, chai_1.expect)(result).to.deep.equal({ isValidJson: true, json: { test: 123 } });
|
|
18
|
-
});
|
|
19
|
-
it('parseJSON with incorrect json', () => {
|
|
20
|
-
const result = (0, string_1.parseJSON)('test');
|
|
21
|
-
(0, chai_1.expect)(result).to.deep.equal({ isValidJson: false, json: 'test' });
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
describe('replaceAll', () => {
|
|
25
|
-
it('Replace all', () => {
|
|
26
|
-
const texts = [
|
|
27
|
-
{ val: 'Test', expect: 'Test' },
|
|
28
|
-
{
|
|
29
|
-
val: 'Abc. Def. Ghi.//.',
|
|
30
|
-
expect: 'Abc Def Ghi // ',
|
|
31
|
-
},
|
|
32
|
-
];
|
|
33
|
-
texts.forEach(text => {
|
|
34
|
-
const result = (0, string_1.replaceAll)(text.val, '.', ' ');
|
|
35
|
-
(0, chai_1.expect)(result).to.equal(text.expect);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
describe('replaceAllItems', () => {
|
|
40
|
-
it('should replace all matching strings in the text', () => {
|
|
41
|
-
const text = 'Hello World!';
|
|
42
|
-
const searched = ['Hello', 'World'];
|
|
43
|
-
const result = (0, string_1.replaceAllItems)(text, searched);
|
|
44
|
-
(0, chai_1.expect)(result).to.equal(' !');
|
|
45
|
-
});
|
|
46
|
-
it('should replace all matching objects in the text', () => {
|
|
47
|
-
const text = 'Hello World!';
|
|
48
|
-
const searched = [
|
|
49
|
-
{ search: 'Hello', val: 'Hi' },
|
|
50
|
-
{ search: 'World', val: 'Earth' },
|
|
51
|
-
];
|
|
52
|
-
const result = (0, string_1.replaceAllItems)(text, searched);
|
|
53
|
-
(0, chai_1.expect)(result).to.equal('Hi Earth!');
|
|
54
|
-
});
|
|
55
|
-
it('should return the original text if no matches are found', () => {
|
|
56
|
-
const text = 'Hello World!';
|
|
57
|
-
const searched = ['Test'];
|
|
58
|
-
const result = (0, string_1.replaceAllItems)(text, searched);
|
|
59
|
-
(0, chai_1.expect)(result).to.equal('Hello World!');
|
|
60
|
-
});
|
|
61
|
-
it('should handle an empty array for searched', () => {
|
|
62
|
-
const text = 'Hello World!';
|
|
63
|
-
const searched = [];
|
|
64
|
-
const result = (0, string_1.replaceAllItems)(text, searched);
|
|
65
|
-
(0, chai_1.expect)(result).to.equal('Hello World!');
|
|
66
|
-
});
|
|
67
|
-
it('should handle an empty text', () => {
|
|
68
|
-
const text = '';
|
|
69
|
-
const searched = ['Hello', 'World'];
|
|
70
|
-
const result = (0, string_1.replaceAllItems)(text, searched);
|
|
71
|
-
(0, chai_1.expect)(result).to.equal('');
|
|
72
|
-
});
|
|
73
|
-
it('should handle mixed types in the searched array', () => {
|
|
74
|
-
const text = 'Hello World!';
|
|
75
|
-
const searched = [
|
|
76
|
-
'Hello',
|
|
77
|
-
{ search: 'World', val: 'Earth' },
|
|
78
|
-
];
|
|
79
|
-
const result = (0, string_1.replaceAllItems)(text, searched);
|
|
80
|
-
(0, chai_1.expect)(result).to.equal(' Earth!');
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
describe('removeQuotes', () => {
|
|
84
|
-
it('should remove single quotes from the string', () => {
|
|
85
|
-
const input = "'Hello World'";
|
|
86
|
-
const result = (0, string_1.removeQuotes)(input);
|
|
87
|
-
(0, chai_1.expect)(result).to.equal('Hello World');
|
|
88
|
-
});
|
|
89
|
-
it('should remove double quotes from the string', () => {
|
|
90
|
-
const input = '"Hello World"';
|
|
91
|
-
const result = (0, string_1.removeQuotes)(input);
|
|
92
|
-
(0, chai_1.expect)(result).to.equal('Hello World');
|
|
93
|
-
});
|
|
94
|
-
it('should remove both single and double quotes from the string', () => {
|
|
95
|
-
const input = `"'Hello' "World""`;
|
|
96
|
-
const result = (0, string_1.removeQuotes)(input);
|
|
97
|
-
(0, chai_1.expect)(result).to.equal('Hello World');
|
|
98
|
-
});
|
|
99
|
-
it('should return the same string if no quotes are present', () => {
|
|
100
|
-
const input = 'Hello World';
|
|
101
|
-
const result = (0, string_1.removeQuotes)(input);
|
|
102
|
-
(0, chai_1.expect)(result).to.equal('Hello World');
|
|
103
|
-
});
|
|
104
|
-
it('should handle an empty string', () => {
|
|
105
|
-
const input = '';
|
|
106
|
-
const result = (0, string_1.removeQuotes)(input);
|
|
107
|
-
(0, chai_1.expect)(result).to.equal('');
|
|
108
|
-
});
|
|
109
|
-
it('should handle a string with only quotes', () => {
|
|
110
|
-
const input = `'"'`;
|
|
111
|
-
const result = (0, string_1.removeQuotes)(input);
|
|
112
|
-
(0, chai_1.expect)(result).to.equal('');
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
describe('validateNewLine', () => {
|
|
116
|
-
it('should return a Validated string with newline', () => {
|
|
117
|
-
const result = (0, string_1.cleanUpString)('Das hier ist ein\\n Test');
|
|
118
|
-
(0, chai_1.expect)(result).to.equal('Das hier ist ein\n Test');
|
|
119
|
-
});
|
|
120
|
-
it('should return a validated string newline with empty text', () => {
|
|
121
|
-
const result = (0, string_1.cleanUpString)(undefined);
|
|
122
|
-
(0, chai_1.expect)(result).to.equal('');
|
|
123
|
-
});
|
|
124
|
-
it('should convert \\n into actual line breaks', () => {
|
|
125
|
-
const input = 'Das\\\\\n hier\\\\n ist ein\\\n Test';
|
|
126
|
-
const expected = 'Das\n hier\n ist ein\n Test';
|
|
127
|
-
const result = (0, string_1.cleanUpString)(input);
|
|
128
|
-
(0, chai_1.expect)(result).to.equal(expected);
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
describe('decomposeText', () => {
|
|
132
|
-
it('Decompose text check values', () => {
|
|
133
|
-
const result = (0, string_1.decomposeText)('Das ist ein __Test. Das ist ein Test2', '__', '.');
|
|
134
|
-
(0, chai_1.expect)(result).to.deep.equal({
|
|
135
|
-
startindex: 12,
|
|
136
|
-
endindex: 18,
|
|
137
|
-
substring: '__Test.',
|
|
138
|
-
textExcludeSubstring: 'Das ist ein Das ist ein Test2',
|
|
139
|
-
substringExcludeSearch: 'Test',
|
|
140
|
-
});
|
|
141
|
-
const result2 = (0, string_1.decomposeText)('Das ist ein __Test.', '?', '.');
|
|
142
|
-
(0, chai_1.expect)(result2).to.deep.equal({
|
|
143
|
-
startindex: -1,
|
|
144
|
-
endindex: 18,
|
|
145
|
-
substring: 'Das ist ein __Test.',
|
|
146
|
-
textExcludeSubstring: '',
|
|
147
|
-
substringExcludeSearch: "Das ist ein __Test"
|
|
148
|
-
});
|
|
149
|
-
const result3 = (0, string_1.decomposeText)('Das ist ein __Test.', '?', '-');
|
|
150
|
-
(0, chai_1.expect)(result3).to.deep.equal({
|
|
151
|
-
startindex: -1,
|
|
152
|
-
endindex: -1,
|
|
153
|
-
substring: '',
|
|
154
|
-
textExcludeSubstring: 'Das ist ein __Test.',
|
|
155
|
-
substringExcludeSearch: ""
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
});
|
|
159
|
-
describe('getValueToExchange', () => {
|
|
160
|
-
afterEach(() => {
|
|
161
|
-
adapter.resetMockHistory();
|
|
162
|
-
database.clear();
|
|
163
|
-
});
|
|
164
|
-
it('should successfully exchange the value if the JSON is correct', () => {
|
|
165
|
-
const textToSend = 'change{"true":"an","false":"aus"}';
|
|
166
|
-
const val = 'true';
|
|
167
|
-
const result = (0, string_1.getValueToExchange)(adapter, textToSend, val);
|
|
168
|
-
(0, chai_1.expect)(result).to.deep.equal({
|
|
169
|
-
newValue: 'an',
|
|
170
|
-
textToSend: '',
|
|
171
|
-
error: false,
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
it('should return the original value if the JSON is invalid', () => {
|
|
175
|
-
const textToSend = 'change{"true":"an","false":aus}';
|
|
176
|
-
const val = 'true';
|
|
177
|
-
const result = (0, string_1.getValueToExchange)(adapter, textToSend, val);
|
|
178
|
-
(0, chai_1.expect)(adapter.log.error.calledOnce).to.be.true;
|
|
179
|
-
(0, chai_1.expect)(result).to.deep.equal({
|
|
180
|
-
newValue: val,
|
|
181
|
-
textToSend,
|
|
182
|
-
error: true,
|
|
183
|
-
});
|
|
184
|
-
});
|
|
185
|
-
it("should return the original text if no 'change' is included", () => {
|
|
186
|
-
const textToSend = 'Kein Austausch erforderlich';
|
|
187
|
-
const val = 'true';
|
|
188
|
-
const result = (0, string_1.getValueToExchange)(adapter, textToSend, val);
|
|
189
|
-
(0, chai_1.expect)(result).to.deep.equal({
|
|
190
|
-
newValue: val,
|
|
191
|
-
textToSend,
|
|
192
|
-
error: false,
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
describe('isString', () => {
|
|
197
|
-
it('should return true for string values', () => {
|
|
198
|
-
(0, chai_1.expect)((0, string_1.isString)('hello')).to.be.true;
|
|
199
|
-
(0, chai_1.expect)((0, string_1.isString)('')).to.be.true;
|
|
200
|
-
});
|
|
201
|
-
it('should return false for non-string values', () => {
|
|
202
|
-
(0, chai_1.expect)((0, string_1.isString)(123)).to.be.false;
|
|
203
|
-
(0, chai_1.expect)((0, string_1.isString)(true)).to.be.false;
|
|
204
|
-
(0, chai_1.expect)((0, string_1.isString)(null)).to.be.false;
|
|
205
|
-
(0, chai_1.expect)((0, string_1.isString)(undefined)).to.be.false;
|
|
206
|
-
(0, chai_1.expect)((0, string_1.isString)({})).to.be.false;
|
|
207
|
-
(0, chai_1.expect)((0, string_1.isString)([])).to.be.false;
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
describe('StringReplacer', () => {
|
|
211
|
-
it('should remove all matching strings from the substring', () => {
|
|
212
|
-
const substring = 'Hello World!';
|
|
213
|
-
const valueToReplace = ['Hello', 'World'];
|
|
214
|
-
const result = (0, string_1.stringReplacer)(substring, valueToReplace);
|
|
215
|
-
(0, chai_1.expect)(result).to.equal(' !');
|
|
216
|
-
});
|
|
217
|
-
it('should replace all matching objects in the substring', () => {
|
|
218
|
-
const substring = 'Hello World!';
|
|
219
|
-
const valueToReplace = [
|
|
220
|
-
{ val: 'Hello', newValue: 'Hi' },
|
|
221
|
-
{ val: 'World', newValue: 'Earth' },
|
|
222
|
-
];
|
|
223
|
-
const result = (0, string_1.stringReplacer)(substring, valueToReplace);
|
|
224
|
-
(0, chai_1.expect)(result).to.equal('Hi Earth!');
|
|
225
|
-
});
|
|
226
|
-
it('should return the original substring if no matches are found', () => {
|
|
227
|
-
const substring = 'Hello World!';
|
|
228
|
-
const valueToReplace = ['Test'];
|
|
229
|
-
const result = (0, string_1.stringReplacer)(substring, valueToReplace);
|
|
230
|
-
(0, chai_1.expect)(result).to.equal('Hello World!');
|
|
231
|
-
});
|
|
232
|
-
it('should handle an empty array for valueToReplace', () => {
|
|
233
|
-
const substring = 'Hello World!';
|
|
234
|
-
const valueToReplace = [];
|
|
235
|
-
const result = (0, string_1.stringReplacer)(substring, valueToReplace);
|
|
236
|
-
(0, chai_1.expect)(result).to.equal('Hello World!');
|
|
237
|
-
});
|
|
238
|
-
it('should handle an empty substring', () => {
|
|
239
|
-
const substring = '';
|
|
240
|
-
const valueToReplace = ['Hello', 'World'];
|
|
241
|
-
const result = (0, string_1.stringReplacer)(substring, valueToReplace);
|
|
242
|
-
(0, chai_1.expect)(result).to.equal('');
|
|
243
|
-
});
|
|
244
|
-
});
|
|
245
|
-
describe('pad', () => {
|
|
246
|
-
it('should pad a number with leading zeros to the default length of 2', () => {
|
|
247
|
-
const result = (0, string_1.pad)(5);
|
|
248
|
-
(0, chai_1.expect)(result).to.equal('05');
|
|
249
|
-
});
|
|
250
|
-
it('should pad a number with leading zeros to a specified length', () => {
|
|
251
|
-
const result = (0, string_1.pad)(5, 4);
|
|
252
|
-
(0, chai_1.expect)(result).to.equal('0005');
|
|
253
|
-
});
|
|
254
|
-
it('should not pad a number if it already meets the specified length', () => {
|
|
255
|
-
const result = (0, string_1.pad)(123, 2);
|
|
256
|
-
(0, chai_1.expect)(result).to.equal('123');
|
|
257
|
-
});
|
|
258
|
-
it('should handle zero correctly', () => {
|
|
259
|
-
const result = (0, string_1.pad)(0, 3);
|
|
260
|
-
(0, chai_1.expect)(result).to.equal('000');
|
|
261
|
-
});
|
|
262
|
-
it('should convert negative numbers to strings without additional padding', () => {
|
|
263
|
-
const result = (0, string_1.pad)(-5, 3);
|
|
264
|
-
(0, chai_1.expect)(result).to.equal('-05');
|
|
265
|
-
});
|
|
266
|
-
it('should handle a length of 0 by returning the number as a string', () => {
|
|
267
|
-
const result = (0, string_1.pad)(5, 0);
|
|
268
|
-
(0, chai_1.expect)(result).to.equal('5');
|
|
269
|
-
});
|
|
270
|
-
});
|
|
271
|
-
describe('timeStringReplacer', () => {
|
|
272
|
-
it('should replace all placeholders with the corresponding values', () => {
|
|
273
|
-
const input = {
|
|
274
|
-
d: '01',
|
|
275
|
-
h: '12',
|
|
276
|
-
m: '30',
|
|
277
|
-
ms: '123',
|
|
278
|
-
y: '2023',
|
|
279
|
-
s: '45',
|
|
280
|
-
mo: '07',
|
|
281
|
-
};
|
|
282
|
-
const template = 'YYYY-MM-DD hh:mm:ss.sss';
|
|
283
|
-
const result = (0, appUtils_1.timeStringReplacer)(input, template);
|
|
284
|
-
(0, chai_1.expect)(result).to.equal('2023-07-01 12:30:45.123');
|
|
285
|
-
});
|
|
286
|
-
it('should handle partial placeholders in the string', () => {
|
|
287
|
-
const input = {
|
|
288
|
-
d: '15',
|
|
289
|
-
h: '08',
|
|
290
|
-
m: '05',
|
|
291
|
-
ms: '001',
|
|
292
|
-
y: '2025',
|
|
293
|
-
s: '59',
|
|
294
|
-
mo: '12',
|
|
295
|
-
};
|
|
296
|
-
const template = 'DD/MM/YYYY hh:mm';
|
|
297
|
-
const result = (0, appUtils_1.timeStringReplacer)(input, template);
|
|
298
|
-
(0, chai_1.expect)(result).to.equal('15/12/2025 08:05');
|
|
299
|
-
});
|
|
300
|
-
it('should return the string unchanged if no placeholders are present', () => {
|
|
301
|
-
const input = {
|
|
302
|
-
d: '01',
|
|
303
|
-
h: '12',
|
|
304
|
-
m: '30',
|
|
305
|
-
ms: '123',
|
|
306
|
-
y: '2023',
|
|
307
|
-
s: '45',
|
|
308
|
-
mo: '07',
|
|
309
|
-
};
|
|
310
|
-
const template = 'No placeholders here';
|
|
311
|
-
const result = (0, appUtils_1.timeStringReplacer)(input, template);
|
|
312
|
-
(0, chai_1.expect)(result).to.equal('No placeholders here');
|
|
313
|
-
});
|
|
314
|
-
it('should return undefined if the input string is undefined', () => {
|
|
315
|
-
const input = {
|
|
316
|
-
d: '01',
|
|
317
|
-
h: '12',
|
|
318
|
-
m: '30',
|
|
319
|
-
ms: '123',
|
|
320
|
-
y: '2023',
|
|
321
|
-
s: '45',
|
|
322
|
-
mo: '07',
|
|
323
|
-
};
|
|
324
|
-
const result = (0, appUtils_1.timeStringReplacer)(input, undefined);
|
|
325
|
-
(0, chai_1.expect)(result).to.be.undefined;
|
|
326
|
-
});
|
|
327
|
-
it('should handle parentheses in the string by removing them', () => {
|
|
328
|
-
const input = {
|
|
329
|
-
d: '10',
|
|
330
|
-
h: '14',
|
|
331
|
-
m: '45',
|
|
332
|
-
ms: '678',
|
|
333
|
-
y: '2024',
|
|
334
|
-
s: '30',
|
|
335
|
-
mo: '11',
|
|
336
|
-
};
|
|
337
|
-
const template = '(YYYY-MM-DD)';
|
|
338
|
-
const result = (0, appUtils_1.timeStringReplacer)(input, template);
|
|
339
|
-
(0, chai_1.expect)(result).to.equal('2024-11-10');
|
|
340
|
-
});
|
|
341
|
-
});
|
|
342
|
-
describe('getNewline', () => {
|
|
343
|
-
it('soll "\\n" zurückgeben, wenn die Eingabe truthy ist', () => {
|
|
344
|
-
(0, chai_1.expect)((0, string_1.getNewline)('true')).to.equal('\n');
|
|
345
|
-
(0, chai_1.expect)((0, string_1.getNewline)('false')).to.equal('');
|
|
346
|
-
});
|
|
347
|
-
});
|
|
348
|
-
describe('isBooleanString', () => {
|
|
349
|
-
it('should return true for "true"', () => {
|
|
350
|
-
(0, chai_1.expect)((0, string_1.isBooleanString)('true')).to.be.true;
|
|
351
|
-
});
|
|
352
|
-
it('should return true for "false"', () => {
|
|
353
|
-
(0, chai_1.expect)((0, string_1.isBooleanString)('false')).to.be.true;
|
|
354
|
-
});
|
|
355
|
-
it('should return false for non-boolean strings', () => {
|
|
356
|
-
(0, chai_1.expect)((0, string_1.isBooleanString)('yes')).to.be.false;
|
|
357
|
-
(0, chai_1.expect)((0, string_1.isBooleanString)('no')).to.be.false;
|
|
358
|
-
(0, chai_1.expect)((0, string_1.isBooleanString)('')).to.be.false;
|
|
359
|
-
});
|
|
360
|
-
});
|
|
361
|
-
describe('String Utility Functions', () => {
|
|
362
|
-
describe('isNonEmptyString', () => {
|
|
363
|
-
it('should return true for a non-empty string', () => {
|
|
364
|
-
(0, chai_1.expect)((0, string_1.isNonEmptyString)('hello')).to.be.true;
|
|
365
|
-
});
|
|
366
|
-
it('should return false for an empty string', () => {
|
|
367
|
-
(0, chai_1.expect)((0, string_1.isNonEmptyString)('')).to.be.false;
|
|
368
|
-
});
|
|
369
|
-
it('should return false for a string with only spaces', () => {
|
|
370
|
-
(0, chai_1.expect)((0, string_1.isNonEmptyString)(' ')).to.be.false;
|
|
371
|
-
});
|
|
372
|
-
});
|
|
373
|
-
describe('isEmptyString', () => {
|
|
374
|
-
it('should return true for an empty string', () => {
|
|
375
|
-
(0, chai_1.expect)((0, string_1.isEmptyString)('')).to.be.true;
|
|
376
|
-
});
|
|
377
|
-
it('should return true for a string with only spaces', () => {
|
|
378
|
-
(0, chai_1.expect)((0, string_1.isEmptyString)(' ')).to.be.true;
|
|
379
|
-
});
|
|
380
|
-
it('should return false for a non-empty string', () => {
|
|
381
|
-
(0, chai_1.expect)((0, string_1.isEmptyString)('hello')).to.be.false;
|
|
382
|
-
});
|
|
383
|
-
});
|
|
384
|
-
});
|
|
385
|
-
//# sourceMappingURL=string.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string.test.js","sourceRoot":"","sources":["../../../test/test/string.test.ts"],"names":[],"mappings":"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"}
|