fix(core_state): make core state pure
This commit is contained in:
parent
abbeed24d7
commit
65b250d83c
6 changed files with 25 additions and 23 deletions
|
@ -2,7 +2,8 @@ import { mock, instance, verify, when, anything } from "ts-mockito";
|
|||
import { List } from "immutable";
|
||||
|
||||
import { Browser } from "../browser";
|
||||
import { ICoreState, newWithWorker } from "../core_state";
|
||||
import { initUploadMgr } from "../../worker/upload_mgr";
|
||||
import { ICoreState, newState } from "../core_state";
|
||||
import { updater } from "../state_updater";
|
||||
import { MockWorker } from "../../worker/interface";
|
||||
import { MockUsersClient, resps as usersResps } from "../../client/users_mock";
|
||||
|
@ -13,8 +14,9 @@ describe("Browser", () => {
|
|||
const initBrowser = (): any => {
|
||||
const mockWorkerClass = mock(MockWorker);
|
||||
const mockWorker = instance(mockWorkerClass);
|
||||
initUploadMgr(mockWorker);
|
||||
|
||||
const coreState = newWithWorker(mockWorker);
|
||||
const coreState = newState();
|
||||
const usersCl = new MockUsersClient("");
|
||||
const filesCl = new MockFilesClient("");
|
||||
|
||||
|
|
|
@ -3,7 +3,8 @@ import { mock, instance } from "ts-mockito";
|
|||
|
||||
import { User, UploadInfo } from "../../client";
|
||||
import { AuthPane } from "../pane_login";
|
||||
import { ICoreState, newWithWorker } from "../core_state";
|
||||
import { ICoreState, newState } from "../core_state";
|
||||
import { initUploadMgr } from "../../worker/upload_mgr";
|
||||
import { updater } from "../state_updater";
|
||||
import { MockWorker, UploadState, UploadEntry } from "../../worker/interface";
|
||||
import { MockUsersClient, resps as usersResps } from "../../client/users_mock";
|
||||
|
@ -13,8 +14,9 @@ describe("Login", () => {
|
|||
test("login", async () => {
|
||||
const mockWorkerClass = mock(MockWorker);
|
||||
const mockWorker = instance(mockWorkerClass);
|
||||
initUploadMgr(mockWorker);
|
||||
|
||||
const coreState = newWithWorker(mockWorker);
|
||||
const coreState = newState();
|
||||
const pane = new AuthPane({
|
||||
login: coreState.login,
|
||||
msg: coreState.msg,
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import { mock, instance } from "ts-mockito";
|
||||
|
||||
import { Panes } from "../panes";
|
||||
import { ICoreState, newWithWorker } from "../core_state";
|
||||
import { ICoreState, newState } from "../core_state";
|
||||
import { initUploadMgr } from "../../worker/upload_mgr";
|
||||
import { updater } from "../state_updater";
|
||||
import { MockWorker } from "../../worker/interface";
|
||||
|
||||
|
@ -9,8 +10,9 @@ describe("Panes", () => {
|
|||
test("closePane", async () => {
|
||||
const mockWorkerClass = mock(MockWorker);
|
||||
const mockWorker = instance(mockWorkerClass);
|
||||
initUploadMgr(mockWorker);
|
||||
|
||||
const coreState = newWithWorker(mockWorker);
|
||||
const coreState = newState();
|
||||
const panes = new Panes({
|
||||
panes: coreState.panes,
|
||||
admin: coreState.admin,
|
||||
|
|
|
@ -2,10 +2,11 @@ import { List, Set, Map } from "immutable";
|
|||
import { mock, instance } from "ts-mockito";
|
||||
|
||||
import { StateMgr } from "../state_mgr";
|
||||
import { initUploadMgr } from "../../worker/upload_mgr";
|
||||
import { User, UploadInfo } from "../../client";
|
||||
import { MockFilesClient, resps as filesResps } from "../../client/files_mock";
|
||||
import { MockUsersClient, resps as usersResps } from "../../client/users_mock";
|
||||
import { ICoreState, newWithWorker } from "../core_state";
|
||||
import { ICoreState, newState } from "../core_state";
|
||||
import { MockWorker, UploadState, UploadEntry } from "../../worker/interface";
|
||||
|
||||
describe("State Manager", () => {
|
||||
|
@ -15,6 +16,7 @@ describe("State Manager", () => {
|
|||
|
||||
const mockWorkerClass = mock(MockWorker);
|
||||
const mockWorker = instance(mockWorkerClass);
|
||||
initUploadMgr(mockWorker);
|
||||
|
||||
const mgr = new StateMgr({}); // it will call initUpdater
|
||||
mgr.setUsersClient(usersCl);
|
||||
|
@ -25,7 +27,7 @@ describe("State Manager", () => {
|
|||
// no op
|
||||
};
|
||||
|
||||
const coreState = newWithWorker(mockWorker);
|
||||
const coreState = newState();
|
||||
await mgr.initUpdater(coreState);
|
||||
|
||||
// browser
|
||||
|
@ -121,7 +123,7 @@ describe("State Manager", () => {
|
|||
|
||||
const mockWorkerClass = mock(MockWorker);
|
||||
const mockWorker = instance(mockWorkerClass);
|
||||
const coreState = newWithWorker(mockWorker);
|
||||
const coreState = newState();
|
||||
|
||||
const mgr = new StateMgr({}); // it will call initUpdater
|
||||
mgr.setUsersClient(usersCl);
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
import { List, Set, Map } from "immutable";
|
||||
|
||||
import BgWorker from "../worker/upload.bg.worker";
|
||||
import { FgWorker } from "../worker/upload.fg.worker";
|
||||
import { UploadEntry } from "../worker/interface";
|
||||
|
||||
import { BrowserProps } from "./browser";
|
||||
import { PanesProps } from "./panes";
|
||||
import { LoginProps } from "./pane_login";
|
||||
import { AdminProps } from "./pane_admin";
|
||||
|
||||
import { MsgPackage } from "../i18n/msger";
|
||||
import { User, MetadataResp } from "../client";
|
||||
import { initUploadMgr, IWorker } from "../worker/upload_mgr";
|
||||
|
||||
export interface MsgProps {
|
||||
lan: string;
|
||||
|
@ -36,15 +32,7 @@ export interface ICoreState {
|
|||
msg: MsgProps;
|
||||
}
|
||||
|
||||
export function newWithWorker(worker: IWorker): ICoreState {
|
||||
initUploadMgr(worker);
|
||||
return initState();
|
||||
}
|
||||
|
||||
export function newState(): ICoreState {
|
||||
const worker = window.Worker == null ? new FgWorker() : new BgWorker();
|
||||
initUploadMgr(worker);
|
||||
|
||||
return initState();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
import * as React from "react";
|
||||
|
||||
import { initUploadMgr } from "../worker/upload_mgr";
|
||||
import BgWorker from "../worker/upload.bg.worker";
|
||||
import { FgWorker } from "../worker/upload.fg.worker";
|
||||
|
||||
import { updater } from "./state_updater";
|
||||
import { ICoreState, newState } from "./core_state";
|
||||
import { RootFrame } from "./root_frame";
|
||||
|
@ -17,6 +21,8 @@ export class StateMgr extends React.Component<Props, State, {}> {
|
|||
constructor(p: Props) {
|
||||
super(p);
|
||||
this.state = newState();
|
||||
const worker = window.Worker == null ? new FgWorker() : new BgWorker();
|
||||
initUploadMgr(worker);
|
||||
this.initUpdater(this.state); // don't await
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue