test(state_mgr): fix broken test

This commit is contained in:
hexxa 2021-09-12 21:20:07 +08:00 committed by Hexxa
parent 3b1508af51
commit ac797848e8
2 changed files with 37 additions and 18 deletions

View file

@ -2,11 +2,11 @@ import { List, Set, Map } from "immutable";
import { mock, instance } from "ts-mockito"; import { mock, instance } from "ts-mockito";
import { StateMgr } from "../state_mgr"; import { StateMgr } from "../state_mgr";
import { User } from "../../client"; import { User, UploadInfo } from "../../client";
import { MockFilesClient, resps as filesResps } from "../../client/files_mock"; import { MockFilesClient, resps as filesResps } from "../../client/files_mock";
import { MockUsersClient, resps as usersResps } from "../../client/users_mock"; import { MockUsersClient, resps as usersResps } from "../../client/users_mock";
import { ICoreState, newWithWorker } from "../core_state"; import { ICoreState, newWithWorker } from "../core_state";
import { MockWorker } from "../../worker/interface"; import { MockWorker, UploadState, UploadEntry } from "../../worker/interface";
describe("State Manager", () => { describe("State Manager", () => {
test("initUpdater", async () => { test("initUpdater", async () => {
@ -35,8 +35,20 @@ describe("State Manager", () => {
List(filesResps.listSharingsMockResp.data.sharingDirs) List(filesResps.listSharingsMockResp.data.sharingDirs)
); );
expect(coreState.browser.uploadings).toEqual( expect(coreState.browser.uploadings).toEqual(
List(filesResps.listUploadingsMockResp.data.uploadInfos) List<UploadEntry>(
filesResps.listUploadingsMockResp.data.uploadInfos.map((info: UploadInfo) => {
return {
file: undefined,
filePath: info.realFilePath,
size: info.size,
uploaded: info.uploaded,
state: UploadState.Ready,
err: "",
};
})
)
); );
expect(coreState.browser.items).toEqual( expect(coreState.browser.items).toEqual(
List(filesResps.listHomeMockResp.data.metadatas) List(filesResps.listHomeMockResp.data.metadatas)
); );

View file

@ -15,7 +15,7 @@ import {
} from "../client"; } from "../client";
import { FilesClient } from "../client/files"; import { FilesClient } from "../client/files";
import { UsersClient } from "../client/users"; import { UsersClient } from "../client/users";
import { UploadEntry } from "../worker/interface"; import { UploadEntry, UploadState } from "../worker/interface";
import { Up } from "../worker/upload_mgr"; import { Up } from "../worker/upload_mgr";
import { alertMsg } from "../common/env"; import { alertMsg } from "../common/env";
import { LocalStorage } from "../common/localstorage"; import { LocalStorage } from "../common/localstorage";
@ -110,25 +110,32 @@ export class Updater {
return false; return false;
} }
let remoteUploads = Map<string, UploadInfo>([]); let localUploads = Map<string, UploadEntry>([]);
luResp.data.uploadInfos.forEach((info: UploadInfo) => { this.props.browser.uploadings.forEach((entry: UploadEntry) => {
remoteUploads = remoteUploads.set(info.realFilePath, info); localUploads = localUploads.set(entry.filePath, entry);
}) })
let updatedUploads = List<UploadEntry>([]); let updatedUploads = List<UploadEntry>([]);
this.props.browser.uploadings.forEach((localInfo: UploadEntry) => { luResp.data.uploadInfos.forEach((remoteInfo: UploadInfo) => {
const remoteInfo = remoteUploads.get(localInfo.filePath); const localEntry = localUploads.get(remoteInfo.realFilePath);
if (remoteInfo == null) { if (localEntry == null) {
// TODO: i18n updatedUploads = updatedUploads.push({
localInfo.err = "not found in server"; file: undefined,
} else { filePath: remoteInfo.realFilePath,
updatedUploads.push({
file: localInfo.file,
filePath: localInfo.filePath,
size: remoteInfo.size, size: remoteInfo.size,
uploaded: remoteInfo.uploaded, uploaded: remoteInfo.uploaded,
state: localInfo.state, state: UploadState.Ready,
err: localInfo.err, err: "",
});
} else {
updatedUploads = updatedUploads.push({
file: localEntry.file,
filePath: localEntry.filePath,
size: remoteInfo.size,
uploaded: remoteInfo.uploaded,
state: localEntry.state,
err: localEntry.err,
}); });
} }
}); });