aboutsummaryrefslogtreecommitdiff
path: root/test/shared/settings
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2019-05-05 08:03:29 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2019-05-06 22:17:18 +0900
commita0882bbceb7ed71d56bf8557620449fbc3f19749 (patch)
treef2087d44f21dd68fc3584f62cfb9b62ae58bab2b /test/shared/settings
parentd01db82c0dca352de2d7644c383d388fc3ec0366 (diff)
Declare setting types
Diffstat (limited to 'test/shared/settings')
-rw-r--r--test/shared/settings/validator.test.ts81
-rw-r--r--test/shared/settings/values.test.ts138
2 files changed, 0 insertions, 219 deletions
diff --git a/test/shared/settings/validator.test.ts b/test/shared/settings/validator.test.ts
deleted file mode 100644
index 9bbfa3e..0000000
--- a/test/shared/settings/validator.test.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-import { validate } from 'shared/settings/validator';
-
-describe("setting validator", () => {
- describe("unknown top keys", () => {
- it('throws an error for unknown settings', () => {
- let settings = { keymaps: {}, poison: 123 };
- let fn = validate.bind(undefined, settings)
- expect(fn).to.throw(Error, 'poison');
- })
- });
-
- describe("keymaps settings", () => {
- it('throws an error for unknown operation', () => {
- let settings = {
- keymaps: {
- a: { 'type': 'scroll.home' },
- b: { 'type': 'poison.dressing' },
- }
- };
- let fn = validate.bind(undefined, settings)
- expect(fn).to.throw(Error, 'poison.dressing');
- });
- });
-
- describe("search settings", () => {
- it('throws an error for invalid search engine name', () => {
- let settings = {
- search: {
- default: 'google',
- engines: {
- 'google': 'https://google.com/search?q={}',
- 'cherry pie': 'https://cherypie.com/search?q={}',
- }
- }
- };
- let fn = validate.bind(undefined, settings)
- expect(fn).to.throw(Error, 'cherry pie');
- });
-
- it('throws an error for no {}-placeholder', () => {
- let settings = {
- search: {
- default: 'google',
- engines: {
- 'google': 'https://google.com/search?q={}',
- 'yahoo': 'https://search.yahoo.com/search',
- }
- }
- };
- let fn = validate.bind(undefined, settings)
- expect(fn).to.throw(Error, 'yahoo');
- });
-
- it('throws an error for no default engines', () => {
- let settings = {
- search: {
- engines: {
- 'google': 'https://google.com/search?q={}',
- 'yahoo': 'https://search.yahoo.com/search?q={}',
- }
- }
- };
- let fn = validate.bind(undefined, settings)
- expect(fn).to.throw(Error, 'Default engine');
- });
-
- it('throws an error for invalid default engine', () => {
- let settings = {
- search: {
- default: 'twitter',
- engines: {
- 'google': 'https://google.com/search?q={}',
- 'yahoo': 'https://search.yahoo.com/search?q={}',
- }
- }
- };
- let fn = validate.bind(undefined, settings)
- expect(fn).to.throw(Error, 'twitter');
- });
- });
-});
diff --git a/test/shared/settings/values.test.ts b/test/shared/settings/values.test.ts
deleted file mode 100644
index c72824d..0000000
--- a/test/shared/settings/values.test.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-import * as values from 'shared/settings/values';
-
-describe("settings values", () => {
- describe('valueFromJson', () => {
- it('return object from json string', () => {
- let json = `{
- "keymaps": { "0": {"type": "scroll.home"}},
- "search": { "default": "google", "engines": { "google": "https://google.com/search?q={}" }},
- "blacklist": [ "*.slack.com"],
- "properties": {
- "mystr": "value",
- "mynum": 123,
- "mybool": true
- }
- }`;
- let value = values.valueFromJson(json);
-
- expect(value.keymaps).to.deep.equal({ 0: {type: "scroll.home"}});
- expect(value.search).to.deep.equal({ default: "google", engines: { google: "https://google.com/search?q={}"} });
- expect(value.blacklist).to.deep.equal(["*.slack.com"]);
- expect(value.properties).to.have.property('mystr', 'value');
- expect(value.properties).to.have.property('mynum', 123);
- expect(value.properties).to.have.property('mybool', true);
- });
- });
-
- describe('valueFromForm', () => {
- it('returns value from form', () => {
- let form = {
- keymaps: {
- 'scroll.vertically?{"count":1}': 'j',
- 'scroll.home': '0',
- },
- search: {
- default: 'google',
- engines: [['google', 'https://google.com/search?q={}']],
- },
- blacklist: ['*.slack.com'],
- "properties": {
- "mystr": "value",
- "mynum": 123,
- "mybool": true,
- }
- };
- let value = values.valueFromForm(form);
-
- expect(value.keymaps).to.have.deep.property('j', { type: "scroll.vertically", count: 1 });
- expect(value.keymaps).to.have.deep.property('0', { type: "scroll.home" });
- expect(JSON.stringify(value.search)).to.deep.equal(JSON.stringify({ default: "google", engines: { google: "https://google.com/search?q={}"} }));
- expect(value.search).to.deep.equal({ default: "google", engines: { google: "https://google.com/search?q={}"} });
- expect(value.blacklist).to.deep.equal(["*.slack.com"]);
- expect(value.properties).to.have.property('mystr', 'value');
- expect(value.properties).to.have.property('mynum', 123);
- expect(value.properties).to.have.property('mybool', true);
- });
-
- it('convert from empty form', () => {
- let form = {};
- let value = values.valueFromForm(form);
- expect(value).to.not.have.key('keymaps');
- expect(value).to.not.have.key('search');
- expect(value).to.not.have.key('blacklist');
- expect(value).to.not.have.key('properties');
- });
-
- it('override keymaps', () => {
- let form = {
- keymaps: {
- 'scroll.vertically?{"count":1}': 'j',
- 'scroll.vertically?{"count":-1}': 'j',
- }
- };
- let value = values.valueFromForm(form);
-
- expect(value.keymaps).to.have.key('j');
- });
-
- it('override search engine', () => {
- let form = {
- search: {
- default: 'google',
- engines: [
- ['google', 'https://google.com/search?q={}'],
- ['google', 'https://google.co.jp/search?q={}'],
- ]
- }
- };
- let value = values.valueFromForm(form);
-
- expect(value.search.engines).to.have.property('google', 'https://google.co.jp/search?q={}');
- });
- });
-
- describe('jsonFromValue', () => {
- });
-
- describe('formFromValue', () => {
- it('convert empty value to form', () => {
- let value = {};
- let form = values.formFromValue(value);
-
- expect(value).to.not.have.key('keymaps');
- expect(value).to.not.have.key('search');
- expect(value).to.not.have.key('blacklist');
- });
-
- it('convert value to form', () => {
- let value = {
- keymaps: {
- j: { type: 'scroll.vertically', count: 1 },
- JJ: { type: 'scroll.vertically', count: 100 },
- 0: { type: 'scroll.home' },
- },
- search: { default: 'google', engines: { google: 'https://google.com/search?q={}' }},
- blacklist: [ '*.slack.com'],
- properties: {
- "mystr": "value",
- "mynum": 123,
- "mybool": true,
- }
- };
- let allowed = ['scroll.vertically?{"count":1}', 'scroll.home' ];
- let form = values.formFromValue(value, allowed);
-
- expect(form.keymaps).to.have.property('scroll.vertically?{"count":1}', 'j');
- expect(form.keymaps).to.not.have.property('scroll.vertically?{"count":100}');
- expect(form.keymaps).to.have.property('scroll.home', '0');
- expect(Object.keys(form.keymaps)).to.have.lengthOf(2);
- expect(form.search).to.have.property('default', 'google');
- expect(form.search).to.have.deep.property('engines', [['google', 'https://google.com/search?q={}']]);
- expect(form.blacklist).to.have.lengthOf(1);
- expect(form.blacklist).to.include('*.slack.com');
- expect(form.properties).to.have.property('mystr', 'value');
- expect(form.properties).to.have.property('mynum', 123);
- expect(form.properties).to.have.property('mybool', true);
- });
- });
-});