typedux
Version:
Slightly adjusted Redux (awesome by default) for TS
48 lines (38 loc) • 1.26 kB
text/typescript
import {BaseActionFactory} from "../../actions/BaseActionFactory"
import {MockKey} from "./MockConstants"
import {ActionReducer, ActionThunk} from "../../actions/ActionDecorations"
import {Bluebird as Promise, Promised} from "../../util"
import { MockLeafState } from "./MockLeafState"
import type { MockMessage } from "./MockMessage"
import type { IMockState } from "./MockState"
import type { ObservableStore } from "../../store/ObservableStore"
export class MockActionFactory extends BaseActionFactory<MockLeafState,MockMessage> {
constructor(store?: ObservableStore<any>) {
super(MockLeafState,store)
}
leaf(): typeof MockKey {
return MockKey;
}
()
mockUpdate(val:string) {
return (state:IMockState) => ({...state, str1: val})
}
()
mockUpdateFromState(newVal:string) {
return (state:Map<string,any>) => ({...state, str2: newVal})
}
()
mockThunk() {
return Promised((dispatch,getState) => {
return Promise.delay(1000).then(() => "mock")
})
}
()
mockThunkError() {
return Promised((dispatch,getState) => {
return Promise.delay(1000).then(() => {
throw new Error('MockThunkErrorTest')
})
})
}
}