Spaces:
Running
Running
/** | |
* Tests for the Help room auto-answerer. | |
* Written by Mia. | |
* @author mia-pi-git | |
*/ | |
; | |
const assert = require('assert').strict; | |
const Responder = require('../../../dist/server/chat-plugins/responder').AutoResponder; | |
const room = Rooms.createChatRoom('etheria'); | |
const Help = new Responder(room); | |
describe('Autoresponder', () => { | |
it('should only return true on added regexes', () => { | |
Help.data.pairs.catra = []; | |
Help.data.pairs.catra.push(Help.stringRegex(`Hey & Adora`)); | |
assert(Help.test('Hey, Adora', 'catra')); | |
assert(!Help.test('Hello, Adora', 'catra')); | |
}); | |
it('should produce valid regexes', () => { | |
const regexString = Help.stringRegex(`uwu & awa`); | |
assert.equal(regexString, "(?=.*?(uwu))(?=.*?(awa))"); | |
const regex = new RegExp(regexString); | |
assert(regex.test('uwu awa')); | |
}); | |
it('should handle |, &, and ! correctly', () => { | |
const and = new RegExp(Help.stringRegex(`Horde & Prime`)); | |
assert(and.test('Horde Prime')); | |
assert(!and.test('Horde')); | |
const or = new RegExp(Help.stringRegex(`she-ra|sea-ra`)); | |
assert(or.test('sea-ra')); | |
assert(or.test(`she-ra`)); | |
assert(!or.test('ADVENTURE')); | |
const ignore = new RegExp(Help.stringRegex(`!Hordak`)); | |
assert(ignore.test(`FOR THE HONOR OF GREYSKULL`)); | |
assert(!ignore.test('Hordak')); | |
}); | |
}); | |