Files
discord.js/test/bot.js

134 lines
2.9 KiB
JavaScript

/*
this file should be used for travis builds only
*/
var Discord = require("../");
var mybot = new Discord.Client();
var server, channel, message, sentMessage = false;
function init(){
console.log("preparing...");
}
mybot.once("ready", function(){
console.log("ready! beginning tests");
success1();
});
function success1(){ //make server
mybot.createServer("test-server", "london").then(success2).catch(error);
}
function success2(_server){ //make channel
console.log("test 1 successful");
server = _server;
mybot.createChannel(server, "test-channel", "text").then(success3).catch(error);
}
function success3(_channel){ //send message
console.log("test 2 successful");
channel = _channel;
mybot.sendMessage(channel, [mybot.user.avatarURL, "an", "array", "of", "messages"]).then(success4).catch(error);
}
function success4(_message){ //delete message
console.log("test 3 successful");
message = _message;
mybot.deleteMessage(message).then(success5).catch(error);
}
function success5(){ //send ping
console.log("test 4 successful");
mybot.sendMessage(channel, "ping").then(function(msg){
message = msg;
}).catch(error);
setTimeout(checkError, 30 * 1000);
}
function success7(){
console.log("test 6 successful");
mybot.deleteChannel(channel).then(success8).catch(error);
}
function success8(){
console.log("test 7 successful");
mybot.createInvite(server).then(success9).catch(error);
}
function success9(invite){
console.log("test 8 successful");
if(invite.code){
success10();
}else{
error("reference error");
}
}
function success10(){
console.log("test 9 succesful");
mybot.leaveServer(server).then(success11).catch(error);
}
function success11(){
console.log("test 10 succesful");
mybot.joinServer(process.env["ds_invite"]).then(success12).catch(error);
}
function success12(_server){
console.log("test 11 successful");
server = mybot.getServer("id", _server.id);
if(server){
success13();
}else{
error("reference error");
}
}
function success13(){
console.log("test 12 successful");
mybot.sendFile(server, "./test/image.png").then(function(msg){
mybot.deleteMessage(msg).then(success14).catch(error);
}).catch(error);
}
function success14(msg){
console.log("test 13 successful");
mybot.leaveServer(server).then(success15).catch(error);
}
function success15(){
console.log("test 14 successful");
mybot.logout().then(done).catch(error);
}
function done(){
console.log("All tests completed succesfully.");
process.exit(0);
}
function checkError(){
if(!sentMessage){
error("failure receiving messages");
}
}
function error(err){
console.log("error", err);
process.exit(1);
}
mybot.on("message", function(message){
if(message.channel.equals(channel)){
if(message.content === "ping"){
console.log("test 5 successful");
sentMessage = true;
mybot.updateMessage(message, "pong").then(success7).catch(error);
}
}
});
mybot.login(process.env["ds_email"], process.env["ds_password"]).then(init).catch(error);