101 lines
2.1 KiB
TypeScript
101 lines
2.1 KiB
TypeScript
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<{
|
|
root: string;
|
|
bar: number;
|
|
}>(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<{ bar: {}; baz: string }>(dux.initialState);
|
|
expect(dux.initialState).toEqual({ bar: {}, baz: 'potato' });
|
|
});
|
|
|
|
test.todo('splat initialState', async () => {
|
|
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');
|
|
});
|