d5f55b5f9c
Coverage / build (push) Has been cancelled
Docker / Build (push) Has been cancelled
Docker / Publish (push) Has been cancelled
Node.js CI / build (16, macos-latest) (push) Has been cancelled
Node.js CI / build (16, ubuntu-latest) (push) Has been cancelled
Node.js CI / build (16, windows-latest) (push) Has been cancelled
NPM / Build (22) (push) Has been cancelled
NPM / Pack (push) Has been cancelled
NPM / Publish (push) Has been cancelled
988 lines
109 KiB
Markdown
988 lines
109 KiB
Markdown
# TESTS
|
|
|
|
Run unit tests
|
|
|
|
```shell
|
|
$ npm test
|
|
...
|
|
|
|
```
|
|
|
|
If you want to see full log messages
|
|
|
|
```shell
|
|
$ WECHATY_LOG=silly npm test
|
|
...
|
|
|
|
```
|
|
|
|
## EXAMPLE OUTPUT
|
|
|
|
```bash
|
|
|
|
|
|
> wechaty@0.17.11 test /home/zixia/chatie/wechaty
|
|
> npm run clean && npm run lint && npm run test:unit:retry && npm run test:shell && npm run sloc
|
|
|
|
|
|
> wechaty@0.17.11 clean /home/zixia/chatie/wechaty
|
|
> shx rm -fr dist/*
|
|
|
|
|
|
> wechaty@0.17.11 lint /home/zixia/chatie/wechaty
|
|
> npm run check-node-version && npm run lint:ts && npm run lint:es && npm run lint:sh
|
|
|
|
|
|
> wechaty@0.17.11 check-node-version /home/zixia/chatie/wechaty
|
|
> check-node-version --node ">= 8.5"
|
|
|
|
|
|
> wechaty@0.17.11 lint:ts /home/zixia/chatie/wechaty
|
|
> tslint --project tsconfig.json && tsc --noEmit
|
|
|
|
|
|
> wechaty@0.17.11 lint:es /home/zixia/chatie/wechaty
|
|
> eslint "{bin,examples,scripts,src,tests}/**/*.js" --ignore-pattern="tests/fixtures/**"
|
|
|
|
|
|
> wechaty@0.17.11 lint:sh /home/zixia/chatie/wechaty
|
|
> bash -n bin/*.sh
|
|
|
|
|
|
> wechaty@0.17.11 test:unit:retry /home/zixia/chatie/wechaty
|
|
> ts-node scripts/retry-unit-tests
|
|
|
|
Safe Test: starting...
|
|
Safe Test: running for round #0
|
|
|
|
> wechaty@0.17.11 test:unit /home/zixia/chatie/wechaty
|
|
> TS_NODE_FILES=1 tap --node-arg=--require=ts-node/register "src/**/*.spec.ts" "src/*.spec.ts" "tests/*.spec.ts" "tests/**/*.spec.ts"
|
|
|
|
TAP version 13
|
|
# Accessory smoke testing
|
|
ok 1 should throw if read static puppet before initialize
|
|
ok 2 should throw if read instance puppet before initialization
|
|
ok 3 should get EXPECTED_PUPPET1 from static puppet after set static puppet
|
|
ok 4 should get EXPECTED_PUPPET1 from instance puppet after set static puppet
|
|
# Two clone-ed classes have different static puppet value
|
|
ok 5 should get the puppet as 1 from 1st cloned class
|
|
ok 6 should get the puppet as 2 from 2nd cloned class
|
|
# Throw error when set the value again
|
|
ok 7 instance: should not throw when set at 1st time
|
|
ok 8 instance: should throw when set at 2nd time
|
|
ok 9 static: should not throw when set at 1st time
|
|
ok 10 static: should throw when set at 2nd time
|
|
# important variables
|
|
ok 11 should exist `puppet` in Config
|
|
ok 12 should exist `apihost` in Config
|
|
ok 13 should exist `profile` in Config
|
|
ok 14 should exist `token` in Config
|
|
ok 15 should export DEFAULT_PUPPET
|
|
ok 16 should export DEFAULT_PROFILE
|
|
ok 17 should export DEFAULT_PROTOCOL
|
|
ok 18 should export DEFAULT_APIHOST
|
|
# validApiHost()
|
|
ok 19 should not throw
|
|
ok 20 should not throw
|
|
ok 21 should throw
|
|
ok 22 should throw
|
|
# Io restart without problem
|
|
ok 23 start/stop-ed at #0
|
|
ok 24 start/stop-ed at #1
|
|
ok 25 start/restart successed.
|
|
# stripHtml()
|
|
ok 26 should strip html as expected
|
|
# unescapeHtml()
|
|
ok 27 should unescape html as expected
|
|
# plainText()
|
|
ok 28 should convert plain text as expected
|
|
# digestEmoji()
|
|
ok 29 should digest emoji string 0 as expected
|
|
ok 30 should digest emoji string 1 as expected
|
|
ok 31 should digest emoji string 2 as expected
|
|
ok 32 should digest emoji string 3 as expected
|
|
# unifyEmoji()
|
|
ok 33 should convert the emoji xml to the expected unified xml
|
|
ok 34 should convert the emoji xml to the expected unified xml
|
|
# stripEmoji()
|
|
ok 35 should strip to the expected str
|
|
ok 36 should strip to the expected str
|
|
ok 37 should return empty string for `undefined`
|
|
# downloadStream() for media
|
|
ok 38 should has cookies in req
|
|
ok 39 should has a cookie named life value 42
|
|
ok 40 should success download dong from downloadStream()
|
|
# getPort() for an available socket port
|
|
ok 41 should not be same port even it is available(to provent conflict between concurrency tests in AVA)
|
|
ok 42 should has no exception after loop test
|
|
# promiseRetry()
|
|
ok 43 should got EXPECTED_REJECT when wait not enough
|
|
ok 44 should got EXPECTED_RESOLVE when wait enough
|
|
# retry()
|
|
ok 45 should got EXPECTED_RESOLVE when wait enough
|
|
# PuppetMock restart without problem
|
|
ok 46 start/stop-ed at #0
|
|
ok 47 start/stop-ed at #1
|
|
ok 48 start/stop-ed at #2
|
|
ok 49 PuppetMock() start/restart successed.
|
|
# PadchatManager() cache should be release and can be re-init again.
|
|
ok 50 init/release-ed at #0
|
|
ok 51 init/release-ed at #1
|
|
ok 52 init/release-ed at #2
|
|
ok 53 PadchatManager() cache init/release/init successed.
|
|
# PadchatManager() cache release 10 instances for the same time
|
|
ok 54 release 10 at the same time success
|
|
# PadchatManager() should can be able to restart() many times for one instance
|
|
ok 55 restarted at #0
|
|
ok 56 restarted at #1
|
|
ok 57 restarted at #2
|
|
ok 58 PadchatManager() restart successed.
|
|
# PadchatManager() stop many instances for the same time
|
|
ok 59 stop3 at the same time success
|
|
# PuppetPadchat() throw exception when instanciate the second instance without options.token
|
|
ok 60 should instance the 1st puppet without problem
|
|
ok 61 should throw when instance the 2nd instance without the token option
|
|
ok 62 should instance the 3rd puppet with token option
|
|
# stripBugChatroomId()
|
|
ok 63 should return pure user_name for RAW_USER_NAME_1
|
|
ok 64 should return pure user_name for RAW_USER_NAME_2
|
|
ok 65 should return empty string for undifined
|
|
# contactRawPayloadParser
|
|
ok 66 should parse ContactPayload for personal account payload
|
|
ok 67 should parse ContactPayload for official account payload
|
|
ok 68 should throw exception for invalid object
|
|
ok 69 should throw exception for undifined
|
|
# imageBase64ToQrCode()
|
|
ok 70 should decode qrcode image base64
|
|
# friendshipConfirmEventMessageParser() EN-confirm-by-other
|
|
ok 71 should parse message to contact id
|
|
# friendshipConfirmEventMessageParser() EN-confirm-by-bot
|
|
ok 72 should parse message to contact id
|
|
# friendshipConfirmEventMessageParser() ZH-confirm-by-other
|
|
ok 73 tbw # SKIP
|
|
# friendshipConfirmEventMessageParser() ZH-confirm-by-bot
|
|
ok 74 should parse message to contact id
|
|
# friendshipReceiveEventMessageParser()
|
|
ok 75 should parse message to receive contact id
|
|
# friendshipConfirmEventMessageParser()
|
|
ok 76 should parse `undefined`
|
|
ok 77 should parse `null`
|
|
ok 78 should parse `{}`
|
|
ok 79 should parse invalid content
|
|
# friendshipReceiveEventMessageParser()
|
|
ok 80 should parse `undefined`
|
|
ok 81 should parse `null`
|
|
ok 82 should parse `{}`
|
|
ok 83 should parse invalid content
|
|
# friendshipVerifyEventMessageParser()
|
|
ok 84 should parse `undefined`
|
|
ok 85 should parse `null`
|
|
ok 86 should parse `{}`
|
|
ok 87 should parse invalid content
|
|
# friendshipVerifyEventMessageParser() EN
|
|
ok 88 should parse verify message to contact id
|
|
# friendshipVerifyEventMessageParser() ZH
|
|
ok 89 should parse verify message to contact id
|
|
# friendshipRawPayloadParser()
|
|
ok 90 should parse friendshipPayload right
|
|
# isRoomId()
|
|
ok 91 should return true for ROOM_ID
|
|
ok 92 should return false for ROOM_ID
|
|
ok 93 should return false for undifined
|
|
# isContactId()
|
|
ok 94 should return true for CONTACT_ID
|
|
ok 95 should return false for CONTACT_ID
|
|
ok 96 should return false for undifined
|
|
# isContactOfficialId()
|
|
ok 97 should return true for OFFICIAL_CONTACT_ID
|
|
ok 98 should return false for NOT_OFFICIAL_CONTACT_ID
|
|
ok 99 should return false for undifined
|
|
# isStrangerV1()
|
|
ok 100 should return true for STRANGER_V1
|
|
ok 101 should return false for NOT_STRANGER_V1
|
|
# isStrangerV2()
|
|
ok 102 should return true for STRANGER_V2
|
|
ok 103 should return false for NOT_STRANGER_V2
|
|
# isPayload()
|
|
ok 104 undefined is not payload
|
|
ok 105 null is not payload
|
|
ok 106 {} is not payload
|
|
ok 107 valid payload
|
|
# messageRawPayloadParser
|
|
ok 108 tbw # SKIP
|
|
# sys
|
|
ok 109 should parse sys message payload
|
|
# status notify
|
|
ok 110 should parse status notify message payload
|
|
# room invitation created by bot
|
|
ok 111 should parse room invitation message payload
|
|
# room ownership transfer message
|
|
ok 112 should parse ower transfer message
|
|
# StatusNotify to roomId
|
|
ok 113 should parse status notify message to room id
|
|
# share card peer to peer
|
|
ok 114 should parse share card message peer to peer
|
|
# share card in room
|
|
ok 115 should parse share card message peer to peer
|
|
# padchatDecode() uri decode with +
|
|
ok 116 should parse json text with "+" right
|
|
# padchatDecode() plain json text
|
|
ok 117 should decode invalid uridecode text
|
|
# roomJoinEventMessageParser() EN-other-invite-other
|
|
ok 118 should parse event
|
|
# roomJoinEventMessageParser() EN-other-invite-others
|
|
ok 119 should parse event
|
|
# roomJoinEventMessageParser() EN-other-invite-bot
|
|
ok 120 should parse event
|
|
# roomJoinEventMessageParser() EN-other-invite-bot-with-2-others
|
|
ok 121 should parse event
|
|
# roomJoinEventMessageParser() EN-bot-invite-one
|
|
ok 122 should parse event
|
|
# roomJoinEventMessageParser() EN-bot-invite-three-bot-is-owner
|
|
ok 123 should parse event
|
|
# roomJoinEventMessageParser() EN-bot-invite-three-bot-is-not-owner
|
|
ok 124 should parse event
|
|
# roomJoinEventMessageParser() EN-other-invite-bot-and-two
|
|
ok 125 should parse event
|
|
# roomJoinEventMessageParser() EN-scan-qrcode-shared-by-bot-when-bot-is-owner
|
|
ok 126 should parse event
|
|
# roomJoinEventMessageParser() EN-scan-qrcode-shared-by-bot-when-bot-not-owner
|
|
ok 127 should parse event
|
|
# roomJoinEventMessageParser() EN-scan-qrcode-shared-by-other-when-bot-is-owner
|
|
ok 128 should parse event
|
|
# roomJoinEventMessageParser() EN-scan-qrcode-shared-by-other-when-bot-no-owner
|
|
ok 129 should parse event
|
|
# roomJoinEventMessageParser() EN-bot-invite-many
|
|
ok 130 should be the same as the bot-invite-many # SKIP
|
|
# roomJoinEventMessageParser() EN-room-create
|
|
ok 131 to be confirm # SKIP
|
|
# roomJoinEventMessageParser() not detected
|
|
ok 132 should return null for undefined
|
|
ok 133 should return null for null
|
|
ok 134 should return null for string
|
|
ok 135 should return null for empty object
|
|
ok 136 should return null for PadchatMessagePayload with unknown content
|
|
# roomJoinEventMessageParser() Recall Message
|
|
ok 137 should return null for a normal message recall payload
|
|
# roomJoinEventMessageParser() ZH-other-invite-other
|
|
ok 138 should parse room join message payload
|
|
# roomJoinEventMessageParser() ZH-other-invite-others
|
|
ok 139 tbw # SKIP
|
|
# roomJoinEventMessageParser() ZH-other-invite-bot
|
|
ok 140 should parse event
|
|
# roomJoinEventMessageParser() ZH-other-invite-bot-with-other
|
|
ok 141 should parse event
|
|
# roomJoinEventMessageParser() ZH-bot-invite-one
|
|
ok 142 should parse event
|
|
# roomJoinEventMessageParser() ZH-bot-invite-three-bot-is-owner
|
|
ok 143 should parse event
|
|
# roomJoinEventMessageParser() ZH-bot-invite-three-bot-is-not-owner
|
|
ok 144 should parse event
|
|
# roomJoinEventMessageParser() ZH-other-invite-bot-and-two
|
|
ok 145 should parse event
|
|
# roomJoinEventMessageParser() ZH-scan-qrcode-shared-by-bot-when-bot-not-owner
|
|
ok 146 should parse event
|
|
# roomJoinEventMessageParser() ZH-scan-qrcode-shared-by-bot-when-bot-is-owner
|
|
ok 147 should parse event
|
|
# roomJoinEventMessageParser() ZH-scan-qrcode-shared-by-other-when-bot-no-owner
|
|
ok 148 should parse event
|
|
# roomJoinEventMessageParser() ZH-scan-qrcode-shared-by-other-when-bot-is-owner
|
|
ok 149 should parse event
|
|
# roomJoinEventMessageParser() ZH-bot-invite-three
|
|
ok 150 tbw # SKIP
|
|
# roomJoinEventMessageParser() ZH-room-create
|
|
ok 151 can not get create sys message, because room will not sync or appear before the creater send the first message # SKIP
|
|
# roomLeaveEventMessageParser() EN-bot-delete-other
|
|
ok 152 should parse room leave message payload
|
|
# roomLeaveEventMessageParser() EN-bot-delete-others
|
|
ok 153 the same as bot-delete-other # SKIP
|
|
# roomLeaveEventMessageParser() EN-other-delete-bot
|
|
ok 154 should parse event
|
|
# roomLeaveEventMessageParser() EN-other-delete-other
|
|
ok 155 can not detect # SKIP
|
|
# roomLeaveEventMessageParser() EN-other-delete-others
|
|
ok 156 can not detect # SKIP
|
|
# roomLeaveEventMessageParser() not detected
|
|
ok 157 should return null for undefined
|
|
ok 158 should return null for null
|
|
ok 159 should return null for string
|
|
ok 160 should return null for empty object
|
|
ok 161 should return null for PadchatMessagePayload with unknown content
|
|
# roomLeaveEventMessageParser() ZH-bot-delete-other
|
|
ok 162 should parse room leave message payload
|
|
# roomLeaveEventMessageParser() ZH-bot-delete-others
|
|
ok 163 the same as bot-delete-other # SKIP
|
|
# roomLeaveEventMessageParser() ZH-other-delete-bot
|
|
ok 164 should parse room leave message payload
|
|
# roomLeaveEventMessageParser() ZH-other-delete-other
|
|
ok 165 bot will not see any message, can not detected # SKIP
|
|
# roomLeaveEventMessageParser() ZH-other-delete-others
|
|
ok 166 bot will not see any message, can not detected # SKIP
|
|
# roomTopicEventMessageParser() EN-other-modify-topic
|
|
ok 167 should parse event
|
|
# roomTopicEventMessageParser() EN-bot-modify-topic
|
|
ok 168 should parse event
|
|
# roomTopicEventMessageParser() not detected
|
|
ok 169 should return null for undefined
|
|
ok 170 should return null for null
|
|
ok 171 should return null for string
|
|
ok 172 should return null for empty object
|
|
ok 173 should return null for PadchatMessagePayload with unknown content
|
|
# roomTopicEventMessageParser() ZH-bot-modify-topic
|
|
ok 174 should parse room topic message payload
|
|
# roomTopicEventMessageParser() ZH-other-modify-topic
|
|
ok 175 should parse room topic message payload
|
|
# splitChineseNameList()
|
|
ok 176 should split chinese name list
|
|
# splitEnglihshNameList()
|
|
ok 177 should split english name list
|
|
# PuppetPuppeteerBridge
|
|
ok 178 Bridge instnace
|
|
# preHtmlToXml()
|
|
ok 179 should parse html to xml
|
|
# testBlockedMessage()
|
|
# not blocked
|
|
ok 180 should return false when no block message
|
|
# html
|
|
ok 181 should get zh blocked message
|
|
# zh
|
|
ok 182 should get zh blocked message
|
|
# clickSwitchAccount()
|
|
# switch account needed
|
|
ok 183 should click the switch account button
|
|
# switch account not needed
|
|
ok 184 should no button found
|
|
# WechatyBro.ding()
|
|
ok 185 should instanciated a bridge
|
|
ok 186 should init Bridge
|
|
ok 187 should got dong after execute WechatyBro.ding()
|
|
ok 188 should got a boolean after call proxyWechaty(loginState)
|
|
ok 189 b.quit()
|
|
# Puppet Puppeteer Event smoke testing
|
|
ok 190 should be inited
|
|
ok 191 should be quited
|
|
# parseFriendConfirm()
|
|
ok 192 should be truthy for confirm msg: You have added 李卓桓 as your WeChat contact. Start chatting!
|
|
ok 193 should be truthy for confirm msg: 你已添加了李卓桓,现在可以开始聊天了。
|
|
ok 194 should be truthy for confirm msg: johnbassserver@gmail.com just added you to his/her contacts list. Send a message to him/her now!
|
|
ok 195 should be truthy for confirm msg: johnbassserver@gmail.com刚刚把你添加到通讯录,现在可以开始聊天了。
|
|
ok 196 should be falsy for other msg
|
|
# parseRoomJoin()
|
|
ok 197 should check room join message right for You invited 管理员 to the group chat.
|
|
ok 198 should get inviteeList right
|
|
ok 199 should get inviter right
|
|
ok 200 should check room join message right for You invited 李卓桓.PreAngel、Bruce LEE to the group chat.
|
|
ok 201 should get inviteeList right
|
|
ok 202 should get inviter right
|
|
ok 203 should check room join message right for 管理员 invited 小桔建群助手 to the group chat
|
|
ok 204 should get inviteeList right
|
|
ok 205 should get inviter right
|
|
ok 206 should check room join message right for 管理员 invited 庆次、小桔妹 to the group chat
|
|
ok 207 should get inviteeList right
|
|
ok 208 should get inviter right
|
|
ok 209 should check room join message right for 你邀请"管理员"加入了群聊
|
|
ok 210 should get inviteeList right
|
|
ok 211 should get inviter right
|
|
ok 212 should check room join message right for "管理员"邀请"宁锐锋"加入了群聊
|
|
ok 213 should get inviteeList right
|
|
ok 214 should get inviter right
|
|
ok 215 should check room join message right for "管理员"通过扫描你分享的二维码加入群聊
|
|
ok 216 should get inviteeList right
|
|
ok 217 should get inviter right
|
|
ok 218 should check room join message right for " 桔小秘"通过扫描"李佳芮"分享的二维码加入群聊
|
|
ok 219 should get inviteeList right
|
|
ok 220 should get inviter right
|
|
ok 221 should check room join message right for "管理员" joined group chat via the QR code you shared.
|
|
ok 222 should get inviteeList right
|
|
ok 223 should get inviter right
|
|
ok 224 should check room join message right for "宁锐锋" joined the group chat via the QR Code shared by "管理员".
|
|
ok 225 should get inviteeList right
|
|
ok 226 should get inviter right
|
|
ok 227 should throws if message is not expected
|
|
# parseRoomLeave()
|
|
ok 228 should get leaver for leave message: You removed "Bruce LEE" from the group chat
|
|
ok 229 should get leaver name right
|
|
ok 230 should get leaver for leave message: 你将"李佳芮"移出了群聊
|
|
ok 231 should get leaver name right
|
|
ok 232 should get remover for leave message: You were removed from the group chat by "桔小秘"
|
|
ok 233 should get leaver name right
|
|
ok 234 should get remover for leave message: 你被"李佳芮"移出群聊
|
|
ok 235 should get leaver name right
|
|
ok 236 should throw if message is not expected
|
|
# parseRoomTopic()
|
|
ok 237 should check topic right for content: "李卓桓.PreAngel" changed the group name to "ding"
|
|
ok 238 should get right topic
|
|
ok 239 should get right changer
|
|
ok 240 should check topic right for content: "李佳芮"修改群名为“dong”
|
|
ok 241 should get right topic
|
|
ok 242 should get right changer
|
|
ok 243 should throw if message is not expected
|
|
# PuppetPuppeteer Module Exports
|
|
ok 244 should export PuppetPuppeteer
|
|
# login/logout events
|
|
ok 245 should be inited
|
|
ok 246 should be not logined
|
|
ok 247 should be logined
|
|
ok 248 bridge.getUserName should be called
|
|
ok 249 puppet.contactRawPayload should be called
|
|
ok 250 contactList stub should be called
|
|
ok 251 should call stubContacList 4 times
|
|
ok 252 should fire logout event
|
|
ok 253 should be logouted
|
|
# Contact smoke testing
|
|
ok 254 id/UserName right
|
|
ok 255 NickName set
|
|
ok 256 should get the right alias from Contact
|
|
# PuppetPuppeteerFriendship.receive smoke testing
|
|
ok 257 should has right request message
|
|
ok 258 should have a Contact instance
|
|
ok 259 should be receive type
|
|
# PuppetPuppeteerFriendship.confirm smoke testing
|
|
ok 260 should match confirm message
|
|
ok 261 should have a Contact instance
|
|
ok 262 should be confirm type
|
|
# constructor()
|
|
ok 263 id right
|
|
ok 264 from right
|
|
ok 265 toString()
|
|
# ready()
|
|
ok 266 id/MsgId right
|
|
ok 267 contact ready for FromUserName
|
|
ok 268 contact ready for FromNickName
|
|
ok 269 contact ready for ToUserName
|
|
ok 270 contact ready for ToNickName
|
|
# find()
|
|
ok 271 Message found
|
|
ok 272 Message.id is ok
|
|
# findAll()
|
|
ok 273 Message.findAll with limit 2
|
|
# self()
|
|
ok 274 should identify self message true where message from MOCK_CONTACT
|
|
ok 275 should identify self message false when from a different fromId
|
|
# mentioned()
|
|
ok 276 @_@ in message should not be treat as contact
|
|
ok 277 user@email.com in message should not be treat as contact
|
|
ok 278 @_@ wow! my email is ruiruibupt@gmail.com in message should not be treat as contact
|
|
ok 279 @小桔同学 is a contact
|
|
ok 280 should get 小桔同学 id right in rawPayload21
|
|
ok 281 @小桔同学 and @wuli舞哩客服 is a contact
|
|
ok 282 should get 小桔同学 id right in rawPayload22
|
|
ok 283 should get wuli舞哩客服 id right in rawPayload22
|
|
ok 284 @wuli舞哩客服 is a contact
|
|
ok 285 should get wuli舞哩客服 id right in rawPayload31
|
|
ok 286 @小桔同学 and @wuli舞哩客服 is a contact
|
|
ok 287 should get wuli舞哩客服 id right in rawPayload32
|
|
ok 288 should get 小桔同学 id right in rawPayload32
|
|
# Room smok testing
|
|
ok 289 should set id/UserName right
|
|
ok 290 should set topic/NickName
|
|
ok 291 should get roomAlias
|
|
ok 292 should return null if not set roomAlias
|
|
ok 293 should has contact1
|
|
ok 294 should has no this member
|
|
12:02:13 INFO Room owner()
|
|
ok 295 should get Contact instance for owner, or null
|
|
ok 296 should get the right id from @ad85207730aa94e006ddce28f74e6878, find member by default
|
|
ok 297 should get the right id from @72c4767ce32db488871fdd1c27173b81, find member by default
|
|
ok 298 should get the right id from @ecff4a7a86f23455dc42317269aa36ab, find member by default
|
|
ok 299 should get the right id from @ad85207730aa94e006ddce28f74e6878, find member by roomAlias
|
|
ok 300 toString()
|
|
# Room iterator for contact in it
|
|
ok 301 should get one of the room member: @ecff4a7a86f23455dc42317269aa36ab
|
|
ok 302 should get one of the room member: @eac4377ecfd59e4321262f892177169f
|
|
ok 303 should get one of the room member: @ad85207730aa94e006ddce28f74e6878
|
|
ok 304 should get one of the room member: @33cc239d22b20d56395bbbd0967b28b9
|
|
ok 305 should get one of the room member: @5e77381e1e3b5641ddcee44670b6e83a
|
|
ok 306 should get one of the room member: @56941ef97f3e9c70af88667fdd613b44
|
|
ok 307 should get one of the room member: @72c4767ce32db488871fdd1c27173b81
|
|
ok 308 should get one of the room member: @0b0e2eb9501ab2d84f9f800f6a0b4216
|
|
ok 309 should get one of the room member: @4bfa767be0cd3fb78409b9735d1dcc57
|
|
ok 310 should get one of the room member: @ad954bf2159a572b7743a5bc134739f4
|
|
ok 311 should iterate all the members of the room
|
|
# contactQueryFilterFunction()
|
|
# filter name by regex
|
|
ok 312 should filter the query to id list
|
|
# filter name by text
|
|
ok 313 should filter query to id list
|
|
# filter alias by regex
|
|
ok 314 should filter query to id list
|
|
# filter alias by text
|
|
ok 315 should filter query to id list
|
|
# throw if filter key unknown
|
|
ok 316 should throw
|
|
# throw if filter key are more than one
|
|
ok 317 should throw
|
|
# roomQueryFilterFunction()
|
|
# filter name by regex
|
|
ok 318 should filter the query to id list
|
|
# filter name by text
|
|
ok 319 should filter query to id list
|
|
# throw if filter key unknown
|
|
ok 320 should throw
|
|
# throw if filter key are more than one
|
|
ok 321 should throw
|
|
# Should not be able to instanciate directly
|
|
ok 322 should throw when `Contact.load()`
|
|
ok 323 should throw when `Contact.load()`
|
|
# Should not be able to instanciate through cloneClass without puppet
|
|
ok 324 should throw when `MyContact.load()` without puppet
|
|
ok 325 should throw when `MyContact.load()` without puppet
|
|
# should be able to instanciate through cloneClass with puppet
|
|
ok 326 should get contact instance from `MyContact.load()
|
|
ok 327 should not throw when `MyContact().load`
|
|
ok 328 should get contact instance from `MyContact.load()`
|
|
ok 329 should not throw when `MyContact.load()`
|
|
# should throw when instanciate the global class
|
|
ok 330 should throw when we instanciate a global class
|
|
# Export of the Framework
|
|
ok 331 should export Contact
|
|
ok 332 should export Friendship
|
|
ok 333 should export IoClient
|
|
ok 334 should export Message
|
|
ok 335 should export Puppet
|
|
ok 336 should export Room
|
|
ok 337 should export Wechaty
|
|
ok 338 should export log
|
|
ok 339 should return version as the same in package.json
|
|
ok 340 should export version in package.json
|
|
# Config setting
|
|
ok 341 should export Config
|
|
ok 342 should has DEFAULT_PUPPET
|
|
# event:start/stop
|
|
12:02:13 INFO Wechaty start() v#git[2b61db2] is starting...
|
|
12:02:13 INFO Wechaty initPuppet() using puppet: puppeteer
|
|
12:02:15 INFO Wechaty stop() v#git[2b61db2] is stoping ...
|
|
ok 343 should get event:start once
|
|
ok 344 should get event:stop once
|
|
# on(event, Function)
|
|
12:02:15 INFO Wechaty stop() v#git[2b61db2] is stoping ...
|
|
ok 345 should get event:error once
|
|
ok 346 should get error from message listener
|
|
# initPuppetAccessory()
|
|
ok 347 should not throw for the 1st time init
|
|
ok 348 should throw for the 2nd time init
|
|
# Wechaty restart for many times
|
|
12:02:15 INFO Wechaty start() v#git[2b61db2] is starting...
|
|
12:02:15 INFO Wechaty stop() v#git[2b61db2] is stoping ...
|
|
ok 349 start/stop-ed at #0
|
|
12:02:15 INFO Wechaty start() v#git[2b61db2] is starting...
|
|
12:02:15 INFO Wechaty stop() v#git[2b61db2] is stoping ...
|
|
ok 350 start/stop-ed at #1
|
|
12:02:15 INFO Wechaty start() v#git[2b61db2] is starting...
|
|
12:02:15 INFO Wechaty stop() v#git[2b61db2] is stoping ...
|
|
ok 351 start/stop-ed at #2
|
|
ok 352 Wechaty start/restart successed.
|
|
# Electron smoke testing
|
|
ok 353 test
|
|
# Node.js function params destructuring behaviour test
|
|
ok 354 should be equal to default args
|
|
ok 355 should be equal to default s args
|
|
ok 356 should be equal to default n args
|
|
# Puppeteer smoke testing
|
|
ok 357 Browser instnace
|
|
ok 358 should get version
|
|
ok 359 should create newPage for browser
|
|
ok 360 should open wx.qq.com
|
|
ok 361 should get 42
|
|
# evaluate() a function that returns a Promise
|
|
ok 362 should get resolved value of promise inside browser
|
|
# evaluate() a file and get the returns value
|
|
ok 363 should inject file inside browser and return the value
|
|
ok 364 should no wechaty by default
|
|
ok 365 should has window by default
|
|
# page.on(console)
|
|
ok 366 should be called once
|
|
ok 367 should get log type
|
|
ok 368 should get console.log 1st/2nd arg
|
|
# page.exposeFunction()
|
|
ok 369 should be called once inside browser
|
|
ok 370 should be called with 42
|
|
# other demos
|
|
ok 371 should get version
|
|
ok 372 should get cookies
|
|
ok 373 should get cookies with name
|
|
ok 374 should evaluated function for () => 8 * 7 = 56
|
|
ok 375 should evaluated 1 + 2 = 3
|
|
ok 376 should get the url right
|
|
# en
|
|
ok 377 should get en blocked message
|
|
|
|
1..377
|
|
# tests 377
|
|
# pass 377
|
|
|
|
# ok
|
|
|
|
Safe Test: successed at round #0!
|
|
|
|
> wechaty@0.17.11 test:shell /home/zixia/chatie/wechaty
|
|
> shellcheck bin/*.sh
|
|
|
|
|
|
> wechaty@0.17.11 sloc /home/zixia/chatie/wechaty
|
|
> sloc bin examples scripts src tests --details --format cli-table --keys total,source,comment && sloc bin examples scripts src tests
|
|
|
|
┌──────────────────────────────────────────────────────────────────────────────────────────┬──────────┬────────┬─────────┐
|
|
│ Path │ Physical │ Source │ Comment │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ bin/doctor.ts │ 54 │ 27 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ bin/io-client.ts │ 76 │ 43 │ 20 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ bin/version.ts │ 23 │ 3 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/api-ai-bot.ts │ 217 │ 131 │ 62 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/busy-bot.ts │ 172 │ 101 │ 35 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/contact-bot.ts │ 136 │ 72 │ 40 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/ding-dong-bot.ts │ 211 │ 130 │ 52 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/friend-bot.ts │ 128 │ 67 │ 43 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/media-file-bot.ts │ 55 │ 24 │ 25 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/roger-bot.ts │ 45 │ 17 │ 27 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/room-bot.ts │ 434 │ 249 │ 124 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/self-testing-bot.ts │ 301 │ 158 │ 102 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/speech-to-text-bot.ts │ 184 │ 93 │ 68 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/telegram-roger-bot.js │ 55 │ 19 │ 33 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/the-worlds-shortest-chatbot-code-in-6-lines.js │ 25 │ 6 │ 20 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/tuling123-bot.ts │ 97 │ 42 │ 44 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/blessed-twins-bot/index.ts │ 344 │ 230 │ 65 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/gist-bot/index.ts │ 65 │ 31 │ 24 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/gist-bot/on-friend.ts │ 78 │ 37 │ 34 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/gist-bot/on-message.ts │ 82 │ 38 │ 33 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/gist-bot/on-room-join.ts │ 80 │ 36 │ 33 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-import-bot/index.js │ 42 │ 7 │ 33 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/monster/config.js │ 21 │ 12 │ 7 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/monster/index.js │ 69 │ 23 │ 36 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-reload-bot/index.js │ 120 │ 69 │ 37 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-import-bot/listeners/on-friend.js │ 26 │ 6 │ 19 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-import-bot/listeners/on-login.js │ 21 │ 3 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-import-bot/listeners/on-message.js │ 21 │ 3 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-import-bot/listeners/on-scan.js │ 26 │ 7 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/monster/listeners/on-friend.js │ 40 │ 9 │ 26 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/monster/listeners/on-login.js │ 21 │ 3 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/monster/listeners/on-message.js │ 86 │ 47 │ 28 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/monster/listeners/on-scan.js │ 26 │ 7 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-reload-bot/listener/friend.js │ 26 │ 7 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-reload-bot/listener/login.js │ 21 │ 3 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-reload-bot/listener/message.js │ 40 │ 17 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ examples/hot-reload-bot/listener/scan.js │ 23 │ 5 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ scripts/development-release.ts │ 18 │ 9 │ 8 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ scripts/package-publish-config-tag-next.ts │ 19 │ 12 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ scripts/retry-unit-tests.ts │ 54 │ 42 │ 10 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ scripts/sort-contributiveness.ts │ 114 │ 85 │ 12 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ scripts/update-license.ts │ 155 │ 117 │ 28 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/accessory.spec.ts │ 84 │ 39 │ 25 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/accessory.ts │ 172 │ 83 │ 60 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/config.spec.ts │ 86 │ 33 │ 43 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/config.ts │ 235 │ 127 │ 77 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/deprecated.ts │ 6 │ 6 │ 1 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/doctor.ts │ 91 │ 45 │ 37 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/index.ts │ 46 │ 33 │ 5 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/io-client.ts │ 224 │ 135 │ 45 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/io.spec.ts │ 25 │ 20 │ 1 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/io.ts │ 521 │ 340 │ 91 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/misc.spec.ts │ 252 │ 198 │ 23 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/misc.ts │ 313 │ 177 │ 118 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-config.ts │ 28 │ 12 │ 13 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/typings.d.ts │ 13 │ 9 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/wechaty.spec.ts │ 184 │ 93 │ 55 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/wechaty.ts │ 976 │ 553 │ 305 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet/index.ts │ 10 │ 8 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet/puppet.spec.ts │ 283 │ 210 │ 25 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet/puppet.ts │ 906 │ 551 │ 196 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-mock/index.ts │ 25 │ 5 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-mock/puppet-mock.spec.ts │ 27 │ 21 │ 1 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-mock/puppet-mock.ts │ 433 │ 306 │ 50 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/config.ts │ 28 │ 20 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/index.ts │ 25 │ 5 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/padchat-manager.spec.ts │ 129 │ 108 │ 1 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/padchat-manager.ts │ 979 │ 660 │ 140 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/padchat-rpc.ts │ 1499 │ 959 │ 352 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/padchat-rpc.type.ts │ 190 │ 148 │ 93 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/padchat-schemas.ts │ 445 │ 145 │ 320 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/puppet-padchat.spec.ts │ 25 │ 16 │ 3 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/puppet-padchat.ts │ 1247 │ 850 │ 144 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-wechat4u/index.ts │ 25 │ 5 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-wechat4u/puppet-wechat4u.ts │ 883 │ 529 │ 201 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-wechat4u/typings.d.ts │ 20 │ 15 │ 3 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-wechat4u/web-schemas.ts │ 294 │ 133 │ 161 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/user/contact.accessory.spec.ts │ 76 │ 56 │ 5 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/user/contact.ts │ 661 │ 305 │ 287 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/user/favorite.ts │ 17 │ 10 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/user/friendship.ts │ 248 │ 128 │ 77 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/user/index.ts │ 7 │ 7 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/user/message.ts │ 654 │ 341 │ 235 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/user/moment.ts │ 19 │ 12 │ 4 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/user/money.ts │ 7 │ 5 │ 1 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/user/room.ts │ 822 │ 377 │ 350 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/bridge.spec.ts │ 212 │ 155 │ 26 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/bridge.ts │ 1018 │ 754 │ 122 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/event.spec.ts │ 49 │ 21 │ 22 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/event.ts │ 247 │ 133 │ 73 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/firer.spec.ts │ 209 │ 162 │ 24 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/firer.ts │ 497 │ 281 │ 132 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/index.spec.ts │ 30 │ 8 │ 20 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/index.ts │ 25 │ 5 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/puppet-puppeteer.spec.ts │ 124 │ 73 │ 33 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/puppet-puppeteer.ts │ 1568 │ 1066 │ 292 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/puppeteer-contact.spec.ts │ 88 │ 43 │ 27 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/puppeteer-friendship.spec.ts │ 145 │ 95 │ 23 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/puppeteer-message.spec.ts │ 463 │ 334 │ 32 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/puppeteer-room.spec.ts │ 227 │ 133 │ 49 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/web-schemas.ts │ 294 │ 133 │ 161 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/wechaty-bro.js │ 882 │ 605 │ 171 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet/schemas/contact.ts │ 36 │ 31 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet/schemas/friendship.ts │ 31 │ 25 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet/schemas/message.ts │ 38 │ 33 │ 5 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet/schemas/puppet.ts │ 74 │ 53 │ 14 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet/schemas/room.ts │ 32 │ 21 │ 8 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/compatible-wei-bug.spec.ts │ 16 │ 13 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/compatible-wei-bug.ts │ 20 │ 6 │ 13 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/contact-raw-payload-parser.spec.ts │ 103 │ 88 │ 8 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/contact-raw-payload-parser.ts │ 69 │ 39 │ 24 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/file-box-to-qrcode.spec.ts │ 27 │ 19 │ 3 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/file-box-to-qrcode.ts │ 37 │ 29 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/friendship-event-message-parser.confirm.spec.ts │ 80 │ 66 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/friendship-event-message-parser.receive.spec.ts │ 34 │ 25 │ 3 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/friendship-event-message-parser.spec.ts │ 78 │ 73 │ 1 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/friendship-event-message-parser.ts │ 123 │ 83 │ 16 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/friendship-event-message-parser.verify.spec.ts │ 56 │ 44 │ 4 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/friendship-raw-payload-parser.spec.ts │ 41 │ 26 │ 4 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/friendship-raw-payload-parser.ts │ 97 │ 72 │ 9 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/index.ts │ 28 │ 14 │ 13 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/is-type.spec.ts │ 65 │ 49 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/is-type.ts │ 49 │ 39 │ 5 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/message-file-name.ts │ 9 │ 8 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/message-raw-payload-parser.spec.ts │ 304 │ 225 │ 51 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/message-raw-payload-parser.ts │ 191 │ 104 │ 50 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/message-type.ts │ 64 │ 45 │ 5 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/padchat-decode.spec.ts │ 59 │ 49 │ 4 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/padchat-decode.ts │ 22 │ 14 │ 5 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-join-message-parser.en.spec.ts │ 328 │ 292 │ 7 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-join-message-parser.spec.ts │ 65 │ 52 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-join-message-parser.ts │ 316 │ 214 │ 56 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-join-message-parser.zh.spec.ts │ 309 │ 272 │ 8 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-leave-message-parser.en.spec.ts │ 81 │ 65 │ 3 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-leave-message-parser.spec.ts │ 47 │ 35 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-leave-message-parser.ts │ 93 │ 64 │ 14 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-leave-message-parser.zh.spec.ts │ 82 │ 65 │ 4 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-topic-message-parser.en.spec.ts │ 67 │ 56 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-topic-message-parser.spec.ts │ 47 │ 35 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-topic-message-parser.ts │ 70 │ 50 │ 5 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-event-topic-message-parser.zh.spec.ts │ 71 │ 56 │ 4 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-raw-payload-parser.spec.ts │ 4 │ 0 │ 3 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/room-raw-payload-parser.ts │ 19 │ 16 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/split-name.spec.ts │ 25 │ 18 │ 1 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/split-name.ts │ 9 │ 6 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-padchat/pure-function-helpers/t.ts │ 33 │ 25 │ 3 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-wechat4u/pure-function-helpers/index.ts │ 4 │ 4 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-wechat4u/pure-function-helpers/is-type.ts │ 7 │ 6 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-wechat4u/pure-function-helpers/message-file-name.ts │ 73 │ 58 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-wechat4u/pure-function-helpers/message-payload-parser.ts │ 148 │ 91 │ 26 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-wechat4u/pure-function-helpers/message-type.ts │ 54 │ 30 │ 16 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/pure-function-helpers/index.ts │ 5 │ 5 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/pure-function-helpers/is-type.ts │ 7 │ 6 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/pure-function-helpers/message-extname.ts │ 57 │ 44 │ 2 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/pure-function-helpers/message-filename.ts │ 25 │ 20 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/pure-function-helpers/message-raw-payload-parser.ts │ 86 │ 69 │ 9 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ src/puppet-puppeteer/pure-function-helpers/web-message-type.ts │ 51 │ 27 │ 16 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/electron.spec.ts │ 32 │ 8 │ 21 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/node.spec.ts │ 53 │ 23 │ 22 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/puppeteer.spec.ts │ 251 │ 172 │ 35 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/inject-file.js │ 7 │ 7 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/smoke-testing.ts │ 27 │ 23 │ 1 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/es6-import.js │ 3 │ 2 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/import-require.ts │ 22 │ 3 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/js-bot.js │ 4 │ 3 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/syntax-error.js │ 1 │ 1 │ 0 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/ts-bot.ts │ 22 │ 3 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/type-error.ts │ 21 │ 3 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/with-package-json/with-import-error.ts │ 22 │ 3 │ 19 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/with-package-json/with-import.ts │ 22 │ 3 │ 18 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/with-package-json/with-require-error.js │ 4 │ 3 │ 1 │
|
|
├──────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────┼─────────┤
|
|
│ tests/fixtures/docker/with-package-json/with-require.js │ 4 │ 3 │ 0 │
|
|
└──────────────────────────────────────────────────────────────────────────────────────────┴──────────┴────────┴─────────┘
|
|
|
|
---------- Result ------------
|
|
|
|
Physical : 27630
|
|
Source : 17120
|
|
Comment : 6772
|
|
Single-line comment : 2313
|
|
Block comment : 4459
|
|
Mixed : 417
|
|
Empty : 4173
|
|
To Do : 77
|
|
|
|
Number of files read : 172
|
|
|
|
------------------------------
|
|
```
|