- Add full Telegram bot functionality with Z.AI API integration
- Implement 4 tools: Bash, FileEdit, WebSearch, Git
- Add 3 agents: Code Reviewer, Architect, DevOps Engineer
- Add 6 skills for common coding tasks
- Add systemd service file for 24/7 operation
- Add nginx configuration for HTTPS webhook
- Add comprehensive documentation
- Implement WebSocket server for real-time updates
- Add logging system with Winston
- Add environment validation
🤖 zCode CLI X - Agentic coder with Z.AI + Telegram integration
131 lines
4.4 KiB
JavaScript
131 lines
4.4 KiB
JavaScript
var tape = require("tape");
|
|
|
|
var asPromise = require("..");
|
|
|
|
tape.test("aspromise", function(test) {
|
|
|
|
test.test(this.name + " - resolve", function(test) {
|
|
|
|
function fn(arg1, arg2, callback) {
|
|
test.equal(this, ctx, "function should be called with this = ctx");
|
|
test.equal(arg1, 1, "function should be called with arg1 = 1");
|
|
test.equal(arg2, 2, "function should be called with arg2 = 2");
|
|
callback(null, arg2);
|
|
}
|
|
|
|
var ctx = {};
|
|
|
|
var promise = asPromise(fn, ctx, 1, 2);
|
|
promise.then(function(arg2) {
|
|
test.equal(arg2, 2, "promise should be resolved with arg2 = 2");
|
|
test.end();
|
|
}).catch(function(err) {
|
|
test.fail("promise should not be rejected (" + err + ")");
|
|
});
|
|
});
|
|
|
|
test.test(this.name + " - reject", function(test) {
|
|
|
|
function fn(arg1, arg2, callback) {
|
|
test.equal(this, ctx, "function should be called with this = ctx");
|
|
test.equal(arg1, 1, "function should be called with arg1 = 1");
|
|
test.equal(arg2, 2, "function should be called with arg2 = 2");
|
|
callback(arg1);
|
|
}
|
|
|
|
var ctx = {};
|
|
|
|
var promise = asPromise(fn, ctx, 1, 2);
|
|
promise.then(function() {
|
|
test.fail("promise should not be resolved");
|
|
}).catch(function(err) {
|
|
test.equal(err, 1, "promise should be rejected with err = 1");
|
|
test.end();
|
|
});
|
|
});
|
|
|
|
test.test(this.name + " - resolve twice", function(test) {
|
|
|
|
function fn(arg1, arg2, callback) {
|
|
test.equal(this, ctx, "function should be called with this = ctx");
|
|
test.equal(arg1, 1, "function should be called with arg1 = 1");
|
|
test.equal(arg2, 2, "function should be called with arg2 = 2");
|
|
callback(null, arg2);
|
|
callback(null, arg1);
|
|
}
|
|
|
|
var ctx = {};
|
|
var count = 0;
|
|
|
|
var promise = asPromise(fn, ctx, 1, 2);
|
|
promise.then(function(arg2) {
|
|
test.equal(arg2, 2, "promise should be resolved with arg2 = 2");
|
|
if (++count > 1)
|
|
test.fail("promise should not be resolved twice");
|
|
test.end();
|
|
}).catch(function(err) {
|
|
test.fail("promise should not be rejected (" + err + ")");
|
|
});
|
|
});
|
|
|
|
test.test(this.name + " - reject twice", function(test) {
|
|
|
|
function fn(arg1, arg2, callback) {
|
|
test.equal(this, ctx, "function should be called with this = ctx");
|
|
test.equal(arg1, 1, "function should be called with arg1 = 1");
|
|
test.equal(arg2, 2, "function should be called with arg2 = 2");
|
|
callback(arg1);
|
|
callback(arg2);
|
|
}
|
|
|
|
var ctx = {};
|
|
var count = 0;
|
|
|
|
var promise = asPromise(fn, ctx, 1, 2);
|
|
promise.then(function() {
|
|
test.fail("promise should not be resolved");
|
|
}).catch(function(err) {
|
|
test.equal(err, 1, "promise should be rejected with err = 1");
|
|
if (++count > 1)
|
|
test.fail("promise should not be rejected twice");
|
|
test.end();
|
|
});
|
|
});
|
|
|
|
test.test(this.name + " - reject error", function(test) {
|
|
|
|
function fn(callback) {
|
|
test.ok(arguments.length === 1 && typeof callback === "function", "function should be called with just a callback");
|
|
throw 3;
|
|
}
|
|
|
|
var promise = asPromise(fn, null);
|
|
promise.then(function() {
|
|
test.fail("promise should not be resolved");
|
|
}).catch(function(err) {
|
|
test.equal(err, 3, "promise should be rejected with err = 3");
|
|
test.end();
|
|
});
|
|
});
|
|
|
|
test.test(this.name + " - reject and error", function(test) {
|
|
|
|
function fn(callback) {
|
|
callback(3);
|
|
throw 4;
|
|
}
|
|
|
|
var count = 0;
|
|
|
|
var promise = asPromise(fn, null);
|
|
promise.then(function() {
|
|
test.fail("promise should not be resolved");
|
|
}).catch(function(err) {
|
|
test.equal(err, 3, "promise should be rejected with err = 3");
|
|
if (++count > 1)
|
|
test.fail("promise should not be rejected twice");
|
|
test.end();
|
|
});
|
|
});
|
|
});
|