Commit b02f4b0d authored by Tim Kinnane's avatar Tim Kinnane
Browse files

fix(tests): Make sendFromUser wait for message

Related #10
parent 7c001690
......@@ -36,20 +36,20 @@ FN:218,(anonymous_42)
FN:218,(anonymous_43)
FNF:34
FNH:16
FNDA:33,loggedIn
FNDA:24,getQueryString
FNDA:15,(anonymous_9)
FNDA:63,loggedIn
FNDA:54,getQueryString
FNDA:75,(anonymous_9)
FNDA:8,setAuth
FNDA:45,getHeaders
FNDA:75,getHeaders
FNDA:11,clearHeaders
FNDA:47,success
FNDA:77,success
FNDA:21,post
FNDA:21,(anonymous_16)
FNDA:21,(anonymous_17)
FNDA:0,(anonymous_18)
FNDA:21,get
FNDA:21,(anonymous_21)
FNDA:21,(anonymous_22)
FNDA:51,get
FNDA:51,(anonymous_21)
FNDA:51,(anonymous_22)
FNDA:0,(anonymous_23)
FNDA:20,login
FNDA:21,logout
......@@ -75,30 +75,30 @@ DA:2,1
DA:3,1
DA:17,1
DA:25,1
DA:26,33
DA:26,63
DA:30,1
DA:31,1
DA:37,1
DA:42,1
DA:43,24
DA:44,14
DA:45,15
DA:48,15
DA:43,54
DA:44,44
DA:45,75
DA:48,75
DA:53,1
DA:54,1
DA:57,1
DA:58,8
DA:59,8
DA:63,1
DA:64,45
DA:65,35
DA:64,75
DA:65,65
DA:70,1
DA:72,34
DA:72,64
DA:76,1
DA:77,11
DA:78,11
DA:82,1
DA:83,47
DA:83,77
DA:104,1
DA:110,21
DA:111,21
......@@ -115,19 +115,19 @@ DA:122,21
DA:124,0
DA:125,0
DA:136,1
DA:142,21
DA:143,21
DA:144,21
DA:145,21
DA:146,21
DA:147,21
DA:148,21
DA:149,21
DA:150,21
DA:151,21
DA:142,51
DA:143,51
DA:144,51
DA:145,51
DA:146,51
DA:147,51
DA:148,51
DA:149,51
DA:150,51
DA:151,51
DA:152,0
DA:154,21
DA:155,21
DA:154,51
DA:155,51
DA:157,0
DA:166,1
DA:170,20
......@@ -161,33 +161,33 @@ DA:217,0
DA:218,0
LF:89
LH:77
BRDA:38,0,0,1
BRDA:38,0,1,0
BRDA:38,0,0,0
BRDA:38,0,1,1
BRDA:43,1,0,10
BRDA:43,1,1,14
BRDA:43,2,0,24
BRDA:43,2,1,16
BRDA:43,2,2,16
BRDA:43,1,1,44
BRDA:43,2,0,54
BRDA:43,2,1,46
BRDA:43,2,2,46
BRDA:46,3,0,2
BRDA:46,3,1,13
BRDA:46,3,1,73
BRDA:63,4,0,1
BRDA:64,5,0,10
BRDA:64,5,1,35
BRDA:64,5,1,65
BRDA:65,6,0,1
BRDA:65,6,1,34
BRDA:66,7,0,35
BRDA:66,7,1,34
BRDA:66,7,2,34
BRDA:66,7,3,34
BRDA:92,8,0,45
BRDA:65,6,1,64
BRDA:66,7,0,65
BRDA:66,7,1,64
BRDA:66,7,2,64
BRDA:66,7,3,64
BRDA:92,8,0,75
BRDA:92,8,1,2
BRDA:85,9,0,47
BRDA:85,9,1,47
BRDA:85,9,2,29
BRDA:85,9,3,46
BRDA:85,9,0,77
BRDA:85,9,1,77
BRDA:85,9,2,59
BRDA:85,9,3,76
BRDA:85,9,4,18
BRDA:85,9,5,29
BRDA:85,9,6,27
BRDA:85,9,5,59
BRDA:85,9,6,57
BRDA:85,9,7,2
BRDA:85,9,8,0
BRDA:85,9,9,0
......@@ -200,15 +200,15 @@ BRDA:116,13,0,0
BRDA:116,13,1,21
BRDA:117,14,0,0
BRDA:117,14,1,21
BRDA:139,15,0,1
BRDA:139,15,0,31
BRDA:144,16,0,1
BRDA:144,16,1,20
BRDA:144,17,0,21
BRDA:144,17,1,20
BRDA:144,16,1,50
BRDA:144,17,0,51
BRDA:144,17,1,50
BRDA:149,18,0,0
BRDA:149,18,1,21
BRDA:149,18,1,51
BRDA:150,19,0,0
BRDA:150,19,1,21
BRDA:150,19,1,51
BRDA:166,20,0,6
BRDA:171,21,0,13
BRDA:171,21,1,7
......@@ -218,12 +218,13 @@ BRDA:180,23,0,8
BRDA:180,23,1,0
BRDA:180,24,0,8
BRDA:180,24,1,8
BRDA:180,24,2,8
BRDA:197,25,0,13
BRDA:197,25,1,8
BRDA:213,26,0,0
BRDA:216,27,0,0
BRF:61
BRH:49
BRF:62
BRH:50
end_of_record
TN:
SF:/Volumes/x/code/rocketchat/Rocket.Chat.js.SDK/src/lib/driver.ts
......@@ -606,7 +607,7 @@ FNDA:0,(anonymous_3)
FNDA:0,(anonymous_4)
FNDA:2,replaceLog
FNDA:2,silence
FNDA:214,(anonymous_7)
FNDA:274,(anonymous_7)
FNDA:205,(anonymous_8)
FNDA:0,(anonymous_9)
FNDA:0,(anonymous_10)
......@@ -619,7 +620,7 @@ DA:18,0
DA:22,1
DA:25,2
DA:29,2
DA:30,214
DA:30,274
DA:31,205
DA:32,0
DA:33,0
......@@ -749,13 +750,13 @@ BRDA:3,0,1,9
BRDA:4,1,0,9
BRDA:4,1,1,9
BRDA:8,2,0,9
BRDA:8,2,1,6
BRDA:8,2,1,5
BRDA:10,3,0,2
BRDA:10,3,1,7
BRDA:10,4,0,2
BRDA:10,4,1,0
BRDA:11,5,0,7
BRDA:11,5,1,5
BRDA:11,5,1,4
BRDA:16,6,0,2
BRDA:16,6,1,7
BRDA:16,7,0,2
......
......@@ -177,7 +177,7 @@ export async function login (user: ILoginCredentials = {
}
}
const result = await post('login', user, false)
if (result.data && result.data.authToken) {
if (result && result.data && result.data.authToken) {
currentLogin = {
result: result, // keep to return if login requested again for same user
username: user.username, // keep to compare with following login attempt
......
......@@ -7,7 +7,8 @@ import {
INewUserAPI,
IUserResultAPI,
IRoomResultAPI,
IChannelResultAPI
IChannelResultAPI,
IMessageReceiptAPI
} from './interfaces'
/** Define common attributes for DRY tests */
......@@ -38,12 +39,36 @@ export async function createChannel (
}
/** Send message from mock user to channel for tests to listen and respond */
/** @todo Sometimes the post request completes before the change event emits
* the message to the streamer. That's why the interval is used for proof
* of receipt. It would be better for the endpoint to not resolve until
* server side handling is complete. Would require PR to core.
*/
export async function sendFromUser (payload: any): Promise<IMessageResultAPI> {
const testChannel = await channelInfo(testChannelName)
const messageDefaults: IMessageAPI = { roomId: testChannel.channel._id }
const roomId = testChannel.channel._id
const messageDefaults: IMessageAPI = { roomId }
const data: IMessageAPI = Object.assign({}, messageDefaults, payload)
await login({ username: mockUser.username, password: mockUser.password })
return post('chat.postMessage', data, true)
const oldest = new Date().toISOString()
const result = await post('chat.postMessage', data, true)
const proof = new Promise((resolve, reject) => {
let looked = 0
const look = setInterval(async () => {
const { messages } = await get('channels.history', { roomId, oldest })
const found = messages.some((message: IMessageReceiptAPI) => {
return result.message._id === message._id
})
if (found || looked > 10) {
clearInterval(look)
if (found) resolve()
else reject()
}
looked++
}, 100)
})
await proof
return result
}
/** Update message sent from mock user */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment