UNPKG

1.35 kBJavaScriptView Raw
1/**
2 * Test case for define.
3 * Runs with mocha.
4 */
5"use strict";
6
7const define = require('../lib/define.js'),
8 assert = require('assert');
9
10describe('define', () => {
11
12 before((done) => {
13 done();
14 });
15
16 after((done) => {
17 done();
18 });
19
20
21 it('Define', (done) => {
22 let Store = define((state, action) => {
23 switch (action.type) {
24 case 'hoge':
25 return action.val;
26 default:
27 return action;
28 }
29 }).assign({
30 getFoo(){
31 return 'foo';
32 }
33 }, {
34 getBaz(){
35 return 'baz';
36 }
37 });
38 let instance = new Store({
39 getBar(){
40 return 'bar';
41 }
42 });
43 assert.ok(instance);
44 assert.equal(instance.getFoo(), 'foo');
45 assert.equal(instance.getBaz(), 'baz');
46 assert.equal(instance.getBar(), 'bar');
47 instance.subscribe(() => {
48 let v = instance.getState();
49 assert.equal(v, 'hoge');
50 });
51 instance.dispatch({
52 "type": "hoge",
53 "val": "hoge"
54 });
55
56 let singleton = Store.singleton;
57 assert.ok(singleton);
58 assert.equal(singleton.getFoo(), 'foo');
59 done();
60 });
61});
62