1 |
|
2 |
|
3 |
|
4 |
|
5 | "use strict";
|
6 |
|
7 | const define = require('../lib/define.js'),
|
8 | assert = require('assert');
|
9 |
|
10 | describe('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 |
|