75 lines
1.9 KiB
JavaScript
75 lines
1.9 KiB
JavaScript
|
import { expectType } from './tutorial.test.js';
|
||
|
import Updux from './Updux.js';
|
||
|
const bar = new Updux({ initialState: 123 });
|
||
|
const foo = new Updux({
|
||
|
initialState: { root: 'abc' },
|
||
|
subduxes: {
|
||
|
bar,
|
||
|
},
|
||
|
});
|
||
|
test('default', () => {
|
||
|
const { initialState } = new Updux({});
|
||
|
expect(initialState).toBeTypeOf('object');
|
||
|
expect(initialState).toEqual({});
|
||
|
});
|
||
|
test('number', () => {
|
||
|
const { initialState } = new Updux({ initialState: 3 });
|
||
|
expect(initialState).toBeTypeOf('number');
|
||
|
expect(initialState).toEqual(3);
|
||
|
});
|
||
|
test('initialState to createStore', () => {
|
||
|
const initialState = {
|
||
|
a: 1,
|
||
|
b: 2,
|
||
|
};
|
||
|
const dux = new Updux({
|
||
|
initialState,
|
||
|
});
|
||
|
expect(dux.createStore({ preloadedState: { a: 3, b: 4 } }).getState()).toEqual({
|
||
|
a: 3,
|
||
|
b: 4,
|
||
|
});
|
||
|
});
|
||
|
test('single dux', () => {
|
||
|
const foo = new Updux({
|
||
|
initialState: { a: 1 },
|
||
|
});
|
||
|
expect(foo.initialState).toEqual({ a: 1 });
|
||
|
});
|
||
|
// TODO add 'check for no todo eslint rule'
|
||
|
test('initialState value', () => {
|
||
|
expect(foo.initialState).toEqual({
|
||
|
root: 'abc',
|
||
|
bar: 123,
|
||
|
});
|
||
|
expectType(foo.initialState);
|
||
|
});
|
||
|
test('no initialState', () => {
|
||
|
const dux = new Updux({});
|
||
|
expectType(dux.initialState);
|
||
|
expect(dux.initialState).toEqual({});
|
||
|
});
|
||
|
test('no initialState for subdux', () => {
|
||
|
const dux = new Updux({
|
||
|
subduxes: {
|
||
|
bar: new Updux({}),
|
||
|
baz: new Updux({ initialState: 'potato' }),
|
||
|
},
|
||
|
});
|
||
|
expectType(dux.initialState);
|
||
|
expect(dux.initialState).toEqual({ bar: {}, baz: 'potato' });
|
||
|
});
|
||
|
test.todo('splat initialState', () => {
|
||
|
const bar = new Updux({
|
||
|
initialState: { id: 0 },
|
||
|
});
|
||
|
const foo = new Updux({
|
||
|
subduxes: { '*': bar },
|
||
|
});
|
||
|
expect(foo.initialState).toEqual([]);
|
||
|
expect(new Updux({
|
||
|
initialState: 'overriden',
|
||
|
subduxes: { '*': bar },
|
||
|
}).initialState).toEqual('overriden');
|
||
|
});
|