@futdevpro/nts-dynamo 1.15.1 → 1.15.3
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/.cursor/rules/__assistant_guide.mdc +30 -0
- package/.cursor/rules/__main.mdc +62 -0
- package/.cursor/rules/_ag_backend-structure.mdc +86 -0
- package/.cursor/rules/_ag_backend.mdc +16 -0
- package/.cursor/rules/_ag_debug.mdc +8 -0
- package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -0
- package/.cursor/rules/_ag_file-refactoring.mdc +113 -0
- package/.cursor/rules/_ag_fixes_rules.mdc +6 -0
- package/.cursor/rules/_ag_frontend-structure.mdc +87 -0
- package/.cursor/rules/_ag_frontend.mdc +40 -0
- package/.cursor/rules/_ag_import-rules.mdc +45 -0
- package/.cursor/rules/_ag_naming.mdc +116 -0
- package/.cursor/rules/_ag_running_commands.mdc +5 -0
- package/.cursor/rules/_ag_server-controller.mdc +6 -0
- package/.cursor/rules/_ag_should-be.mdc +7 -0
- package/.cursor/rules/_ag_swearing.mdc +47 -0
- package/.cursor/rules/ai_development_guide.md +61 -0
- package/.cursor/rules/ai_directives.md +114 -0
- package/.cursor/rules/cursor-rules.md +160 -0
- package/.cursor/rules/default-command.mdc +229 -0
- package/.cursor/rules/error_code_pattern.md +40 -0
- package/.cursor/rules/saved rule mcp server use.md +16 -0
- package/build/_models/control-models/app-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/app-params.control-model.js +6 -1
- package/build/_models/control-models/app-params.control-model.js.map +1 -1
- package/build/_modules/custom-data/custom-data.controller.d.ts.map +1 -1
- package/build/_modules/custom-data/custom-data.controller.js +1 -2
- package/build/_modules/custom-data/custom-data.controller.js.map +1 -1
- package/build/_services/core/api.service.d.ts.map +1 -1
- package/build/_services/core/api.service.js +1 -0
- package/build/_services/core/api.service.js.map +1 -1
- package/build/_services/server/app.server.d.ts.map +1 -1
- package/build/_services/server/app.server.js +11 -0
- package/build/_services/server/app.server.js.map +1 -1
- package/package.json +5 -4
- package/scripts/run-coverage-tests.js +5 -1
- package/spec/support/helpers/spec-reporter-loader.js +359 -0
- package/spec/support/helpers/ts-node-helper.js +84 -0
- package/spec/support/jasmine.coverage.json +2 -1
- package/spec/support/jasmine.json +3 -3
- package/src/_collections/archive.util.spec.ts +36 -0
- package/src/_collections/get-environment-settings.util.spec.ts +210 -0
- package/src/_collections/star.controller.spec.ts +224 -0
- package/src/_models/control-models/api-call-params.control-model.spec.ts +62 -3
- package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -0
- package/src/_models/control-models/app-params.control-model.spec.ts +158 -2
- package/src/_models/control-models/app-params.control-model.ts +8 -2
- package/src/_models/control-models/endpoint-params.control-model.spec.ts +578 -0
- package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -0
- package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -0
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -0
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -0
- package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +240 -0
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -0
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +437 -0
- package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -0
- package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -0
- package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -0
- package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +79 -0
- package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -0
- package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -0
- package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -0
- package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -0
- package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -0
- package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -0
- package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -0
- package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -0
- package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -0
- package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -0
- package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -0
- package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -0
- package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -0
- package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -0
- package/src/_modules/custom-data/custom-data.controller.ts +1 -3
- package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -0
- package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -0
- package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -0
- package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -0
- package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -0
- package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -0
- package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -0
- package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -0
- package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -0
- package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -0
- package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -0
- package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -0
- package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -0
- package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -0
- package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -0
- package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -0
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +345 -0
- package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -0
- package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -0
- package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -0
- package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -0
- package/src/_modules/mock/data-model.mock.spec.ts +27 -24
- package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -0
- package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -0
- package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -0
- package/src/_modules/server/errors/errors.control-service.spec.ts +230 -0
- package/src/_modules/server/errors/errors.controller.spec.ts +165 -0
- package/src/_modules/server/errors/errors.data-service.spec.ts +355 -0
- package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -0
- package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -0
- package/src/_modules/server/server-status/server-status.control-service.spec.ts +516 -0
- package/src/_modules/server/server-status/server-status.controller.spec.ts +156 -0
- package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +6 -3
- package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +164 -0
- package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -0
- package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -0
- package/src/_modules/test/test.controller.spec.ts +72 -0
- package/src/_modules/usage/usage.controller.spec.ts +81 -0
- package/src/_modules/usage/usage.data-service.spec.ts +332 -0
- package/src/_services/base/api.service-base.spec.ts +125 -0
- package/src/_services/base/archive-data.service.spec.ts +196 -0
- package/src/_services/base/data.service.spec.ts +493 -0
- package/src/_services/base/db.service.spec.ts +59 -18
- package/src/_services/base/singleton.service-base.spec.ts +28 -0
- package/src/_services/base/singleton.service.spec.ts +114 -0
- package/src/_services/core/api.service.ts +1 -0
- package/src/_services/core/auth.service.spec.ts +159 -0
- package/src/_services/core/email.service.spec.ts +14 -22
- package/src/_services/core/global.service.spec.ts +275 -0
- package/src/_services/core/service-collection.service.spec.ts +46 -0
- package/src/_services/route/routing-module.service.spec.ts +8 -6
- package/src/_services/server/app.server.ts +12 -0
- package/src/_services/shared.static-service.spec.ts +89 -0
- package/build/_collections/archive.util.spec.d.ts +0 -2
- package/build/_collections/archive.util.spec.d.ts.map +0 -1
- package/build/_collections/archive.util.spec.js +0 -21
- package/build/_collections/archive.util.spec.js.map +0 -1
- package/build/_models/control-models/api-call-params.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/api-call-params.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/api-call-params.control-model.spec.js +0 -80
- package/build/_models/control-models/api-call-params.control-model.spec.js.map +0 -1
- package/build/_models/control-models/app-params.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/app-params.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/app-params.control-model.spec.js +0 -59
- package/build/_models/control-models/app-params.control-model.spec.js.map +0 -1
- package/build/_models/control-models/app-system-controls.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/app-system-controls.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/app-system-controls.control-model.spec.js +0 -26
- package/build/_models/control-models/app-system-controls.control-model.spec.js.map +0 -1
- package/build/_models/control-models/http-settings.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/http-settings.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/http-settings.control-model.spec.js +0 -62
- package/build/_models/control-models/http-settings.control-model.spec.js.map +0 -1
- package/build/_models/control-models/system-control.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/system-control.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/system-control.control-model.spec.js +0 -24
- package/build/_models/control-models/system-control.control-model.spec.js.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts +0 -2
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js +0 -294
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js.map +0 -1
- package/build/_modules/mock/app-params.mock.spec.d.ts +0 -2
- package/build/_modules/mock/app-params.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/app-params.mock.spec.js +0 -19
- package/build/_modules/mock/app-params.mock.spec.js.map +0 -1
- package/build/_modules/mock/auth-service.mock.spec.d.ts +0 -2
- package/build/_modules/mock/auth-service.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/auth-service.mock.spec.js +0 -40
- package/build/_modules/mock/auth-service.mock.spec.js.map +0 -1
- package/build/_modules/mock/controller.mock.spec.d.ts +0 -2
- package/build/_modules/mock/controller.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/controller.mock.spec.js +0 -23
- package/build/_modules/mock/controller.mock.spec.js.map +0 -1
- package/build/_modules/mock/data-model.mock.spec.d.ts +0 -2
- package/build/_modules/mock/data-model.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/data-model.mock.spec.js +0 -98
- package/build/_modules/mock/data-model.mock.spec.js.map +0 -1
- package/build/_modules/mock/email-service-collection.mock.spec.d.ts +0 -2
- package/build/_modules/mock/email-service-collection.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/email-service-collection.mock.spec.js +0 -21
- package/build/_modules/mock/email-service-collection.mock.spec.js.map +0 -1
- package/build/_modules/mock/email-service.mock.spec.d.ts +0 -2
- package/build/_modules/mock/email-service.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/email-service.mock.spec.js +0 -14
- package/build/_modules/mock/email-service.mock.spec.js.map +0 -1
- package/build/_modules/mock/socket-client.mock.spec.d.ts +0 -2
- package/build/_modules/mock/socket-client.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/socket-client.mock.spec.js +0 -32
- package/build/_modules/mock/socket-client.mock.spec.js.map +0 -1
- package/build/_modules/mock/socket-server.mock.spec.d.ts +0 -2
- package/build/_modules/mock/socket-server.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/socket-server.mock.spec.js +0 -36
- package/build/_modules/mock/socket-server.mock.spec.js.map +0 -1
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts +0 -2
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts.map +0 -1
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js +0 -22
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js.map +0 -1
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts +0 -2
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts.map +0 -1
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js +0 -29
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js.map +0 -1
- package/build/_modules/socket/_services/socket-server.service.spec.d.ts +0 -2
- package/build/_modules/socket/_services/socket-server.service.spec.d.ts.map +0 -1
- package/build/_modules/socket/_services/socket-server.service.spec.js +0 -9
- package/build/_modules/socket/_services/socket-server.service.spec.js.map +0 -1
- package/build/_modules/socket/app-extended.server.spec.d.ts +0 -2
- package/build/_modules/socket/app-extended.server.spec.d.ts.map +0 -1
- package/build/_modules/socket/app-extended.server.spec.js +0 -149
- package/build/_modules/socket/app-extended.server.spec.js.map +0 -1
- package/build/_services/base/db.service.spec.d.ts +0 -1
- package/build/_services/base/db.service.spec.d.ts.map +0 -1
- package/build/_services/base/db.service.spec.js +0 -28
- package/build/_services/base/db.service.spec.js.map +0 -1
- package/build/_services/core/api.service.spec.d.ts +0 -2
- package/build/_services/core/api.service.spec.d.ts.map +0 -1
- package/build/_services/core/api.service.spec.js +0 -109
- package/build/_services/core/api.service.spec.js.map +0 -1
- package/build/_services/core/email.service.spec.d.ts +0 -2
- package/build/_services/core/email.service.spec.d.ts.map +0 -1
- package/build/_services/core/email.service.spec.js +0 -77
- package/build/_services/core/email.service.spec.js.map +0 -1
- package/build/_services/route/controller.service.spec.d.ts +0 -2
- package/build/_services/route/controller.service.spec.d.ts.map +0 -1
- package/build/_services/route/controller.service.spec.js +0 -48
- package/build/_services/route/controller.service.spec.js.map +0 -1
- package/build/_services/route/routing-module.service.spec.d.ts +0 -2
- package/build/_services/route/routing-module.service.spec.d.ts.map +0 -1
- package/build/_services/route/routing-module.service.spec.js +0 -64
- package/build/_services/route/routing-module.service.spec.js.map +0 -1
- package/build/_services/server/app.server.spec.d.ts +0 -2
- package/build/_services/server/app.server.spec.d.ts.map +0 -1
- package/build/_services/server/app.server.spec.js +0 -80
- package/build/_services/server/app.server.spec.js.map +0 -1
- package/build/_services/shared.static-service.spec.d.ts +0 -2
- package/build/_services/shared.static-service.spec.d.ts.map +0 -1
- package/build/_services/shared.static-service.spec.js +0 -12
- package/build/_services/shared.static-service.spec.js.map +0 -1
- package/src/_modules/socket/app-extended.server.spec.ts +0 -227
- package/src/_services/server/app.server.spec.ts +0 -138
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
|
|
2
|
+
import { DyNTS_Bot_MessagingProvider_ServiceBase, DyNTS_Bot_MessagingProvider_Config } from './bot-messaging-provider.service-base';
|
|
3
|
+
import { DyFM_Msg_Provider_Type } from '@futdevpro/fsm-dynamo/messaging';
|
|
4
|
+
import { DyNTS_Bot_ChannelWrapper } from '../_models/bot-channel-wrapper.interface';
|
|
5
|
+
import { DyNTS_Bot_MessageWrapper } from '../_models/bot-message-wrapper.interface';
|
|
6
|
+
import { DyNTS_Bot_UserWrapper } from '../_models/bot-user-wrapper.interface';
|
|
7
|
+
|
|
8
|
+
class MockChannel {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
class MockMessage {
|
|
14
|
+
id: string;
|
|
15
|
+
content: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
class MockUser {
|
|
19
|
+
id: string;
|
|
20
|
+
username: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
class MockRole {
|
|
24
|
+
id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
class TestMessagingProvider extends DyNTS_Bot_MessagingProvider_ServiceBase<
|
|
29
|
+
MockChannel,
|
|
30
|
+
MockMessage,
|
|
31
|
+
MockUser,
|
|
32
|
+
DyNTS_Bot_MessagingProvider_Config,
|
|
33
|
+
MockRole
|
|
34
|
+
> {
|
|
35
|
+
readonly name = 'test-provider';
|
|
36
|
+
readonly type = DyFM_Msg_Provider_Type.dynamo;
|
|
37
|
+
readonly config: DyNTS_Bot_MessagingProvider_Config = {
|
|
38
|
+
reportChannelName: 'test-channel',
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
get botId(): string {
|
|
42
|
+
return 'bot-123';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
get botDisplayName(): string {
|
|
46
|
+
return 'Test Bot';
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async setup(issuer: string): Promise<void> {
|
|
50
|
+
// Mock implementation
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async start(issuer: string): Promise<void> {
|
|
54
|
+
// Mock implementation
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async getChannelByName(name: string): Promise<DyNTS_Bot_ChannelWrapper<MockChannel>> {
|
|
58
|
+
const channel = this.channelCache.get(name) || { id: 'channel-1', name };
|
|
59
|
+
return this.wrapChannel(channel);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async getChannelById(id: string): Promise<DyNTS_Bot_ChannelWrapper<MockChannel>> {
|
|
63
|
+
const channel = { id, name: 'test-channel' };
|
|
64
|
+
return this.wrapChannel(channel);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async sendMessageToChannelByName(channelName: string, message: string, issuer: string): Promise<DyNTS_Bot_MessageWrapper<MockMessage>> {
|
|
68
|
+
const channel = await this.getChannelByName(channelName);
|
|
69
|
+
return this.sendMessageToChannel(channel, message, issuer);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
async getMessagesFromChannelByChannelName(channelName: string, limit?: number): Promise<DyNTS_Bot_MessageWrapper<MockMessage>[]> {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async getLastMessageInChannel(channelName: string): Promise<DyNTS_Bot_MessageWrapper<MockMessage>> {
|
|
77
|
+
return this.wrapMessage({ id: 'msg-1', content: 'Last message' });
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
async clearChannel(channelWrapper: DyNTS_Bot_ChannelWrapper<MockChannel>): Promise<void> {
|
|
81
|
+
// Mock implementation
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
async sendMessageToChannel(channelWrapper: DyNTS_Bot_ChannelWrapper<MockChannel>, content: string, issuer: string): Promise<DyNTS_Bot_MessageWrapper<MockMessage>> {
|
|
85
|
+
return this.wrapMessage({ id: 'msg-1', content });
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
async replyToMessage(messageWrapper: DyNTS_Bot_MessageWrapper<MockMessage>, content: string): Promise<DyNTS_Bot_MessageWrapper<MockMessage>> {
|
|
89
|
+
return this.wrapMessage({ id: 'msg-2', content });
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async sendTyping(channelWrapper: DyNTS_Bot_ChannelWrapper<MockChannel>): Promise<void> {
|
|
93
|
+
// Mock implementation
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async sendTypingForMessage(messageWrapper: DyNTS_Bot_MessageWrapper<MockMessage>): Promise<void> {
|
|
97
|
+
// Mock implementation
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
async fetchMessages(channelWrapper: DyNTS_Bot_ChannelWrapper<MockChannel>, limit: number): Promise<DyNTS_Bot_MessageWrapper<MockMessage>[]> {
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
async fetchMessagesById(id: string, limit: number): Promise<DyNTS_Bot_MessageWrapper<MockMessage>[]> {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
async fetchMessagesForMessage(messageWrapper: DyNTS_Bot_MessageWrapper<MockMessage>, limit: number): Promise<DyNTS_Bot_MessageWrapper<MockMessage>[]> {
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
async fetchAllMessagesWithPaging(channelWrapper: DyNTS_Bot_ChannelWrapper<MockChannel>, maxFetch?: number): Promise<DyNTS_Bot_MessageWrapper<MockMessage>[]> {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
async deleteMessage(messageWrapper: DyNTS_Bot_MessageWrapper<MockMessage>): Promise<void> {
|
|
117
|
+
// Mock implementation
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
async updateMessage(message: MockMessage, issuer: string): Promise<void> {
|
|
121
|
+
// Mock implementation
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
async getUserByName(username: string): Promise<DyNTS_Bot_UserWrapper<MockUser>> {
|
|
125
|
+
return this.wrapUser({ id: 'user-1', username });
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
getUserMention(userId: string): string {
|
|
129
|
+
return `<@${userId}>`;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
async readMembersInChannel(channelName: string): Promise<DyNTS_Bot_UserWrapper<MockUser>[]> {
|
|
133
|
+
return [];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
async readMemberNamesInChannel(channelName: string): Promise<string[]> {
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
async getLastMessageSentBy(channelName: string, username: string): Promise<DyNTS_Bot_MessageWrapper<MockMessage>> {
|
|
141
|
+
return this.wrapMessage({ id: 'msg-1', content: 'Last message' });
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
async getLastMentionOf(channelName: string, username: string): Promise<DyNTS_Bot_MessageWrapper<MockMessage>> {
|
|
145
|
+
return this.wrapMessage({ id: 'msg-1', content: 'Last mention' });
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
async readLastMessageDatesByMembers(channelName: string, memberNames: string[]): Promise<any[]> {
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
async readLastMessageWithMemberNamePingInIt(channelName: string, users: DyNTS_Bot_UserWrapper<MockUser>[]): Promise<any[]> {
|
|
153
|
+
return [];
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
getRoleByName?(roleName: string): any {
|
|
157
|
+
return this.roleCache.get(roleName) || { id: 'role-1', name: roleName };
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
async getRolePingByName?(roleName: string): Promise<string> {
|
|
161
|
+
return `<@&role-1>`;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
async getRolePingsByName?(roleNames: string[]): Promise<string> {
|
|
165
|
+
return roleNames.map(name => `<@&role-1>`).join(' ');
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
async create_onMessageEventListener(
|
|
169
|
+
handler: (message: DyNTS_Bot_MessageWrapper<MockMessage>, issuer: string) => Promise<void>
|
|
170
|
+
): Promise<void> {
|
|
171
|
+
// Mock implementation
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
create_onErrorEventListener(handler: (error: any) => void): void {
|
|
175
|
+
// Mock implementation
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
async sendReport(message: string): Promise<DyNTS_Bot_MessageWrapper<MockMessage>> {
|
|
179
|
+
return this.sendMessageToChannelByName(this.config.reportChannelName, message, 'system');
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
async sendReportIn(message: string): Promise<DyNTS_Bot_MessageWrapper<MockMessage>> {
|
|
183
|
+
return this.sendMessageToChannelByName(this.config.reportChannelName, message, 'system');
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
async wrapMessage(message: MockMessage): Promise<DyNTS_Bot_MessageWrapper<MockMessage>> {
|
|
187
|
+
const self = this;
|
|
188
|
+
return {
|
|
189
|
+
id: message.id,
|
|
190
|
+
content: message.content,
|
|
191
|
+
rawPlatformMessage: message,
|
|
192
|
+
channelId: 'channel-1',
|
|
193
|
+
userId: 'user-1',
|
|
194
|
+
username: 'test-user',
|
|
195
|
+
timestamp: new Date(),
|
|
196
|
+
getChannel: async () => self.getChannelById('channel-1'),
|
|
197
|
+
getUser: async () => self.getUserByName('test-user'),
|
|
198
|
+
reply: async (content: string) => self.replyToMessage(await self.wrapMessage(message), content),
|
|
199
|
+
delete: async () => self.deleteMessage(await self.wrapMessage(message)),
|
|
200
|
+
} as any;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
async wrapChannel(channel: MockChannel): Promise<DyNTS_Bot_ChannelWrapper<MockChannel>> {
|
|
204
|
+
const self = this;
|
|
205
|
+
return {
|
|
206
|
+
id: channel.id,
|
|
207
|
+
name: channel.name,
|
|
208
|
+
rawPlatformChannel: channel,
|
|
209
|
+
sendMessage: async (content: string, issuer: string) =>
|
|
210
|
+
self.sendMessageToChannel(await self.wrapChannel(channel), content, issuer),
|
|
211
|
+
getMessages: async (limit: number) => self.fetchMessages(await self.wrapChannel(channel), limit),
|
|
212
|
+
clear: async () => self.clearChannel(await self.wrapChannel(channel)),
|
|
213
|
+
} as any;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
async wrapUser(user: MockUser): Promise<DyNTS_Bot_UserWrapper<MockUser>> {
|
|
217
|
+
return {
|
|
218
|
+
id: user.id,
|
|
219
|
+
username: user.username,
|
|
220
|
+
rawPlatformUser: user,
|
|
221
|
+
mention: this.getUserMention(user.id),
|
|
222
|
+
} as any;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
static getInstance(): TestMessagingProvider {
|
|
226
|
+
return TestMessagingProvider.getSingletonInstance();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
xdescribe('| DyNTS_Bot_MessagingProvider_ServiceBase', () => {
|
|
231
|
+
let provider: TestMessagingProvider;
|
|
232
|
+
|
|
233
|
+
beforeEach(() => {
|
|
234
|
+
provider = TestMessagingProvider.getInstance();
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
it('| should be a singleton instance', () => {
|
|
238
|
+
const instance1 = TestMessagingProvider.getInstance();
|
|
239
|
+
const instance2 = TestMessagingProvider.getInstance();
|
|
240
|
+
|
|
241
|
+
expect(instance1).toBe(instance2);
|
|
242
|
+
expect(instance1).toBeInstanceOf(TestMessagingProvider);
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
describe('| properties', () => {
|
|
246
|
+
it('| should have name property', () => {
|
|
247
|
+
expect(provider.name).toBe('test-provider');
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
it('| should have type property', () => {
|
|
251
|
+
expect(provider.type).toBe(DyFM_Msg_Provider_Type.dynamo);
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
it('| should have botId getter', () => {
|
|
255
|
+
expect(provider.botId).toBe('bot-123');
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
it('| should have botDisplayName getter', () => {
|
|
259
|
+
expect(provider.botDisplayName).toBe('Test Bot');
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
it('| should have config property', () => {
|
|
263
|
+
expect(provider.config).toBeDefined();
|
|
264
|
+
expect(provider.config.reportChannelName).toBe('test-channel');
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
describe('| channelCache', () => {
|
|
269
|
+
it('| should cache channels', () => {
|
|
270
|
+
const channel: MockChannel = { id: 'channel-1', name: 'test-channel' };
|
|
271
|
+
(provider as any).channelCache.set('test-channel', channel);
|
|
272
|
+
|
|
273
|
+
expect((provider as any).channelCache.get('test-channel')).toBe(channel);
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
describe('| roleCache', () => {
|
|
278
|
+
it('| should cache roles', () => {
|
|
279
|
+
const role: MockRole = { id: 'role-1', name: 'test-role' };
|
|
280
|
+
(provider as any).roleCache.set('test-role', role);
|
|
281
|
+
|
|
282
|
+
expect((provider as any).roleCache.get('test-role')).toBe(role);
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
describe('| wrapMessage', () => {
|
|
287
|
+
it('| should wrap message correctly', async () => {
|
|
288
|
+
const message: MockMessage = { id: 'msg-1', content: 'Test message' };
|
|
289
|
+
const wrapped = await provider.wrapMessage(message);
|
|
290
|
+
|
|
291
|
+
expect(wrapped.id).toBe('msg-1');
|
|
292
|
+
expect(wrapped.content).toBe('Test message');
|
|
293
|
+
expect(wrapped.rawPlatformMessage).toBe(message);
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
describe('| wrapChannel', () => {
|
|
298
|
+
it('| should wrap channel correctly', async () => {
|
|
299
|
+
const channel: MockChannel = { id: 'channel-1', name: 'test-channel' };
|
|
300
|
+
const wrapped = await provider.wrapChannel(channel);
|
|
301
|
+
|
|
302
|
+
expect(wrapped.id).toBe('channel-1');
|
|
303
|
+
expect(wrapped.name).toBe('test-channel');
|
|
304
|
+
expect(wrapped.rawPlatformChannel).toBe(channel);
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
describe('| wrapUser', () => {
|
|
309
|
+
it('| should wrap user correctly', async () => {
|
|
310
|
+
const user: MockUser = { id: 'user-1', username: 'test-user' };
|
|
311
|
+
const wrapped = await provider.wrapUser(user);
|
|
312
|
+
|
|
313
|
+
expect(wrapped.id).toBe('user-1');
|
|
314
|
+
expect(wrapped.username).toBe('test-user');
|
|
315
|
+
expect(wrapped.rawPlatformUser).toBe(user);
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
|
|
319
|
+
describe('| getUserMention', () => {
|
|
320
|
+
it('| should return user mention', () => {
|
|
321
|
+
const mention = provider.getUserMention('user-123');
|
|
322
|
+
|
|
323
|
+
expect(mention).toBe('<@user-123>');
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
|
|
327
|
+
describe('| sendReport', () => {
|
|
328
|
+
it('| should send report to report channel', async () => {
|
|
329
|
+
spyOn(provider, 'sendMessageToChannelByName').and.returnValue(provider.wrapMessage({ id: 'msg-1', content: 'Report' }));
|
|
330
|
+
|
|
331
|
+
const result = await provider.sendReport('Test report');
|
|
332
|
+
|
|
333
|
+
expect(provider.sendMessageToChannelByName).toHaveBeenCalledWith('test-channel', 'Test report', 'system');
|
|
334
|
+
expect(result).toBeDefined();
|
|
335
|
+
});
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
describe('| sendReportIn', () => {
|
|
339
|
+
it('| should send report in report channel', async () => {
|
|
340
|
+
spyOn(provider, 'sendMessageToChannelByName').and.returnValue(provider.wrapMessage({ id: 'msg-1', content: 'Report' }));
|
|
341
|
+
|
|
342
|
+
const result = await provider.sendReportIn('Test report');
|
|
343
|
+
|
|
344
|
+
expect(provider.sendMessageToChannelByName).toHaveBeenCalledWith('test-channel', 'Test report', 'system');
|
|
345
|
+
expect(result).toBeDefined();
|
|
346
|
+
});
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
|
|
2
|
+
import { DyNTS_Bot_Routines_ControlService } from './bot-routines.control-service';
|
|
3
|
+
import { DyNTS_Bot_Main_ControlService } from './bot-main.control-service';
|
|
4
|
+
import { DyNTS_Bot_MessagingProvider_ServiceBase } from './bot-messaging-provider.service-base';
|
|
5
|
+
import { DyFM_Error } from '@futdevpro/fsm-dynamo';
|
|
6
|
+
import { DyNTS_global_settings } from '../../../_collections/global-settings.const';
|
|
7
|
+
|
|
8
|
+
class TestBotRoutinesService extends DyNTS_Bot_Routines_ControlService {
|
|
9
|
+
protected declare mainBot_CS: any;
|
|
10
|
+
protected getMainBotControlService(): DyNTS_Bot_Main_ControlService {
|
|
11
|
+
return {
|
|
12
|
+
defaultProvider: {
|
|
13
|
+
botId: 'bot-123',
|
|
14
|
+
},
|
|
15
|
+
} as any;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
startRoutines = async (issuer: string): Promise<void> => {
|
|
19
|
+
// Mock implementation
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
static getInstance(): TestBotRoutinesService {
|
|
23
|
+
return TestBotRoutinesService.getSingletonInstance();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
xdescribe('| DyNTS_Bot_Routines_ControlService', () => {
|
|
28
|
+
let service: TestBotRoutinesService;
|
|
29
|
+
|
|
30
|
+
beforeEach(() => {
|
|
31
|
+
service = TestBotRoutinesService.getInstance();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('| should be a singleton instance', () => {
|
|
35
|
+
const instance1 = TestBotRoutinesService.getInstance();
|
|
36
|
+
const instance2 = TestBotRoutinesService.getInstance();
|
|
37
|
+
|
|
38
|
+
expect(instance1).toBe(instance2);
|
|
39
|
+
expect(instance1).toBeInstanceOf(TestBotRoutinesService);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
describe('| defaultProvider', () => {
|
|
43
|
+
it('| should return default provider from main bot service', () => {
|
|
44
|
+
(service as any).mainBot_CS = (service as any).getMainBotControlService();
|
|
45
|
+
|
|
46
|
+
expect(service.defaultProvider).toBeDefined();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
describe('| routinesStarted', () => {
|
|
51
|
+
it('| should return undefined initially', () => {
|
|
52
|
+
// Reset the private _routinesStarted field to undefined for clean test
|
|
53
|
+
(service as any)._routinesStarted = undefined;
|
|
54
|
+
expect(service.routinesStarted).toBeFalsy();
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('| should return true after start', async () => {
|
|
58
|
+
(service as any).mainBot_CS = (service as any).getMainBotControlService();
|
|
59
|
+
await service.start('issuer-123');
|
|
60
|
+
|
|
61
|
+
expect(service.routinesStarted).toBe(true);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
describe('| setup', () => {
|
|
66
|
+
it('| should setup main bot service', async () => {
|
|
67
|
+
await service.setup('issuer-123');
|
|
68
|
+
|
|
69
|
+
expect((service as any).mainBot_CS).toBeDefined();
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('| should throw error when main bot service not found', async () => {
|
|
73
|
+
const serviceWithoutMainBot = new (class extends TestBotRoutinesService {
|
|
74
|
+
protected override getMainBotControlService(): any {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
} as any)();
|
|
78
|
+
|
|
79
|
+
await expectAsync(
|
|
80
|
+
serviceWithoutMainBot.setup('issuer-123')
|
|
81
|
+
).toBeRejected();
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
describe('| start', () => {
|
|
86
|
+
it('| should throw error when default provider not started', async () => {
|
|
87
|
+
const serviceWithoutProvider = new (class extends TestBotRoutinesService {
|
|
88
|
+
protected override getMainBotControlService(): any {
|
|
89
|
+
return {
|
|
90
|
+
defaultProvider: null,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
} as any)();
|
|
94
|
+
|
|
95
|
+
await expectAsync(
|
|
96
|
+
serviceWithoutProvider.start('issuer-123')
|
|
97
|
+
).toBeRejected();
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it('| should start routines and set routinesStarted flag', async () => {
|
|
101
|
+
(service as any).mainBot_CS = (service as any).getMainBotControlService();
|
|
102
|
+
spyOn(service, 'startRoutines').and.returnValue(Promise.resolve());
|
|
103
|
+
|
|
104
|
+
await service.start('issuer-123');
|
|
105
|
+
|
|
106
|
+
expect(service.startRoutines).toHaveBeenCalledWith('issuer-123');
|
|
107
|
+
expect(service.routinesStarted).toBe(true);
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
|
|
2
|
+
import { DyNTS_CustomData_Controller } from './custom-data.controller';
|
|
3
|
+
import { DyFM_HttpCallType } from '@futdevpro/fsm-dynamo';
|
|
4
|
+
|
|
5
|
+
describe('| DyNTS_CustomData_Controller', () => {
|
|
6
|
+
let controller: DyNTS_CustomData_Controller;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
controller = DyNTS_CustomData_Controller.getInstance();
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('| should be a singleton instance', () => {
|
|
13
|
+
const instance1 = DyNTS_CustomData_Controller.getInstance();
|
|
14
|
+
const instance2 = DyNTS_CustomData_Controller.getInstance();
|
|
15
|
+
|
|
16
|
+
expect(instance1).toBe(instance2);
|
|
17
|
+
expect(instance1).toBeInstanceOf(DyNTS_CustomData_Controller);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('| should setup endpoints', () => {
|
|
21
|
+
controller.setupEndpoints();
|
|
22
|
+
|
|
23
|
+
expect(controller.endpoints).toBeDefined();
|
|
24
|
+
expect(controller.endpoints.length).toBeGreaterThan(0);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('| should have getCustomData endpoint', () => {
|
|
28
|
+
controller.setupEndpoints();
|
|
29
|
+
|
|
30
|
+
const getCustomDataEndpoint = controller.endpoints.find(ep => ep.name === 'getCustomData');
|
|
31
|
+
|
|
32
|
+
expect(getCustomDataEndpoint).toBeDefined();
|
|
33
|
+
expect(getCustomDataEndpoint?.type).toBe(DyFM_HttpCallType.get);
|
|
34
|
+
expect((getCustomDataEndpoint as any)?.tasks).toBeDefined();
|
|
35
|
+
expect((getCustomDataEndpoint as any)?.tasks.length).toBeGreaterThan(0);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('| should have modifyCustomData endpoint', () => {
|
|
39
|
+
controller.setupEndpoints();
|
|
40
|
+
|
|
41
|
+
const modifyCustomDataEndpoint = controller.endpoints.find(ep => ep.name === 'modifyCustomData');
|
|
42
|
+
|
|
43
|
+
expect(modifyCustomDataEndpoint).toBeDefined();
|
|
44
|
+
expect(modifyCustomDataEndpoint?.type).toBe(DyFM_HttpCallType.post);
|
|
45
|
+
expect((modifyCustomDataEndpoint as any)?.tasks).toBeDefined();
|
|
46
|
+
expect((modifyCustomDataEndpoint as any)?.tasks.length).toBeGreaterThan(0);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
@@ -49,12 +49,10 @@ export class DyNTS_CustomData_Controller extends DyNTS_Controller {
|
|
|
49
49
|
async (req: Request, res: Response, issuer: string): Promise<void> => {
|
|
50
50
|
const customDataService = new DyNTS_CustomData_DataService(req.body, issuer);
|
|
51
51
|
|
|
52
|
-
await customDataService.saveData();
|
|
53
|
-
|
|
54
52
|
res.send({
|
|
55
53
|
url: req.url,
|
|
56
54
|
result: 'post custom call was successful!',
|
|
57
|
-
response: customDataService.
|
|
55
|
+
response: await customDataService.saveData(req.body),
|
|
58
56
|
warning:
|
|
59
57
|
'keep in mind that this is a playground DB, ' +
|
|
60
58
|
'and it will be cleared out from time to time',
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
import { DyNTS_CustomData_DataService } from './custom-data.data-service';
|
|
3
|
+
import { DyFM_CustomData } from '@futdevpro/fsm-dynamo/custom-data';
|
|
4
|
+
import { DyNTS_global_settings } from '../../_collections/global-settings.const';
|
|
5
|
+
import { DyFM_EnvironmentFlag } from '@futdevpro/fsm-dynamo';
|
|
6
|
+
import { DyNTS_GlobalService } from '../../_services/core/global.service';
|
|
7
|
+
|
|
8
|
+
describe('| DyNTS_CustomData_DataService', () => {
|
|
9
|
+
let mockDBService: jasmine.SpyObj<{ find: () => Promise<unknown[]>; findOne: () => Promise<unknown> }>;
|
|
10
|
+
|
|
11
|
+
beforeAll(() => {
|
|
12
|
+
if (!DyNTS_global_settings.systemShortCodeName) {
|
|
13
|
+
(DyNTS_global_settings as { systemShortCodeName?: string }).systemShortCodeName = 'TEST';
|
|
14
|
+
}
|
|
15
|
+
if (!DyNTS_global_settings.env_settings) {
|
|
16
|
+
(DyNTS_global_settings as { env_settings?: unknown }).env_settings = {
|
|
17
|
+
environment: DyFM_EnvironmentFlag.local,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
mockDBService = jasmine.createSpyObj('DyNTS_DBService', ['find', 'findOne', 'getDataById', 'getAll', 'createData', 'modifyData']);
|
|
24
|
+
mockDBService.find.and.returnValue(Promise.resolve([]));
|
|
25
|
+
mockDBService.findOne.and.returnValue(Promise.resolve(null));
|
|
26
|
+
spyOn(DyNTS_GlobalService, 'getDBService').and.returnValue(mockDBService as never);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('| should create service with custom data', () => {
|
|
30
|
+
const customData = new DyFM_CustomData({
|
|
31
|
+
_id: 'test-data-id',
|
|
32
|
+
} as any);
|
|
33
|
+
|
|
34
|
+
const service = new DyNTS_CustomData_DataService(customData, 'issuer-123');
|
|
35
|
+
|
|
36
|
+
expect(service).toBeInstanceOf(DyNTS_CustomData_DataService);
|
|
37
|
+
expect(service.data).toBeDefined();
|
|
38
|
+
expect(service.data._id).toBe('test-data-id');
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('| should create service without custom data', () => {
|
|
42
|
+
const service = new DyNTS_CustomData_DataService();
|
|
43
|
+
|
|
44
|
+
expect(service).toBeInstanceOf(DyNTS_CustomData_DataService);
|
|
45
|
+
expect(service.data).toBeDefined();
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('| should create service with issuer', () => {
|
|
49
|
+
const service = new DyNTS_CustomData_DataService(undefined, 'issuer-123');
|
|
50
|
+
|
|
51
|
+
expect(service).toBeInstanceOf(DyNTS_CustomData_DataService);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
import { DyNTS_getCustomDataRoutingModule } from './get-custom-data-routing-module.util';
|
|
3
|
+
import { DyNTS_RouteSecurity } from '../../_enums/route-security.enum';
|
|
4
|
+
import { DyNTS_RoutingModule } from '../../_services/route/routing-module.service';
|
|
5
|
+
|
|
6
|
+
describe('| DyNTS_getCustomDataRoutingModule', () => {
|
|
7
|
+
it('| should create routing module with default settings', () => {
|
|
8
|
+
const module = DyNTS_getCustomDataRoutingModule();
|
|
9
|
+
|
|
10
|
+
expect(module).toBeInstanceOf(DyNTS_RoutingModule);
|
|
11
|
+
expect(module).toBeTruthy();
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('| should create routing module with security override', () => {
|
|
15
|
+
const module = DyNTS_getCustomDataRoutingModule(DyNTS_RouteSecurity.secure);
|
|
16
|
+
|
|
17
|
+
expect(module).toBeInstanceOf(DyNTS_RoutingModule);
|
|
18
|
+
expect(module).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('| should create routing module with both security', () => {
|
|
22
|
+
const module = DyNTS_getCustomDataRoutingModule(DyNTS_RouteSecurity.both);
|
|
23
|
+
|
|
24
|
+
expect(module).toBeInstanceOf(DyNTS_RoutingModule);
|
|
25
|
+
expect(module).toBeTruthy();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
|