diff options
Diffstat (limited to 'test/shared/settings')
| -rw-r--r-- | test/shared/settings/Settings.test.ts | 54 | 
1 files changed, 54 insertions, 0 deletions
diff --git a/test/shared/settings/Settings.test.ts b/test/shared/settings/Settings.test.ts new file mode 100644 index 0000000..ab6af04 --- /dev/null +++ b/test/shared/settings/Settings.test.ts @@ -0,0 +1,54 @@ +import Settings from '../../../src/shared/settings/Settings'; +import { expect } from 'chai'; + +describe('Settings', () => { +  describe('#valueOf', () => { +    it('returns settings by valid settings', () => { +      let x = Settings.fromJSON({ +        keymaps: {}, +        "search": { +          "default": "google", +          "engines": { +            "google": "https://google.com/search?q={}", +          } +        }, +        "properties": {}, +        "blacklist": [] +      }); + +      expect({ +        keymaps: x.keymaps.toJSON(), +        search: x.search.toJSON(), +        properties: x.properties.toJSON(), +        blacklist: x.blacklist.toJSON(), +      }).to.deep.equal({ +        keymaps: {}, +        search: { +          default: "google", +          engines: { +            google: "https://google.com/search?q={}", +          } +        }, +        properties: { +          hintchars: "abcdefghijklmnopqrstuvwxyz", +          smoothscroll: false, +          complete: "sbh" +        }, +        blacklist: [] +      }); +    }); + +    it('sets default settings', () => { +      let value = Settings.fromJSON({}); +      expect(value.keymaps.toJSON()).to.not.be.empty; +      expect(value.properties.toJSON()).to.not.be.empty; +      expect(value.search.defaultEngine).to.be.a('string'); +      expect(value.search.engines).to.be.an('object'); +      expect(value.blacklist.toJSON()).to.be.empty; +    }); + +    it('throws a TypeError with an unknown field', () => { +      expect(() => Settings.fromJSON({ name: 'alice' })).to.throw(TypeError) +    }); +  }); +});  | 
