-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathspawn-pooled.test.ts
42 lines (33 loc) · 1.3 KB
/
spawn-pooled.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { ChangeUserNameStatus, ChangeUserNameResponse, ChangeUserName } from './protos/user_test'
import spawn, { payloadFor, SpawnSystem } from '../src/spawn'
import { createPooledActor } from './stubs/actors'
import { describe, beforeAll, afterAll, test, expect } from 'bun:test'
describe('testing spawn pooled actor', () => {
let system: SpawnSystem
beforeAll(async () => {
system = spawn.createSystem('SpawnSysTest')
createPooledActor(system)
const registered = await system.register()
if (registered.status?.message != 'Accepted') throw new Error('Failed to register system')
})
afterAll(async () => {
await system.destroy()
})
test.skip('calling a stateless function in a pooled actor', async () => {
const expected = ChangeUserNameResponse.create({
status: ChangeUserNameStatus.OK,
newName: 'namePooledCall-set'
})
const payload = payloadFor(ChangeUserName, ChangeUserName.create({ newName: 'namePooledCall' }))
const action = 'setName'
const newNameResponse = await spawn.invoke('pooledActorExample', {
action,
payload,
pooled: true,
response: ChangeUserNameResponse,
system: 'SpawnSysTest'
})
expect(newNameResponse.newName).toBe(expected.newName)
expect(newNameResponse.status).toBe(expected.status)
})
})