@juzi/wechaty
Version:
Wechaty is a RPA SDK for Chatbot Makers.
51 lines • 2 kB
JavaScript
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