Merge branch 'develop' into renovate/winston-3.x
commit
3bc3557796
@ -1,5 +1,6 @@
|
||||
.log
|
||||
.idea
|
||||
.nyc_output
|
||||
data
|
||||
package-lock.json
|
||||
node_modules
|
||||
|
@ -0,0 +1,10 @@
|
||||
const sinon = require('sinon'),
|
||||
chai = require('chai');
|
||||
|
||||
beforeEach(() => {
|
||||
this.sandbox = sinon.createSandbox();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
this.sandbox.restore();
|
||||
});
|
@ -0,0 +1,487 @@
|
||||
const mockobjects = require('./mockobjects.js'),
|
||||
sinon = require('sinon'),
|
||||
assert = require('assert'),
|
||||
rewire = require('rewire');
|
||||
let Discord = require("discord.js");
|
||||
|
||||
mockobjects.mockLogger = {
|
||||
error: () => {},
|
||||
warn: () => {},
|
||||
info: () => {},
|
||||
verbose: () => {},
|
||||
debug: () => {}
|
||||
};
|
||||
|
||||
describe('lib/utils', function() {
|
||||
const utils = require('../lib/utils.js');
|
||||
|
||||
describe('#getSplitDuration', function() {
|
||||
it('returns an object from milliseconds', function() {
|
||||
assert(utils.getSplitDuration(1000).seconds === 1);
|
||||
assert(utils.getSplitDuration(360000).minutes === 6);
|
||||
assert(utils.getSplitDuration(3600000).hours === 1);
|
||||
assert(utils.getSplitDuration(100).milliseconds === 100);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getExtension', function() {
|
||||
it('returns the correct extension for a filename', function(done) {
|
||||
assert(utils.getExtension('test.txt') === '.txt');
|
||||
assert(utils.getExtension('test.tar.gz') === '.gz');
|
||||
assert(utils.getExtension('../lib/utils.js') === '.js');
|
||||
assert(utils.getExtension('.gitignore') === '.gitignore');
|
||||
done();
|
||||
});
|
||||
|
||||
it('returns null if the file has no extension or is no file', function(done) {
|
||||
assert(utils.getExtension('filenameisstrange') === null);
|
||||
assert(utils.getExtension('...') === null);
|
||||
assert(utils.getExtension(Object.create({})) === null);
|
||||
assert(utils.getExtension(null) === null);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
describe('#YouTube', function() {
|
||||
|
||||
it('returns if an url is valid', function(done) {
|
||||
assert(utils.YouTube.isValidUrl('https://www.youtube.com/watch?v=VID-ID'));
|
||||
assert(utils.YouTube.isValidUrl('https://youtube.com/playlist?list=PL-ID'));
|
||||
assert(utils.YouTube.isValidUrl('https://youtube.com/watch?v='));
|
||||
assert(utils.YouTube.isValidUrl('https://www.youtube.com/playlist?list='));
|
||||
assert(utils.YouTube.isValidUrl('https://youtu.be/VIDID'));
|
||||
assert(utils.YouTube.isValidUrl('https://youtu.be/'));
|
||||
assert(utils.YouTube.isValidUrl('http://youtube.com/watch?v=VID-ID'));
|
||||
assert(utils.YouTube.isValidUrl('http://youtube.com/playlist?list=PL-ID'));
|
||||
assert(utils.YouTube.isValidUrl('http://youtube.com/watch?v='));
|
||||
assert(utils.YouTube.isValidUrl('http://youtube.com/playlist?list='));
|
||||
assert(!utils.YouTube.isValidUrl('https://github.com'));
|
||||
assert(!utils.YouTube.isValidUrl('notevenanurl'));
|
||||
done();
|
||||
});
|
||||
|
||||
it('returns if an url is a valid entity url', function(done) {
|
||||
assert(utils.YouTube.isValidEntityUrl('https://youtube.com/watch?v=VID-ID'));
|
||||
assert(utils.YouTube.isValidEntityUrl('https://youtube.com/playlist?list=PL-ID'));
|
||||
assert(utils.YouTube.isValidEntityUrl('https://youtu.be/VIDID'));
|
||||
assert(utils.YouTube.isValidEntityUrl('http://www.youtube.com/watch?v=VID-ID'));
|
||||
assert(utils.YouTube.isValidEntityUrl('http://youtube.com/playlist?list=PL-ID'));
|
||||
assert(!utils.YouTube.isValidEntityUrl('https://youtube.com/watch?v='));
|
||||
assert(!utils.YouTube.isValidEntityUrl('https://youtube.com/playlist?list='));
|
||||
assert(!utils.YouTube.isValidEntityUrl('https://youtu.be/'));
|
||||
assert(!utils.YouTube.isValidEntityUrl('https://github.com'));
|
||||
assert(!utils.YouTube.isValidEntityUrl('notevenanurl'));
|
||||
done();
|
||||
});
|
||||
|
||||
it('returns if an url is a valid playlist url', function(done) {
|
||||
assert(!utils.YouTube.isValidPlaylistUrl('https://youtube.com/watch?v=VID-ID'));
|
||||
assert(utils.YouTube.isValidPlaylistUrl('https://youtube.com/playlist?list=PL-ID'));
|
||||
assert(!utils.YouTube.isValidPlaylistUrl('https://youtu.be/VIDID'));
|
||||
assert(!utils.YouTube.isValidPlaylistUrl('http://www.youtube.com/watch?v=VID-ID'));
|
||||
assert(utils.YouTube.isValidPlaylistUrl('http://youtube.com/playlist?list=PL-ID'));
|
||||
assert(!utils.YouTube.isValidPlaylistUrl('http://youtube.com/playlist?list='));
|
||||
assert(!utils.YouTube.isValidPlaylistUrl('https://github.com'));
|
||||
assert(!utils.YouTube.isValidPlaylistUrl('notevenanurl'));
|
||||
done();
|
||||
});
|
||||
|
||||
it('returns if an url is a valid video url', function(done) {
|
||||
assert(utils.YouTube.isValidVideoUrl('https://youtube.com/watch?v=VID-ID'));
|
||||
assert(!utils.YouTube.isValidVideoUrl('https://youtube.com/playlist?list=PL-ID'));
|
||||
assert(utils.YouTube.isValidVideoUrl('https://youtu.be/VIDID'));
|
||||
assert(utils.YouTube.isValidVideoUrl('http://www.youtube.com/watch?v=VID-ID'));
|
||||
assert(!utils.YouTube.isValidVideoUrl('http://youtube.com/playlist?list=PL-ID'));
|
||||
assert(!utils.YouTube.isValidVideoUrl('https://youtube.com/watch?v='));
|
||||
assert(!utils.YouTube.isValidVideoUrl('https://youtu.be/'));
|
||||
assert(!utils.YouTube.isValidVideoUrl('https://github.com'));
|
||||
assert(!utils.YouTube.isValidVideoUrl('notevenanurl'));
|
||||
done();
|
||||
});
|
||||
|
||||
it('returns the id for a playlist url', function(done) {
|
||||
let getPlId = utils.YouTube.getPlaylistIdFromUrl;
|
||||
assert('PL-ID' === getPlId('https://youtube.com/playlist?list=PL-ID'));
|
||||
assert('PL-ID' === getPlId('http://youtube.com/playlist?list=PL-ID'));
|
||||
assert('PL-ID' === getPlId('https://www.youtube.com/playlist?list=PL-ID'));
|
||||
assert('PL-ID' === getPlId('https://www.youtube.com/playlist?list=PL-ID'));
|
||||
assert(null === getPlId('https://www.youtube.com/playlist?list='));
|
||||
done();
|
||||
});
|
||||
|
||||
it('returns the id for a video url', function(done) {
|
||||
let getVidId = utils.YouTube.getVideoIdFromUrl;
|
||||
assert('VID-ID' === getVidId('https://youtube.com/watch?v=VID-ID'));
|
||||
assert('VID-ID' === getVidId('http://youtube.com/watch?v=VID-ID'));
|
||||
assert('VID-ID' === getVidId('https://www.youtube.com/watch?v=VID-ID'));
|
||||
assert('VID-ID' === getVidId('https://youtu.be/VID-ID'));
|
||||
assert(null === getVidId('https://www.faketube.com/watch?v=VID-ID'));
|
||||
assert(null === getVidId('tu.be/VID-ID'));
|
||||
assert(null === getVidId('https://youtube.com/watch?v='));
|
||||
assert(null === getVidId('https://youtu.be/'));
|
||||
done();
|
||||
});
|
||||
|
||||
it('returns the video url for an id', function(done) {
|
||||
let getVid4Id = utils.YouTube.getVideoUrlFromId;
|
||||
assert('https://www.youtube.com/watch?v=VID-ID', getVid4Id('VID-ID'));
|
||||
assert('https://www.youtube.com/watch?v=12345567885432', getVid4Id('12345567885432'));
|
||||
done();
|
||||
});
|
||||
|
||||
it('returns the thumbnail url for a video url', function(done) {
|
||||
let getVid4Id = utils.YouTube.getVideoUrlFromId;
|
||||
let getTh4Id = utils.YouTube.getVideoThumbnailUrlFromUrl;
|
||||
assert('https://i3.ytimg.com/vi/VIDID/maxresdefault.jpg', getTh4Id(getVid4Id('VIDID')));
|
||||
assert('https://i3.ytimg.com/vi/1234/maxresdefault.jpg', getTh4Id(getVid4Id('1234')));
|
||||
done();
|
||||
})
|
||||
});
|
||||
|
||||
describe('#ConfigVerifyer', function() {
|
||||
it('verifies correct configs', function(done) {
|
||||
const testObj = {
|
||||
'key1': {
|
||||
'key2': 'value2',
|
||||
'key3': 'value3'
|
||||
},
|
||||
'key4': [],
|
||||
'key5': false,
|
||||
'key6': 'a longer string',
|
||||
'key7': {
|
||||
'key8': [{
|
||||
'key9': 'okay...'
|
||||
}]
|
||||
}
|
||||
};
|
||||
let confVer = new utils.ConfigVerifyer(testObj, ['key1', 'key1.key3']);
|
||||
assert(confVer.verifyConfig(mockobjects.mockLogger));
|
||||
confVer = new utils.ConfigVerifyer(testObj, ['key1', 'key1.key2', 'key7.key8.0.key9']);
|
||||
assert(confVer.verifyConfig(mockobjects.mockLogger));
|
||||
confVer = new utils.ConfigVerifyer(testObj, ['key4', 'key1.key2', 'key5', 'key7']);
|
||||
assert(confVer.verifyConfig(mockobjects.mockLogger));
|
||||
done();
|
||||
});
|
||||
|
||||
it('rejects invalid configs', function(done) {
|
||||
const testObj = {
|
||||
};
|
||||
let modifiedMockLogger = mockobjects.mockLogger;
|
||||
modifiedMockLogger.error = (msg) => {};
|
||||
let confVer = new utils.ConfigVerifyer(testObj, ['key1', 'key1.key3']);
|
||||
assert(!confVer.verifyConfig(modifiedMockLogger));
|
||||
confVer = new utils.ConfigVerifyer(testObj, ['key1', 'key1.key2', 'key7.key8.0.key9']);
|
||||
assert(!confVer.verifyConfig(modifiedMockLogger));
|
||||
done();
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
describe('lib/music', function() {
|
||||
|
||||
const music = rewire('../lib/music');
|
||||
const Readable = require('stream').Readable;
|
||||
|
||||
music.__set__("logger", mockobjects.mockLogger);
|
||||
music.__set__("yttl", (id, cb) => {
|
||||
cb(null, 'test');
|
||||
});
|
||||
music.__set__('ytdl', () => {
|
||||
let s = new Readable();
|
||||
s._read = () => {};
|
||||
s.push('chunkofdataabc');
|
||||
s.push(null);
|
||||
return s;
|
||||
});
|
||||
|
||||
describe('#DJ', function () {
|
||||
|
||||
it('connects to a VoiceChannel', function (done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(()=> {
|
||||
assert(dj.connected);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('listens on Repeat', function () {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.current = {'url': '', 'title': ''};
|
||||
dj.listenOnRepeat = true;
|
||||
|
||||
assert(dj.repeat);
|
||||
assert(dj.queue.length > 0);
|
||||
});
|
||||
|
||||
it('plays Files', function (done) {
|
||||
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(() => {
|
||||
dj.playFile();
|
||||
assert(dj.playing);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('plays YouTube urls', function (done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(() => {
|
||||
dj.playYouTube('http://www.youtube.com/watch?v=ABCDEFGHIJK');
|
||||
setTimeout(() => {
|
||||
assert(dj.playing);
|
||||
done();
|
||||
}, 100);
|
||||
});
|
||||
});
|
||||
|
||||
it('gets the video name', function (done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.getVideoName('http://www.youtube.com/watch?v=ABCDEFGHIJK').then((name) => {
|
||||
assert(name === 'test');
|
||||
done();
|
||||
})
|
||||
});
|
||||
|
||||
it('sets the volume', function(done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(() => {
|
||||
dj.playFile();
|
||||
dj.setVolume(100);
|
||||
assert(dj.volume === 100);
|
||||
done();
|
||||
})
|
||||
});
|
||||
|
||||
it('pauses playback', function(done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(() => {
|
||||
dj.playFile();
|
||||
dj.pause();
|
||||
done();
|
||||
})
|
||||
});
|
||||
|
||||
it('resumes playback', function(done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(() => {
|
||||
dj.playFile();
|
||||
dj.resume();
|
||||
done();
|
||||
})
|
||||
});
|
||||
|
||||
it('stops playback', function(done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(() => {
|
||||
dj.playFile();
|
||||
assert(dj.playing);
|
||||
dj.stop();
|
||||
assert(!dj.conn && !dj.disp);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('skips songs', function(done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(() => {
|
||||
dj.playYouTube('http://www.youtube.com/watch?v=ABCDEFGHIJK');
|
||||
dj.playYouTube('http://www.youtube.com/watch?v=ABCDEFGHIJK');
|
||||
dj.playYouTube('http://www.youtube.com/watch?v=ABCDEFGHIJK');
|
||||
dj.playYouTube('http://www.youtube.com/watch?v=ABCDEFGHIJK');
|
||||
dj.skip();
|
||||
dj.skip();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('returns a playlist', function(done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(() => {
|
||||
dj.queue = [{
|
||||
'title': 'title',
|
||||
'url': 'http://www.youtube.com/watch?v=ABCDEFGHIJK'}, {
|
||||
'title': 'title',
|
||||
'url': 'http://www.youtube.com/watch?v=ABCDEFGHIJK'}];
|
||||
assert(dj.playlist.length > 0);
|
||||
done();
|
||||
}).catch(() => done());
|
||||
});
|
||||
|
||||
it('clears the queue', function(done) {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
dj.connect().then(() => {
|
||||
dj.queue = [{
|
||||
'title': 'title',
|
||||
'url': 'http://www.youtube.com/watch?v=ABCDEFGHIJK'}, {
|
||||
'title': 'title',
|
||||
'url': 'http://www.youtube.com/watch?v=ABCDEFGHIJK'}];
|
||||
dj.clear();
|
||||
assert(dj.queue.length === 0);
|
||||
done();
|
||||
}).catch(() => done());
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
describe('lib/cmd', function() {
|
||||
const cmd = rewire('../lib/cmd');
|
||||
cmd.__set__("logger", mockobjects.mockLogger);
|
||||
|
||||
describe('#Servant', function() {
|
||||
|
||||
it('creates commands', function() {
|
||||
let servant = new cmd.Servant('');
|
||||
servant.createCommand(mockobjects.mockCommand, mockobjects.mockCommand.textReply);
|
||||
assert(servant.commands['test']);
|
||||
servant.createCommand(mockobjects.mockCommand, mockobjects.mockCommand.promiseReply);
|
||||
assert(servant.commands['test']);
|
||||
servant.createCommand(mockobjects.mockCommand, mockobjects.mockCommand.richEmbedReply);
|
||||
assert(servant.commands['test']);
|
||||
});
|
||||
|
||||
it('removes commands', function() {
|
||||
let servant = new cmd.Servant('');
|
||||
servant.createCommand(mockobjects.mockCommand, mockobjects.mockCommand.textReply);
|
||||
assert(servant.commands['test']);
|
||||
servant.removeCommand('test');
|
||||
assert(!servant.commands['test'])
|
||||
});
|
||||
|
||||
it('parses commands', function() {
|
||||
let spy = sinon.spy();
|
||||
let servant = new cmd.Servant('');
|
||||
servant.createCommand(mockobjects.mockCommand, spy);
|
||||
assert(servant.commands['test']);
|
||||
assert(!spy.called);
|
||||
servant.parseCommand({
|
||||
content: 'test',
|
||||
author: {
|
||||
tag: undefined
|
||||
}
|
||||
});
|
||||
assert(spy.called);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('lib/guilding', function() {
|
||||
const guilding = rewire('../lib/guilding');
|
||||
const servercommands = require('../commands/servercommands');
|
||||
const utils = require('../lib/utils');
|
||||
guilding.__set__("sqlite3", null);
|
||||
guilding.__set__("utils", {
|
||||
dirExistence: (file, callback) => {
|
||||
},
|
||||
sql: utils.sql,
|
||||
YouTube: utils.YouTube
|
||||
});
|
||||
guilding.setLogger(mockobjects.mockLogger);
|
||||
|
||||
describe('#GuildHandler', function() {
|
||||
|
||||
it('initializes', function() {
|
||||
let gh = new guilding.GuildHandler('test', '');
|
||||
gh.db = new mockobjects.MockDatabase('', ()=>{});
|
||||
gh.createTables();
|
||||
gh.registerMusicCommands();
|
||||
gh.ready = true;
|
||||
assert(gh.ready);
|
||||
});
|
||||
|
||||
it('destroyes itself', function() {
|
||||
let gh = new guilding.GuildHandler('test', '');
|
||||
gh.db = new mockobjects.MockDatabase('', ()=>{});
|
||||
gh.createTables();
|
||||
gh.registerMusicCommands();
|
||||
gh.ready = true;
|
||||
gh.destroy();
|
||||
assert(!gh.dj.conn);
|
||||
});
|
||||
|
||||
it('answers messages', function() {
|
||||
let gh = new guilding.GuildHandler('test', '');
|
||||
gh.db = new mockobjects.MockDatabase('', ()=>{});
|
||||
gh.createTables();
|
||||
gh.registerMusicCommands();
|
||||
gh.ready = true;
|
||||
let msgSpy = sinon.spy();
|
||||
gh.answerMessage({
|
||||
content: 'test',
|
||||
author: {
|
||||
tag: undefined
|
||||
},
|
||||
reply: msgSpy,
|
||||
channel: {
|
||||
send: msgSpy
|
||||
}
|
||||
}, 'Answer');
|
||||
assert(msgSpy.called);
|
||||
});
|
||||
|
||||
it('handles messages', function() {
|
||||
let gh = new guilding.GuildHandler('test', '~');
|
||||
gh.db = new mockobjects.MockDatabase('', ()=>{});
|
||||
gh.ready = true;
|
||||
let cbSpy = sinon.spy();
|
||||
gh.servant.createCommand(mockobjects.mockCommand, cbSpy);
|
||||
assert(gh.servant.commands['~test']);
|
||||
gh.handleMessage({
|
||||
content: '~test',
|
||||
author: {
|
||||
tag: undefined
|
||||
}});
|
||||
assert(cbSpy.called);
|
||||
});
|
||||
|
||||
it('connects and plays', function(done) {
|
||||
const music = rewire('../lib/music');
|
||||
const Readable = require('stream').Readable;
|
||||
|
||||
music.__set__("logger", mockobjects.mockLogger);
|
||||
music.__set__("yttl", (id, cb) => {
|
||||
cb(null, 'test');
|
||||
});
|
||||
music.__set__('ytdl', () => {
|
||||
let s = new Readable();
|
||||
s._read = () => {};
|
||||
s.push('chunkofdataabc');
|
||||
s.push(null);
|
||||
return s;
|
||||
});
|
||||
let gh = new guilding.GuildHandler('test', '~');
|
||||
gh.db = new mockobjects.MockDatabase('', ()=>{});
|
||||
gh.ready = true;
|
||||
gh.dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
gh.connectAndPlay(mockobjects.mockVoicechannel, 'test', false).then(() => {
|
||||
done();
|
||||
})
|
||||
});
|
||||
|
||||
it('handles all servercommands', function() {
|
||||
let gh = new guilding.GuildHandler('test', '~');
|
||||
gh.db = new mockobjects.MockDatabase('', ()=>{});
|
||||
gh.registerMusicCommands();
|
||||
gh.ready = true;
|
||||
let msgSpy = sinon.spy();
|
||||
let msg = {
|
||||
content: 'test',
|
||||
author: {
|
||||
tag: undefined
|
||||
},
|
||||
reply: msgSpy,
|
||||
channel: {
|
||||
send: msgSpy
|
||||
}
|
||||
};
|
||||
|
||||
for (let category of Object.keys(servercommands)) {
|
||||
for (let command of Object.keys(servercommands[category])) {
|
||||
msg.content = '~' + command;
|
||||
gh.handleMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
assert(msgSpy.called);
|
||||
});
|
||||
});
|
||||
});
|
@ -1,39 +0,0 @@
|
||||
const cmd = require("../lib/cmd.js"),
|
||||
mockobjects = require("./mockobjects.js"),
|
||||
servercmd = require('../commands/servercommands');
|
||||
|
||||
function main() {
|
||||
cmd.setLogger(mockobjects.mockLogger);
|
||||
console.log('Creating new servant instance');
|
||||
let servant = new cmd.Servant('#');
|
||||
console.log('registering all music commands...');
|
||||
|
||||
for (let [key, value] of Object.entries(servercmd.music)) {
|
||||
servant.createCommand(value, () => {
|
||||
console.log(` - invoked ${value.name} callback`);
|
||||
});
|
||||
}
|
||||
|
||||
console.log('parsing and deleting all music commands...');
|
||||
for (let [key, value] of Object.entries(servercmd.music)) {
|
||||
servant.parseCommand({
|
||||
content: '#' + value.name,
|
||||
author: {
|
||||
tag: undefined
|
||||
}
|
||||
});
|
||||
servant.removeCommand(value.name);
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
if (typeof require !== "undefined" && require.main === module) {
|
||||
process.on("unhandledRejection", (reason, p) => {
|
||||
console.error("Unhandled Rejection at: Promise", p, "reason:", reason);
|
||||
throw Error("Promise rejection");
|
||||
});
|
||||
|
||||
setTimeout(() => process.exit(1), 60000);
|
||||
main();
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
const guilding = require("../lib/guilding.js")
|
||||
music = require("../lib/music.js"),
|
||||
mockobjects = require("./mockobjects.js"),
|
||||
servercmd = require("../commands/servercommands");
|
||||
|
||||
function main() {
|
||||
guilding.setLogger(mockobjects.mockLogger);
|
||||
music.setLogger(mockobjects.mockLogger);
|
||||
console.log('Creating guildHandler instance');
|
||||
let guildHandler = new guilding.GuildHandler('TEST', '#');
|
||||
guildHandler.dj = new music.DJ(mockobjects.mockVoicechannel);
|
||||
|
||||
setTimeout(() => {
|
||||
for (let [key, value] of Object.entries(servercmd.music)) {
|
||||
guildHandler.handleMessage({
|
||||
content: '#' + value.name + ' arg1 arg2 arg3 arg4',
|
||||
author: {
|
||||
tag: undefined,
|
||||
id: 0,
|
||||
createdTimestamp: new Date(),
|
||||
username: 'TEST'
|
||||
},
|
||||
member: {
|
||||
voiceChannel: mockobjects.mockVoicechannel
|
||||
},
|
||||
channel: mockobjects.mockChannel,
|
||||
reply: mockobjects.mockChannel.send
|
||||
});
|
||||
}
|
||||
|
||||
guildHandler.destroy();
|
||||
process.exit(0);
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
if (typeof require !== "undefined" && require.main === module) {
|
||||
process.on("unhandledRejection", (reason, p) => {
|
||||
console.error("Unhandled Rejection at: Promise", p, "reason:", reason);
|
||||
throw Error("Promise rejection");
|
||||
});
|
||||
|
||||
setTimeout(() => process.exit(1), 60000);
|
||||
main();
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
const music = require('../lib/music.js'),
|
||||
mockobjects = require('./mockobjects.js');
|
||||
|
||||
function main() {
|
||||
let dj = new music.DJ(mockobjects.mockVoicechannel)
|
||||
music.setLogger(mockobjects.mockLogger);
|
||||
dj.connect().then(() => {
|
||||
console.log('connected', dj.connected);
|
||||
dj.playFile('test');
|
||||
dj.playYouTube('https://www.youtube.com/watch?v=TEST');
|
||||
dj.setVolume(1);
|
||||
dj.pause();
|
||||
dj.resume();
|
||||
dj.skip();
|
||||
dj.stop();
|
||||
dj.shuffle();
|
||||
console.log('dj.playlist: ', dj.playlist);
|
||||
console.log('dj.song: ', dj.song);
|
||||
dj.clear();
|
||||
process.exit(0);
|
||||
});
|
||||
}
|
||||
|
||||
// Executing the main function
|
||||
if (typeof require !== 'undefined' && require.main === module) {
|
||||
process.on('unhandledRejection', (reason, p) => {
|
||||
console.error('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||
throw Error('Promise rejection');
|
||||
});
|
||||
|
||||
setTimeout(() => process.exit(1), 60000);
|
||||
main();
|
||||
}
|
Loading…
Reference in New Issue