diff options
Diffstat (limited to 'test/background/usecases/parsers.test.ts')
-rw-r--r-- | test/background/usecases/parsers.test.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/background/usecases/parsers.test.ts b/test/background/usecases/parsers.test.ts new file mode 100644 index 0000000..f3a64eb --- /dev/null +++ b/test/background/usecases/parsers.test.ts @@ -0,0 +1,34 @@ +import * as parsers from 'background/usecases/parsers'; + +describe("shared/commands/parsers", () => { + describe("#parsers.parseSetOption", () => { + it('parse set string', () => { + let [key, value] = parsers.parseSetOption('hintchars=abcdefgh'); + expect(key).to.equal('hintchars'); + expect(value).to.equal('abcdefgh'); + }); + + it('parse set empty string', () => { + let [key, value] = parsers.parseSetOption('hintchars='); + expect(key).to.equal('hintchars'); + expect(value).to.equal(''); + }); + + it('parse set boolean', () => { + let [key, value] = parsers.parseSetOption('smoothscroll'); + expect(key).to.equal('smoothscroll'); + expect(value).to.be.true; + + [key, value] = parsers.parseSetOption('nosmoothscroll'); + expect(key).to.equal('smoothscroll'); + expect(value).to.be.false; + }); + + it('throws error on unknown property', () => { + expect(() => parsers.parseSetOption('encoding=utf-8')).to.throw(Error, 'Unknown'); + expect(() => parsers.parseSetOption('paste')).to.throw(Error, 'Unknown'); + expect(() => parsers.parseSetOption('nopaste')).to.throw(Error, 'Unknown'); + expect(() => parsers.parseSetOption('smoothscroll=yes')).to.throw(Error, 'Invalid argument'); + }); + }); +}); |