aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/content/actions/setting.test.js13
-rw-r--r--test/content/reducers/setting.test.js18
-rw-r--r--test/shared/util/re.test.js20
3 files changed, 51 insertions, 0 deletions
diff --git a/test/content/actions/setting.test.js b/test/content/actions/setting.test.js
new file mode 100644
index 0000000..8855f04
--- /dev/null
+++ b/test/content/actions/setting.test.js
@@ -0,0 +1,13 @@
+import { expect } from "chai";
+import actions from 'content/actions';
+import * as settingActions from 'content/actions/setting';
+
+describe("setting actions", () => {
+ describe("set", () => {
+ it('create SETTING_SET action', () => {
+ let action = settingActions.set({ red: 'apple', yellow: 'banana' });
+ expect(action.type).to.equal(actions.SETTING_SET);
+ expect(action.value).to.deep.equal({ red: 'apple', yellow: 'banana' });
+ });
+ });
+});
diff --git a/test/content/reducers/setting.test.js b/test/content/reducers/setting.test.js
new file mode 100644
index 0000000..50d1cf0
--- /dev/null
+++ b/test/content/reducers/setting.test.js
@@ -0,0 +1,18 @@
+import { expect } from "chai";
+import actions from 'content/actions';
+import settingReducer from 'content/reducers/setting';
+
+describe("content setting reducer", () => {
+ it('return the initial state', () => {
+ let state = settingReducer(undefined, {});
+ expect(state).to.deep.equal({});
+ });
+
+ it('return next state for SETTING_SET', () => {
+ let newSettings = { red: 'apple', yellow: 'banana' };
+ let action = { type: actions.SETTING_SET, value: newSettings };
+ let state = settingReducer(undefined, action);
+ expect(state).to.deep.equal(newSettings);
+ expect(state).not.to.equal(newSettings); // assert deep copy
+ });
+});
diff --git a/test/shared/util/re.test.js b/test/shared/util/re.test.js
new file mode 100644
index 0000000..9ed6521
--- /dev/null
+++ b/test/shared/util/re.test.js
@@ -0,0 +1,20 @@
+import { expect } from 'chai';
+import * as re from 'shared/utils/re';
+
+describe("re util", () => {
+ it('matches by pattern', () => {
+ let regex = re.fromWildcard('*.example.com/*');
+ expect('foo.example.com/bar').to.match(regex);
+ expect('foo.example.com').not.to.match(regex);
+ expect('example.com/bar').not.to.match(regex);
+
+ regex = re.fromWildcard('example.com/*')
+ expect('example.com/foo').to.match(regex);
+ expect('example.com/').to.match(regex);
+
+ regex = re.fromWildcard('example.com/*bar')
+ expect('example.com/foobar').to.match(regex);
+ expect('example.com/bar').to.match(regex);
+ expect('example.com/foobarfoo').not.to.match(regex);
+ })
+});