Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.Veneno.
wechaty
提交
583e3257
W
wechaty
项目概览
.Veneno.
/
wechaty
与 Fork 源项目一致
Fork自
wechaty / wechaty
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
wechaty
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
583e3257
编写于
6月 13, 2018
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix unit tests
上级
3700ff25
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
33 addition
and
32 deletion
+33
-32
src/puppet-padchat/padchat-manager.spec.ts
src/puppet-padchat/padchat-manager.spec.ts
+15
-12
src/puppet-padchat/padchat-manager.ts
src/puppet-padchat/padchat-manager.ts
+1
-1
src/puppet-padchat/pure-function-helpers/is-type.spec.ts
src/puppet-padchat/pure-function-helpers/is-type.spec.ts
+9
-12
src/puppet-puppeteer/puppeteer-room.spec.ts
src/puppet-puppeteer/puppeteer-room.spec.ts
+7
-6
src/puppet/puppet.ts
src/puppet/puppet.ts
+1
-1
未找到文件。
src/puppet-padchat/padchat-manager.spec.ts
浏览文件 @
583e3257
...
...
@@ -28,34 +28,37 @@ test('smoke testing', async t => {
t
.
skip
(
'
tbw
'
)
})
test
(
'
bridge
cache should be release and can be re-init again.
'
,
async
t
=>
{
const
bridge
=
new
PadchatManagerTest
({
test
(
'
PadchatManager()
cache should be release and can be re-init again.
'
,
async
t
=>
{
const
manager
=
new
PadchatManagerTest
({
memory
:
new
MemoryCard
(),
token
:
'
mock token
'
,
endpoint
:
WECHATY_PUPPET_PADCHAT_ENDPOINT
,
})
try
{
await
bridge
.
initCache
(
'
fake-token
'
,
'
fake-self-id
'
)
await
bridge
.
releaseCache
()
await
bridge
.
initCache
(
'
fake-token
'
,
'
fake-self-id
'
)
t
.
pass
(
'
bridge cache init/release/init successed.
'
)
await
manager
.
initCache
(
'
fake-token
'
,
'
fake-self-id
'
)
await
manager
.
releaseCache
()
await
manager
.
initCache
(
'
fake-token
'
,
'
fake-self-id
'
)
await
manager
.
releaseCache
()
t
.
pass
(
'
PadchatManager() cache init/release/init successed.
'
)
}
catch
(
e
)
{
t
.
fail
(
e
)
}
})
test
(
'
bridge
should can be restart() after a start()
'
,
async
t
=>
{
const
bridge
=
new
PadchatManager
({
test
.
only
(
'
PadchatManager()
should can be restart() after a start()
'
,
async
t
=>
{
const
manager
=
new
PadchatManager
({
memory
:
new
MemoryCard
(),
token
:
'
mock token
'
,
endpoint
:
WECHATY_PUPPET_PADCHAT_ENDPOINT
,
})
try
{
await
bridge
.
start
()
await
bridge
.
stop
()
await
bridge
.
start
()
t
.
pass
(
'
bridge start/restart successed.
'
)
await
manager
.
start
()
await
manager
.
stop
()
await
manager
.
start
()
await
manager
.
stop
()
t
.
pass
(
'
PadchatManager() start/restart successed.
'
)
}
catch
(
e
)
{
console
.
error
(
e
)
t
.
fail
(
e
)
}
})
src/puppet-padchat/padchat-manager.ts
浏览文件 @
583e3257
...
...
@@ -222,7 +222,7 @@ export class PadchatManager extends PadchatRpc {
if
(
this
.
delayQueueExecutorSubscription
)
{
this
.
delayQueueExecutorSubscription
.
unsubscribe
()
this
.
delayQueueExecutor
.
unsubscribe
()
this
.
delayQueueExecutor
Subscription
=
undefined
}
else
{
log
.
warn
(
'
PuppetPadchatManager
'
,
'
stop() subscript not exist
'
)
}
...
...
src/puppet-padchat/pure-function-helpers/is-type.spec.ts
浏览文件 @
583e3257
...
...
@@ -18,30 +18,27 @@ test('isRoomId()', async t => {
const
ROOM_ID
=
'
xxx@chatroom
'
const
NOT_ROOM_ID
=
'
xxxxxxx
'
t
.
ok
(
isRoomId
(
ROOM_ID
),
'
should return true for ROOM_ID
'
)
t
.
notOk
(
isRoomId
(
NOT_ROOM_ID
),
'
should return false for ROOM_ID
'
)
t
.
throws
(()
=>
isRoomId
(
undefined
),
'
should throw exception for undifined
'
)
t
.
doesNotThrow
(()
=>
isRoomId
(
'
test
'
),
'
should not throw for string
'
)
t
.
equal
(
isRoomId
(
ROOM_ID
)
,
true
,
'
should return true for ROOM_ID
'
)
t
.
equal
(
isRoomId
(
NOT_ROOM_ID
)
,
false
,
'
should return false for ROOM_ID
'
)
t
.
equal
(
isRoomId
(
undefined
)
,
false
,
'
should return false for undifined
'
)
})
test
(
'
isContactId()
'
,
async
t
=>
{
const
CONTACT_ID
=
'
sxxfdsa
'
const
NOT_CONTACT_ID
=
'
fdsafasd@chatroom
'
t
.
ok
(
isContactId
(
CONTACT_ID
),
'
should return true for CONTACT_ID
'
)
t
.
notOk
(
isContactId
(
NOT_CONTACT_ID
),
'
should return false for CONTACT_ID
'
)
t
.
throws
(()
=>
isContactId
(
undefined
),
'
should throw exception for undifined
'
)
t
.
doesNotThrow
(()
=>
isContactId
(
'
test
'
),
'
should not throw for string
'
)
t
.
equal
(
isContactId
(
CONTACT_ID
)
,
true
,
'
should return true for CONTACT_ID
'
)
t
.
equal
(
isContactId
(
NOT_CONTACT_ID
)
,
false
,
'
should return false for CONTACT_ID
'
)
t
.
equal
(
isContactId
(
undefined
)
,
false
,
'
should return false for undifined
'
)
})
test
(
'
isContactOfficialId()
'
,
async
t
=>
{
const
OFFICIAL_CONTACT_ID
=
'
gh_sxxfdsa
'
const
NOT_OFFICIAL_CONTACT_ID
=
'
fdsafasd@chatroom
'
t
.
ok
(
isContactOfficialId
(
OFFICIAL_CONTACT_ID
),
'
should return true for OFFICIAL_CONTACT_ID
'
)
t
.
notOk
(
isContactOfficialId
(
NOT_OFFICIAL_CONTACT_ID
),
'
should return false for NOT_OFFICIAL_CONTACT_ID
'
)
t
.
throws
(()
=>
isContactOfficialId
(
undefined
),
'
should throw exception for undifined
'
)
t
.
doesNotThrow
(()
=>
isContactOfficialId
(
'
test
'
),
'
should not throw for string
'
)
t
.
equal
(
isContactOfficialId
(
OFFICIAL_CONTACT_ID
)
,
true
,
'
should return true for OFFICIAL_CONTACT_ID
'
)
t
.
equal
(
isContactOfficialId
(
NOT_OFFICIAL_CONTACT_ID
),
false
,
'
should return false for NOT_OFFICIAL_CONTACT_ID
'
)
t
.
equal
(
isContactOfficialId
(
undefined
)
,
false
,
'
should return false for undifined
'
)
})
test
(
'
isStrangerV1()
'
,
async
t
=>
{
...
...
src/puppet-puppeteer/puppeteer-room.spec.ts
浏览文件 @
583e3257
...
...
@@ -48,6 +48,10 @@ class WechatyTest extends Wechaty {
}
}
class
PuppetPuppeteerTest
extends
PuppetPuppeteer
{
public
id
?:
string
=
undefined
}
// tslint:disable:max-line-length
const
ROOM_RAW_PAYLOAD
:
WebRoomRawPayload
=
JSON
.
parse
(
`{"RemarkPYQuanPin":"","RemarkPYInitial":"","PYInitial":"TZZGQNTSHGFJ","PYQuanPin":"tongzhizhongguoqingniantianshihuiguanfangjia","Uin":0,"UserName":"@@e2355db381dc46a77c0b95516d05e7486135cb6370d8a6af66925d89d50ec278","NickName":"(通知)中国青年天使会官方家","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgetheadimg?seq=670397504&username=@@e2355db381dc46a77c0b95516d05e7486135cb6370d8a6af66925d89d50ec278&skey=","ContactFlag":2,"MemberCount":146,"MemberList":[{"Uin":0,"UserName":"@ecff4a7a86f23455dc42317269aa36ab","NickName":"童玮亮","AttrStatus":103423,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"","KeyWord":"dap","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@ecff4a7a86f23455dc42317269aa36ab&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"},{"Uin":0,"UserName":"@eac4377ecfd59e4321262f892177169f","NickName":"麦刚","AttrStatus":33674247,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"","KeyWord":"mai","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@eac4377ecfd59e4321262f892177169f&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"},{"Uin":0,"UserName":"@ad85207730aa94e006ddce28f74e6878","NickName":"田美坤Maggie","AttrStatus":112679,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"田美坤","KeyWord":"tia","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@ad85207730aa94e006ddce28f74e6878&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"},{"Uin":2351423900,"UserName":"@33cc239d22b20d56395bbbd0967b28b9","NickName":"周宏光","AttrStatus":327869,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"周宏光","KeyWord":"acc","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@33cc239d22b20d56395bbbd0967b28b9&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"},{"Uin":0,"UserName":"@5e77381e1e3b5641ddcee44670b6e83a","NickName":"牛文文","AttrStatus":100349,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"","KeyWord":"niu","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@5e77381e1e3b5641ddcee44670b6e83a&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"},{"Uin":0,"UserName":"@56941ef97f3e9c70af88667fdd613b44","NickName":"羊东 东方红酒窖","AttrStatus":33675367,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"","KeyWord":"Yan","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@56941ef97f3e9c70af88667fdd613b44&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"},{"Uin":0,"UserName":"@72c4767ce32db488871fdd1c27173b81","NickName":"李竹~英诺天使(此号已满)","AttrStatus":235261,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"","KeyWord":"liz","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@72c4767ce32db488871fdd1c27173b81&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"},{"Uin":0,"UserName":"@0b0e2eb9501ab2d84f9f800f6a0b4216","NickName":"周静彤 杨宁助理","AttrStatus":230885,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"","KeyWord":"zlo","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@0b0e2eb9501ab2d84f9f800f6a0b4216&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"},{"Uin":0,"UserName":"@4bfa767be0cd3fb78409b9735d1dcc57","NickName":"周哲 Jeremy","AttrStatus":33791995,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"","KeyWord":"zho","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@4bfa767be0cd3fb78409b9735d1dcc57&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"},{"Uin":0,"UserName":"@ad954bf2159a572b7743a5bc134739f4","NickName":"vicky张","AttrStatus":100477,"PYInitial":"","PYQuanPin":"","RemarkPYInitial":"","RemarkPYQuanPin":"","MemberStatus":0,"DisplayName":"","KeyWord":"hua","HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@ad954bf2159a572b7743a5bc134739f4&skey=@crypt_f9cec94b_f23a307a23231cfb5098faf91ff759ca&chatroomid=@4b8baa99bdfc354443711412126d2aaf"}],"RemarkName":"","HideInputBarFlag":0,"Sex":0,"Signature":"","VerifyFlag":0,"OwnerUin":2351423900,"StarFriend":0,"AppAccountFlag":0,"Statues":0,"AttrStatus":0,"Province":"","City":"","Alias":"","SnsFlag":0,"UniFriend":0,"DisplayName":"","ChatRoomId":0,"KeyWord":"","EncryChatRoomId":"@4b8baa99bdfc354443711412126d2aaf","MMFromBatchGet":true,"MMOrderSymbol":"TONGZHIZHONGGUOQINGNIANTIANSHIHUIGUANFANGJIA","MMFromBatchget":true,"MMInChatroom":true}`
)
const
CONTACT_RAW_PAYLOAD_DICT
=
JSON
.
parse
(
`{"@ad85207730aa94e006ddce28f74e6878":{ "UserName": "@ad85207730aa94e006ddce28f74e6878","NickName": "田美坤Maggie","RemarkName": "" },"@72c4767ce32db488871fdd1c27173b81":{ "UserName": "@72c4767ce32db488871fdd1c27173b81","NickName": "李竹~英诺天使(此号已满)","RemarkName": "" },"@ecff4a7a86f23455dc42317269aa36ab":{ "UserName": "@ecff4a7a86f23455dc42317269aa36ab","NickName": "童玮亮","RemarkName": "童玮亮备注" }}`
)
...
...
@@ -84,21 +88,18 @@ test('Room smok testing', async t => {
const
sandbox
=
sinon
.
createSandbox
()
const
puppet
=
new
PuppetPuppeteer
({
const
puppet
=
new
PuppetPuppeteer
Test
({
memory
:
new
MemoryCard
(),
})
class
WechatyTest
extends
Wechaty
{
public
initPuppetAccessory
(
puppet
:
PuppetPuppeteer
)
{
super
.
initPuppetAccessory
(
puppet
)
}
}
const
wechaty
=
new
WechatyTest
({
puppet
})
wechaty
.
initPuppetAccessory
(
puppet
)
sandbox
.
stub
(
puppet
,
'
contactRawPayload
'
).
callsFake
(
mockContactRoomRawPayload
)
sandbox
.
stub
(
puppet
,
'
roomRawPayload
'
).
callsFake
(
mockContactRoomRawPayload
)
sandbox
.
stub
(
puppet
,
'
id
'
).
value
(
'
pretend-to-be-logined
'
)
const
room
=
wechaty
.
Room
.
load
(
ROOM_EXPECTED
.
id
)
await
room
.
ready
()
...
...
src/puppet/puppet.ts
浏览文件 @
583e3257
...
...
@@ -667,7 +667,7 @@ export abstract class Puppet extends EventEmitter implements Sayable {
log
.
verbose
(
'
Puppet
'
,
'
roomMemberSearch(%s, %s)
'
,
roomId
,
JSON
.
stringify
(
query
))
if
(
!
this
.
id
)
{
throw
new
Error
(
'
no puppet.id
'
)
throw
new
Error
(
'
no puppet.id
. need puppet to be login-ed for a search
'
)
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录