Spaces:
Paused
Paused
| /** | |
| * Tests for the username-prefixes chat plugin. | |
| * @author Annika | |
| */ | |
| ; | |
| 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('')); | |
| }); | |
| }); | |