@@ -42,8 +42,13 @@ describe('metaMetaWrapper', () => {
42
42
43
43
describe ( 'connect' , ( ) => {
44
44
it ( 'should create a metamask imx provider with a eth signer and imx signer when calling connect' , async ( ) => {
45
- const ethSigner = { } ;
46
- const imxSigner = { } ;
45
+ const ethSigner = {
46
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x123' ) ,
47
+ } ;
48
+ const imxSigner = {
49
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x456' ) ,
50
+ signMessage : jest . fn ( ) . mockResolvedValue ( 'signed-message' ) ,
51
+ } ;
47
52
48
53
const getSignerMock = jest . fn ( ) . mockReturnValue ( ethSigner ) ;
49
54
( connect as jest . Mock ) . mockResolvedValue ( {
@@ -95,40 +100,51 @@ describe('metaMetaWrapper', () => {
95
100
96
101
describe ( 'signMessage' , ( ) => {
97
102
it ( 'should call sign message on imx signer and return a string' , async ( ) => {
98
- const getSignerMock = jest . fn ( ) . mockReturnValue ( { } ) ;
103
+ const ethSigner = {
104
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x123' ) ,
105
+ } ;
106
+ const imxSigner = {
107
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x456' ) ,
108
+ signMessage : jest . fn ( ) . mockResolvedValue ( 'signed-message' ) ,
109
+ } ;
110
+
111
+ const getSignerMock = jest . fn ( ) . mockReturnValue ( ethSigner ) ;
99
112
( connect as jest . Mock ) . mockResolvedValue ( {
100
113
getSigner : getSignerMock ,
101
114
} ) ;
102
- const signMessageMock = jest . fn ( ) . mockReturnValue ( 'Signed message' ) ;
103
- ( buildImxSigner as jest . Mock ) . mockResolvedValue ( {
104
- signMessage : signMessageMock ,
105
- } ) ;
115
+ ( buildImxSigner as jest . Mock ) . mockResolvedValue ( imxSigner ) ;
106
116
107
117
await MetaMaskIMXProvider . connect ( config ) ;
108
118
const signedMessage = await MetaMaskIMXProvider . signMessage (
109
119
'Message to sign' ,
110
120
) ;
111
121
112
- expect ( signMessageMock ) . toBeCalledTimes ( 1 ) ;
113
- expect ( signMessageMock ) . toBeCalledWith ( 'Message to sign' ) ;
114
- expect ( signedMessage ) . toEqual ( 'Signed message' ) ;
122
+ expect ( imxSigner . signMessage ) . toBeCalledTimes ( 1 ) ;
123
+ expect ( imxSigner . signMessage ) . toBeCalledWith ( 'Message to sign' ) ;
124
+ expect ( signedMessage ) . toEqual ( 'signed- message' ) ;
115
125
} ) ;
116
126
117
127
it ( 'should throw provider error when error calling sign message' , async ( ) => {
128
+ const ethSigner = {
129
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x123' ) ,
130
+ } ;
131
+ const imxSigner = {
132
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x456' ) ,
133
+ signMessage : jest . fn ( ) . mockRejectedValue ( new Error ( 'Sign message failed' ) ) ,
134
+ } ;
135
+
136
+ const getSignerMock = jest . fn ( ) . mockReturnValue ( ethSigner ) ;
118
137
( connect as jest . Mock ) . mockResolvedValue ( {
119
- getSigner : jest . fn ( ) . mockReturnValue ( { } ) ,
120
- } ) ;
121
- ( buildImxSigner as jest . Mock ) . mockResolvedValue ( {
122
- signMessage : jest
123
- . fn ( )
124
- . mockRejectedValue ( new Error ( 'Error signing the message' ) ) ,
138
+ getSigner : getSignerMock ,
125
139
} ) ;
140
+ ( buildImxSigner as jest . Mock ) . mockResolvedValue ( imxSigner ) ;
141
+
126
142
await MetaMaskIMXProvider . connect ( config ) ;
127
143
await expect (
128
144
MetaMaskIMXProvider . signMessage ( 'Message to sign' ) ,
129
145
) . rejects . toThrow (
130
146
new ProviderError (
131
- 'Error signing the message' ,
147
+ 'Sign message failed ' ,
132
148
ProviderErrorType . PROVIDER_CONNECTION_ERROR ,
133
149
) ,
134
150
) ;
@@ -137,21 +153,39 @@ describe('metaMetaWrapper', () => {
137
153
138
154
describe ( 'disconnect' , ( ) => {
139
155
it ( 'should call disconnect with the imx signer' , async ( ) => {
156
+ const ethSigner = {
157
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x123' ) ,
158
+ } ;
159
+ const imxSigner = {
160
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x456' ) ,
161
+ signMessage : jest . fn ( ) . mockResolvedValue ( 'signed-message' ) ,
162
+ } ;
163
+
164
+ const getSignerMock = jest . fn ( ) . mockReturnValue ( ethSigner ) ;
140
165
( connect as jest . Mock ) . mockResolvedValue ( {
141
- getSigner : jest . fn ( ) ,
166
+ getSigner : getSignerMock ,
142
167
} ) ;
143
- ( buildImxSigner as jest . Mock ) . mockResolvedValue ( { } ) ;
168
+ ( buildImxSigner as jest . Mock ) . mockResolvedValue ( imxSigner ) ;
144
169
( disconnectImxSigner as jest . Mock ) . mockResolvedValue ( { } ) ;
145
170
await MetaMaskIMXProvider . connect ( config ) ;
146
171
await MetaMaskIMXProvider . disconnect ( ) ;
147
172
expect ( disconnectImxSigner ) . toBeCalledTimes ( 1 ) ;
148
173
} ) ;
149
174
150
175
it ( 'should throw provider error when error calling disconnect' , async ( ) => {
176
+ const ethSigner = {
177
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x123' ) ,
178
+ } ;
179
+ const imxSigner = {
180
+ getAddress : jest . fn ( ) . mockResolvedValue ( '0x456' ) ,
181
+ signMessage : jest . fn ( ) . mockResolvedValue ( 'signed-message' ) ,
182
+ } ;
183
+
184
+ const getSignerMock = jest . fn ( ) . mockReturnValue ( ethSigner ) ;
151
185
( connect as jest . Mock ) . mockResolvedValue ( {
152
- getSigner : jest . fn ( ) . mockReturnValue ( { } ) ,
186
+ getSigner : getSignerMock ,
153
187
} ) ;
154
- ( buildImxSigner as jest . Mock ) . mockResolvedValue ( { } ) ;
188
+ ( buildImxSigner as jest . Mock ) . mockResolvedValue ( imxSigner ) ;
155
189
( disconnectImxSigner as jest . Mock ) . mockRejectedValue (
156
190
new Error ( 'Error disconnecting' ) ,
157
191
) ;
0 commit comments