mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-04-28 19:56:57 -05:00
50 lines
1.9 KiB
JavaScript
50 lines
1.9 KiB
JavaScript
/**
|
|
* Tests for the username-prefixes chat plugin.
|
|
* @author Annika
|
|
*/
|
|
'use strict';
|
|
|
|
const assert = require('assert').strict;
|
|
const {PrefixManager} = require('../../../dist/server/chat-plugins/username-prefixes');
|
|
const PREFIX_DURATION = 10 * 24 * 60 * 60 * 1000;
|
|
|
|
describe('PrefixManager', function () {
|
|
beforeEach(() => {
|
|
this.prefixManager = new PrefixManager();
|
|
Config.forcedprefixes = [];
|
|
});
|
|
|
|
it('Config.forcedprefixes should reflect prefix additions and removals', () => {
|
|
this.prefixManager.addPrefix('forcedpublic', 'privacy');
|
|
this.prefixManager.addPrefix('nomodchat', 'modchat');
|
|
|
|
assert(Config.forcedprefixes.find(x => x.prefix === 'forcedpublic' && x.type === 'privacy'));
|
|
assert(Config.forcedprefixes.find(x => x.prefix === 'nomodchat' && x.type === 'modchat'));
|
|
|
|
this.prefixManager.removePrefix('forcedpublic', 'privacy');
|
|
this.prefixManager.removePrefix('nomodchat', 'modchat');
|
|
|
|
assert(!Config.forcedprefixes.find(x => x.prefix === 'forcedpublic' && x.type === 'privacy'));
|
|
assert(!Config.forcedprefixes.find(x => x.prefix === 'nomodchat' && x.type === 'modchat'));
|
|
});
|
|
|
|
it('should not overwrite manually specified prefixes', () => {
|
|
const time = Date.now() + PREFIX_DURATION;
|
|
Config.forcedprefixes = [{prefix: 'manual', type: 'modchat', expireAt: time}];
|
|
this.prefixManager.addPrefix('nomodchat', 'modchat');
|
|
|
|
assert.deepEqual(Config.forcedprefixes, [
|
|
{prefix: 'manual', type: 'modchat', expireAt: time},
|
|
{prefix: 'nomodchat', type: 'modchat', expireAt: Config.forcedprefixes.find(x => x.prefix === 'nomodchat').expireAt},
|
|
]);
|
|
});
|
|
|
|
it('should correctly validate prefix types', () => {
|
|
assert.doesNotThrow(() => this.prefixManager.validateType('privacy'));
|
|
assert.doesNotThrow(() => this.prefixManager.validateType('modchat'));
|
|
|
|
assert.throws(() => this.prefixManager.validateType('gibberish'));
|
|
assert.throws(() => this.prefixManager.validateType(''));
|
|
});
|
|
});
|