CEC-381 Fix install progress (#77)

* Fix install progress

* Remove unused components and inline styles

* Update test

* errors are not the final update state

* Remove max width for main container

* Progress starts at 0
This commit is contained in:
John Wu
2021-08-12 17:51:40 -07:00
committed by GitHub
parent 2b95bab38b
commit f273e25cf8
18 changed files with 489 additions and 612 deletions

View File

@@ -0,0 +1,23 @@
const DOWNLOAD_STATUSES = ["download_start", "downloading", "download_complete", "download_error", "package_download_complete"];
const INSTALL_STATUSES = ["install_start", "installing", "install_complete", "install_error", "pacakge_install_complete"];
export const isDownloadStatusMessage = (status) => {
return DOWNLOAD_STATUSES.indexOf(status.msg) > -1;
};
export const isInstallStatusMessage = (status) => {
return INSTALL_STATUSES.indexOf(status.msg) > -1;
};
export const validateStatusMessage = (status) => {
if (isDownloadStatusMessage(status)) {
if (!(status.package_current > -1 && status.package_total > -1)) return false;
if (status.package_current > status.package_total) return false;
return true;
} else if (isInstallStatusMessage(status)) {
if (!(status.installed > -1 && status.total_files > -1)) return false;
if (status.installed > status.total_files) return false;
return true;
}
return false;
};

View File

@@ -0,0 +1,48 @@
import { isDownloadStatusMessage, isInstallStatusMessage, validateStatusMessage} from "./statusMessage";
describe("validatons", () => {
it("isDownloadStatusMessage", () => {
expect(isDownloadStatusMessage({ msg: "download_start"})).toEqual(true);
expect(isDownloadStatusMessage({ msg: "downloading"})).toEqual(true);
expect(isDownloadStatusMessage({ msg: "download_complete"})).toEqual(true);
expect(isDownloadStatusMessage({ msg: "download_error"})).toEqual(true);
expect(isDownloadStatusMessage({ msg: "package_download_complete"})).toEqual(true);
expect(isDownloadStatusMessage({ msg: "installing"})).toEqual(false);
expect(isDownloadStatusMessage({ msg: "install_start"})).toEqual(false);
expect(isDownloadStatusMessage({ msg: "install_complete"})).toEqual(false);
expect(isDownloadStatusMessage({ msg: "install_error"})).toEqual(false);
expect(isDownloadStatusMessage({ msg: "pacakge_install_complete"})).toEqual(false);
});
it("isInstallStatusMessage", () => {
expect(isInstallStatusMessage({ msg: "download_start"})).toEqual(false);
expect(isInstallStatusMessage({ msg: "downloading"})).toEqual(false);
expect(isInstallStatusMessage({ msg: "download_complete"})).toEqual(false);
expect(isInstallStatusMessage({ msg: "download_error"})).toEqual(false);
expect(isInstallStatusMessage({ msg: "package_download_complete"})).toEqual(false);
expect(isInstallStatusMessage({ msg: "installing"})).toEqual(true);
expect(isInstallStatusMessage({ msg: "install_start"})).toEqual(true);
expect(isInstallStatusMessage({ msg: "install_complete"})).toEqual(true);
expect(isInstallStatusMessage({ msg: "install_error"})).toEqual(true);
expect(isInstallStatusMessage({ msg: "pacakge_install_complete"})).toEqual(true);
});
it("validateStatusMessage", () => {
expect(validateStatusMessage({ msg: "download_start", package_current: 0, package_total: 0})).toEqual(true);
expect(validateStatusMessage({ msg: "downloading", package_current: 0, package_total: 0})).toEqual(true);
expect(validateStatusMessage({ msg: "download_complete", package_current: 0, package_total: 0})).toEqual(true);
expect(validateStatusMessage({ msg: "download_error", package_current: 0, package_total: 0})).toEqual(true);
expect(validateStatusMessage({ msg: "package_download_complete", package_current: 0, package_total: 0})).toEqual(true);
expect(validateStatusMessage({ msg: "installing", installed: 0, total_files: 0 })).toEqual(true);
expect(validateStatusMessage({ msg: "install_start", installed: 0, total_files: 0 })).toEqual(true);
expect(validateStatusMessage({ msg: "install_complete", installed: 0, total_files: 0 })).toEqual(true);
expect(validateStatusMessage({ msg: "install_error", installed: 0, total_files: 0 })).toEqual(true);
expect(validateStatusMessage({ msg: "pacakge_install_complete", installed: 0, total_files: 0 })).toEqual(true);
expect(validateStatusMessage({ msg: "downloading", package_current: -1, package_total: -1})).toEqual(false);
expect(validateStatusMessage({ msg: "installing", installed: -1, total_files: -1})).toEqual(false);
expect(validateStatusMessage({ msg: "download_start", package_current: 100, package_total: 50})).toEqual(false);
expect(validateStatusMessage({ msg: "install_start", installed: 10, total_files: 9})).toEqual(false);
});
})