fix property parser
This commit is contained in:
parent
dda4e7475c
commit
befcff973a
2 changed files with 8 additions and 1 deletions
|
@ -30,7 +30,7 @@ const mustNumber = (v) => {
|
||||||
|
|
||||||
const parseSetOption = (word, types) => {
|
const parseSetOption = (word, types) => {
|
||||||
let [key, value] = word.split('=');
|
let [key, value] = word.split('=');
|
||||||
if (!value) {
|
if (value === undefined) {
|
||||||
value = !key.startsWith('no');
|
value = !key.startsWith('no');
|
||||||
key = value ? key : key.slice(2);
|
key = value ? key : key.slice(2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,12 @@ describe("shared/commands/parsers", () => {
|
||||||
expect(value).to.equal('utf-8');
|
expect(value).to.equal('utf-8');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('parse set empty string', () => {
|
||||||
|
let [key, value] = parsers.parseSetOption('encoding=', { encoding: 'string' });
|
||||||
|
expect(key).to.equal('encoding');
|
||||||
|
expect(value).to.equal('');
|
||||||
|
});
|
||||||
|
|
||||||
it('parse set string', () => {
|
it('parse set string', () => {
|
||||||
let [key, value] = parsers.parseSetOption('history=50', { history: 'number' });
|
let [key, value] = parsers.parseSetOption('history=50', { history: 'number' });
|
||||||
expect(key).to.equal('history');
|
expect(key).to.equal('history');
|
||||||
|
@ -34,6 +40,7 @@ describe("shared/commands/parsers", () => {
|
||||||
it('throws error on invalid property', () => {
|
it('throws error on invalid property', () => {
|
||||||
expect(() => parsers.parseSetOption('charset=utf-8', { charset: 'number' })).to.throw(Error, 'Not number');
|
expect(() => parsers.parseSetOption('charset=utf-8', { charset: 'number' })).to.throw(Error, 'Not number');
|
||||||
expect(() => parsers.parseSetOption('charset=utf-8', { charset: 'boolean' })).to.throw(Error, 'Invalid');
|
expect(() => parsers.parseSetOption('charset=utf-8', { charset: 'boolean' })).to.throw(Error, 'Invalid');
|
||||||
|
expect(() => parsers.parseSetOption('charset=', { charset: 'boolean' })).to.throw(Error, 'Invalid');
|
||||||
expect(() => parsers.parseSetOption('smoothscroll', { smoothscroll: 'string' })).to.throw(Error, 'Invalid');
|
expect(() => parsers.parseSetOption('smoothscroll', { smoothscroll: 'string' })).to.throw(Error, 'Invalid');
|
||||||
expect(() => parsers.parseSetOption('smoothscroll', { smoothscroll: 'number' })).to.throw(Error, 'Invalid');
|
expect(() => parsers.parseSetOption('smoothscroll', { smoothscroll: 'number' })).to.throw(Error, 'Invalid');
|
||||||
})
|
})
|
||||||
|
|
Reference in a new issue