diff --git a/src/classes/__tests__/CommandParser.ts b/src/classes/__tests__/CommandParser.ts index 4bb991916..08eda0cf8 100644 --- a/src/classes/__tests__/CommandParser.ts +++ b/src/classes/__tests__/CommandParser.ts @@ -38,3 +38,17 @@ it('can parse item id commands', () => { const params = CommandParser.parseParams(CommandParser.removeCommand(message)); expect(params).toEqual({ id: 10151297782, intent: 'sell', sell: { keys: 1 } }); }); + +it('can parse values with &', () => { + let message = '!changeName name=Buying spells & hats&i_am_sure=i_am_sure'; + let params = CommandParser.parseParams(CommandParser.removeCommand(message)); + expect(params).toEqual({ name: 'Buying spells & hats', i_am_sure: 'i_am_sure' }); + + message = `!test key1=value1&key2=value2&&key3=3`; + params = CommandParser.parseParams(CommandParser.removeCommand(message)); + expect(params).toEqual({ key1: 'value1', key2: 'value2&', key3: 3 }); + + message = `!test key1=value1&key2=&value2&&key3=[value3]`; + params = CommandParser.parseParams(CommandParser.removeCommand(message)); + expect(params).toEqual({ key1: 'value1', key2: '&value2&', key3: ['value3'] }); +});