1
- import { binarySearch , isUrl } from '../index' ;
1
+ import { UIKitMessageTypes , binarySearch , getUIKitMessageType , isAdminMessage , isFileMessage , isUrl , isUserMessage } from '../index' ;
2
2
3
3
describe ( 'Global-utils' , ( ) => {
4
4
it ( 'should find right index with binarySearch' , ( ) => {
@@ -18,6 +18,95 @@ describe('Global-utils', () => {
18
18
} ) ;
19
19
} ) ;
20
20
21
+ describe ( 'Global-utils: verify message type util functions' , ( ) => {
22
+ it ( 'should return true for each message' , ( ) => {
23
+ const mockUserMessage = {
24
+ messageId : 0 ,
25
+ isUserMessage : ( ) => true ,
26
+ isFileMessage : ( ) => false ,
27
+ isAdminMessage : ( ) => false ,
28
+ messageType : 'user' ,
29
+ } ;
30
+ expect ( isUserMessage ( mockUserMessage ) ) . toBe ( true ) ;
31
+ expect ( isFileMessage ( mockUserMessage ) ) . toBe ( false ) ;
32
+ expect ( isAdminMessage ( mockUserMessage ) ) . toBe ( false ) ;
33
+ const mockFileMessage = {
34
+ messageId : 1 ,
35
+ isUserMessage : ( ) => false ,
36
+ isFileMessage : ( ) => true ,
37
+ isAdminMessage : ( ) => false ,
38
+ messageType : 'file' ,
39
+ } ;
40
+ expect ( isUserMessage ( mockFileMessage ) ) . toBe ( false ) ;
41
+ expect ( isFileMessage ( mockFileMessage ) ) . toBe ( true ) ;
42
+ expect ( isAdminMessage ( mockFileMessage ) ) . toBe ( false ) ;
43
+ const mockAdminMessage = {
44
+ messageId : 2 ,
45
+ isUserMessage : ( ) => false ,
46
+ isFileMessage : ( ) => false ,
47
+ isAdminMessage : ( ) => true ,
48
+ messageType : 'admin' ,
49
+ } ;
50
+ expect ( isUserMessage ( mockAdminMessage ) ) . toBe ( false ) ;
51
+ expect ( isFileMessage ( mockAdminMessage ) ) . toBe ( false ) ;
52
+ expect ( isAdminMessage ( mockAdminMessage ) ) . toBe ( true ) ;
53
+ } ) ;
54
+
55
+ it ( 'should return true with incomplete properties' , ( ) => {
56
+ expect ( isUserMessage ( { isUserMessage : ( ) => true } ) ) . toBe ( true ) ;
57
+ expect ( isUserMessage ( { messageType : 'user' } ) ) . toBe ( true ) ;
58
+ expect ( isFileMessage ( { isFileMessage : ( ) => true } ) ) . toBe ( true ) ;
59
+ expect ( isFileMessage ( { messageType : 'file' } ) ) . toBe ( true ) ;
60
+ expect ( isAdminMessage ( { isAdminMessage : ( ) => true } ) ) . toBe ( true ) ;
61
+ expect ( isAdminMessage ( { messageType : 'admin' } ) ) . toBe ( true ) ;
62
+ } ) ;
63
+
64
+ it ( 'should refer to the method first rather than messageType' , ( ) => {
65
+ const mockUserMessage = {
66
+ messageId : 0 ,
67
+ isUserMessage : ( ) => true ,
68
+ isFileMessage : ( ) => false ,
69
+ isAdminMessage : ( ) => false ,
70
+ messageType : 'file' ,
71
+ } ;
72
+ expect ( isUserMessage ( mockUserMessage ) ) . toBe ( true ) ;
73
+ expect ( isFileMessage ( mockUserMessage ) ) . toBe ( false ) ;
74
+ expect ( isAdminMessage ( mockUserMessage ) ) . toBe ( false ) ;
75
+ expect ( isUserMessage ( { isUserMessage : ( ) => false , messageType : 'user' } ) ) . toBe ( false ) ;
76
+ const mockFileMessage = {
77
+ messageId : 1 ,
78
+ isUserMessage : ( ) => false ,
79
+ isFileMessage : ( ) => true ,
80
+ isAdminMessage : ( ) => false ,
81
+ messageType : 'admin' ,
82
+ } ;
83
+ expect ( isUserMessage ( mockFileMessage ) ) . toBe ( false ) ;
84
+ expect ( isFileMessage ( mockFileMessage ) ) . toBe ( true ) ;
85
+ expect ( isAdminMessage ( mockFileMessage ) ) . toBe ( false ) ;
86
+ expect ( isFileMessage ( { isFileMessage : ( ) => false , messsageType : 'file' } ) ) . toBe ( false ) ;
87
+ const mockAdminMessage = {
88
+ messageId : 2 ,
89
+ isUserMessage : ( ) => false ,
90
+ isFileMessage : ( ) => false ,
91
+ isAdminMessage : ( ) => true ,
92
+ messageType : 'user' ,
93
+ } ;
94
+ expect ( isUserMessage ( mockAdminMessage ) ) . toBe ( false ) ;
95
+ expect ( isFileMessage ( mockAdminMessage ) ) . toBe ( false ) ;
96
+ expect ( isAdminMessage ( mockAdminMessage ) ) . toBe ( true ) ;
97
+ expect ( isAdminMessage ( { isAdminMessage : ( ) => false , messageType : 'admin' } ) ) . toBe ( false ) ;
98
+ } ) ;
99
+
100
+ it ( 'should verify edge case of MultipleFilesMessage' , ( ) => {
101
+ expect (
102
+ getUIKitMessageType ( {
103
+ isFileMessage : ( ) => false ,
104
+ messageType : 'file' ,
105
+ } )
106
+ ) . toBe ( UIKitMessageTypes . UNKNOWN ) ;
107
+ } )
108
+ } ) ;
109
+
21
110
describe ( 'isURL' , ( ) => {
22
111
it ( 'should return true for valid URLs' , ( ) => {
23
112
const validURLs = [
0 commit comments