DO NOT USE FOR DEVELOPMENT
This repository is superseded by: https://github.com/prommis/idaes-flowsheet-processor-ui
This repository is for work on the user interface (UI) for the WaterTAP library. The UI installer can be downloaded from our homepage at: https://watertap-org.github.io/
The following steps assume that:
condais already installed and configured- This repository (i.e. the WaterTAP UI repository, https://github.com/watertap-org/watertap-ui) has been cloned locally and the working directory is set to the root of the repository
Run the following command to create and activate a new Conda environment named watertap-ui-env:
conda env create --file environment.yml && conda activate watertap-ui-envThis will install the correct runtime versions of both the backend (Python) and frontend (JavaScript/NodeJS/Electron) portions of the UI, as well as the backend (Python) dependencies.
Run the following commands to install the JavaScript dependencies:
npm --prefix electron clean-installnpm --prefix electron/ui clean-installidaes get-extensions --verboseBy default, Step 1 above will install the watertap Python package from the current main branch of the watertap-org/watertap repository.
To use the WaterTAP UI with the development version of WaterTAP, run the following steps:
If you already have a local clone of the WaterTAP repository, you can skip this step.
Otherwise, run the following command to create a local clone of the WaterTAP repository in a directory of your choice, e.g. /path/to/my/watertap:
git clone https://github.com/watertap-org/ /path/to/my/watertapconda activate watertap-ui-envpip uninstall --yes watertapThe following assumes that the watertap-org/watertap repository has been cloned to a directory named /path/to/my/watertap.
bash -c "cd /path/to/my/watertap && pip install -r requirements-dev.txt"conda activate watertap-ui-envcd <watertap-ui-path>/electron/ui
npm run app-startcd <watertap-ui-path>/electron/ui
npm run electron-startThere are three sets of tests that can be run: Python tests, JavaScript unit tests, and JavaScript end-to-end tests.
To run the Python tests, make sure you have the appropriate version of watertap in your conda env. Then from the repository root directory run:
To run:
cd backend
pytestThis will take several minutes since one set of tests solves the UI flowsheets.
The unit tests are written using the testing-library package.
To run:
cd electron/ui
npm run testHit 'a' for "run all tests" if you want to run tests regardless of what changed.
The end-to-end tests are written in Cypress.
Before running the tests, start the back-end server, in another process (or shell):
cd electron/ui
npm run start-backendThen, to run the tests:
cd electron/ui # if needed
npx cypress runIf there are errors, screenshots and videos can be found (in subdirectories named for each test) under electron/ui/cypress/screenshots and electron/ui/cypress/videos.
The following steps assume that:
condais already installed and configured- The WaterTAP-UI package has been succesfully installed
- Watertap is cloned and installed locally. This is required for transferring data files (png and yaml)
- Watertap and Watertap-ui directories must be inside of the same parent directory.
watertap-ui-envConda environment is active
cd <watertap-ui-path>/electron
npm --prefix electron run move-entrypoints- Windows operating system
- The following environment variables must be set
- CSC_LINK: "<path-to-valid-codesigning-certificate.p12>"
- CSC_KEY_PASSWORD: ""
cd <watertap-ui-path>/electron
npm run dist:win- Mac operationg system
- Signed in to Apple developer account
- A valid Developer ID Application certificate AND corresponding private key stored in keychain access
cd <watertap-ui-path>/electron
npm run dist:mac