UNPKG

@juzi/wechaty

Version:

Wechaty is a RPA SDK for Chatbot Makers.

51 lines 2 kB
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm import { test, } from 'tstest'; import { poolifyMixin, } from './poolify.js'; import { wechatifyUserModule, wechatifyMixin, } from './wechatify.js'; test('poolifyMixin()', async (t) => { class Life { meaning = 42; constructor() { } } class UserClassTest extends poolifyMixin(Life)() { id = 0; constructor() { super(); } } const meaningType = true; t.ok(meaningType, 'should get meaning type for class instance'); const poolGetType = true; t.ok(poolGetType, 'should get Life type for pool.get()'); const loadType = true; t.ok(loadType, 'should get UserClassTest type for load()'); }); test('poolifyMixin() pool', async (t) => { class Life { meaning = 42; } class UserClassTest extends wechatifyMixin(poolifyMixin(Life)()) { id = 0; constructor() { super(); } } const UserClass1 = wechatifyUserModule(UserClassTest)({}); const UserClass2 = wechatifyUserModule(UserClassTest)({}); t.equal(UserClass1.pool.size, 0, 'should be size 0 for class 1'); t.equal(UserClass2.pool.size, 0, 'should be size 0 for class 2'); UserClass1.load('id1'); t.equal(UserClass1.pool.size, 1, 'should be size 1 for class 1 after class1.load()'); t.equal(UserClass2.pool.size, 0, 'should be size 0 for class 2 after class1.load()'); UserClass2.load('id2'); t.equal(UserClass1.pool.size, 1, 'should be size 1 for class 1 after class2.load()'); t.equal(UserClass2.pool.size, 1, 'should be size 1 for class 2 after class2.load()'); }); test('static findAll()', async (t) => { class UserClassTest extends wechatifyMixin(poolifyMixin(Object)()) { static async findAll(id) { return this.load(id); } id = 0; constructor() { super(); } } const typeTest = true; t.ok(typeTest, 'should return the UserClassTest type'); }); //# sourceMappingURL=poolify.spec.js.map