Skip to content

Commit c631eeb

Browse files
committed
Merge branch 'wechaty-main' into feat/channel-message-wechaty
2 parents 90349b2 + c70a9b4 commit c631eeb

File tree

5 files changed

+32
-1
lines changed

5 files changed

+32
-1
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "wechaty-puppet",
3-
"version": "1.21.2",
3+
"version": "1.21.3",
44
"description": "Abstract Puppet for Wechaty",
55
"type": "module",
66
"exports": {

src/mixins/login-mixin.ts

+4
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ const loginMixin = <MixinBase extends typeof PuppetSkeleton>(mixinBase: MixinBas
8989
contactId: this.currentUserId,
9090
data: 'puppet stop()',
9191
})
92+
await new Promise<void>(resolve => setImmediate(() => {
93+
this.__currentUserId = undefined
94+
resolve()
95+
}))
9296
}
9397

9498
await super.stop()

src/schemas/message.ts

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export enum MessageType {
2121
Video = 15, // Video(4), Video(43)
2222
Post = 16, // Moment, Channel, Tweet, etc
2323
Channel = 17, // Channel
24+
System = 18, // System Message
2425
}
2526

2627
/**

src/schemas/sayable.ts

+1
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ type SayablePayloadUnsupportedType =
105105
| 'RedEnvelope'
106106
| 'Transfer'
107107
| 'Unknown'
108+
| 'System'
108109

109110
export {
110111
sayablePayloads,

tests/login.spec.ts

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2+
// @ts-check
3+
4+
import { test } from 'tstest'
5+
6+
import { PuppetTest } from './fixtures/puppet-test/puppet-test.js'
7+
8+
test('login testing', async t => {
9+
10+
const puppet = new PuppetTest()
11+
12+
const USER_ID = 'test-user'
13+
let userFromEvent = null
14+
const future = new Promise<void>(resolve => puppet.on('login', user => {
15+
userFromEvent = user.contactId
16+
resolve()
17+
}))
18+
await puppet.start()
19+
puppet.login(USER_ID)
20+
await future
21+
22+
t.same(userFromEvent, USER_ID, `should get login event with ${USER_ID}`)
23+
await puppet.stop()
24+
t.notOk(puppet.isLoggedIn, 'puppet should not be logged in after stop')
25+
})

0 commit comments

Comments
 (0)