matlab-proxy 0.18.2__tar.gz → 0.20.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of matlab-proxy might be problematic. Click here for more details.
- {matlab-proxy-0.18.2/matlab_proxy.egg-info → matlab-proxy-0.20.0}/PKG-INFO +2 -2
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/README.md +1 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/package-lock.json +113 -69
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/package.json +3 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/actionCreators/actionCreators.spec.js +2 -28
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/actionCreators/index.js +11 -12
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/actions/index.js +2 -2
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/App.spec.js +2 -6
- matlab-proxy-0.20.0/gui/src/components/App/IdleBufferTimeouts.spec.js +120 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/index.js +113 -13
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/index.js +2 -2
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Help/index.js +7 -6
- matlab-proxy-0.20.0/gui/src/components/MatlabJsd/MatlabJsd.spec.js +94 -0
- matlab-proxy-0.20.0/gui/src/components/MatlabJsd/index.js +55 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/OverlayTrigger.spec.js +1 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/ResizeOverlayTrigger.spec.js +1 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/index.js +4 -4
- matlab-proxy-0.20.0/gui/src/components/ShutdownWarning/ShutdownWarning.css +46 -0
- matlab-proxy-0.20.0/gui/src/components/ShutdownWarning/index.js +72 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/constants.js +4 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/reducers/index.js +46 -20
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/reducers/reducers.spec.js +13 -10
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/selectors/index.js +32 -2
- matlab-proxy-0.20.0/gui/src/test/utils/responses.js +39 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/test/utils/state.js +7 -2
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/app.py +73 -55
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/app_state.py +370 -155
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/constants.py +3 -0
- matlab-proxy-0.20.0/matlab_proxy/matlab/startup.m +17 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/settings.py +16 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/__init__.py +101 -1
- matlab-proxy-0.20.0/matlab_proxy/util/event_loop.py +63 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/embedded_connector/__init__.py +1 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/embedded_connector/helpers.py +9 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/embedded_connector/request.py +51 -21
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/environment_variables.py +5 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/exceptions.py +16 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/logger.py +22 -2
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/validators.py +33 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/windows.py +4 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0/matlab_proxy.egg-info}/PKG-INFO +2 -2
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/SOURCES.txt +4 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/setup.py +1 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_app.py +45 -22
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_app_state.py +404 -111
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_constants.py +1 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_logger.py +38 -4
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_validators.py +30 -1
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/test_util.py +83 -0
- matlab-proxy-0.18.2/gui/src/components/MatlabJsd/MatlabJsd.spec.js +0 -42
- matlab-proxy-0.18.2/gui/src/components/MatlabJsd/index.js +0 -23
- matlab-proxy-0.18.2/matlab_proxy/matlab/startup.m +0 -37
- matlab-proxy-0.18.2/matlab_proxy/util/event_loop.py +0 -45
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/LICENSE.md +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/MANIFEST.in +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/.eslintrc.json +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/.gitignore +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/README.md +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/public/favicon.ico +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/public/index.html +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/public/manifest.json +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/public/robots.txt +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/css/bootstrap.min.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/css/site7.min.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.eot +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.ttf +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-eps.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-eps.ttf +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-eps.woff +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.ttf +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks-pictograms.woff +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks.ttf +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/fonts/mathworks.woff +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/bug_reports/workaround.gif +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-account-hover.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-account.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-contact-hover.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-header-contact.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/3p/images/responsive/global/ico-sprite.png +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/App.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/App/MATLAB-env-blur.png +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Confirmation/Confirmation.spec.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Confirmation/index.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/Controls.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/Controls.spec.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/feedback.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/help.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/restart.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/sign-out.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/start.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/stop.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Controls/terminate.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/EntitlementSelector/EntitlementSelector.spec.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/EntitlementSelector/index.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Error/Error.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Error/Error.spec.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Error/index.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Help/Help.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Help/Help.spec.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Information/Information.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Information/Information.spec.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Information/index.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/ExistingLicense.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/ExistingLicense.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/LicenseGatherer.spec.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/LicensingGatherer.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/MHLM.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/NLM.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/LicensingGatherer/index.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/MatlabJsd/MatlabJsd.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Overlay/Overlay.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Overlay/Overlay.spec.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/Overlay/index.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/OverlayTrigger.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/arrow.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/gripper.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/trigger-error.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/components/OverlayTrigger/trigger-ok.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/index.css +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/index.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/jest.config.json +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/logo.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/selectors/selectors.spec.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/serviceWorker.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/setupTests.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/gui/src/test/utils/react-test.js +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/default_configuration.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/devel.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/icons/matlab.svg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/matlab/evaluateUserMatlabCode.m +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/list_servers.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mw.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/custom_http_headers.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/download.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/mwi/token_auth.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy/util/system.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/dependency_links.txt +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/entry_points.txt +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/not-zip-safe +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/requires.txt +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/matlab_proxy.egg-info/top_level.txt +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/setup.cfg +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_with_license/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_with_license/conftest.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_with_license/test_http_end_points.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_without_license/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_without_license/conftest.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/integration_tests_without_license/test_matlab_is_down_if_unlicensed.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/utils/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/utils/integration_tests_utils.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/integration/utils/licensing.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/conftest.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_ddux.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_devel.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_non_dev_mode.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/test_settings.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/embedded_connector/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/embedded_connector/test_helpers.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/embedded_connector/test_request.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_custom_http_headers.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_download.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/mwi/test_token_auth.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/unit/util/test_mw.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/utils/__init__.py +0 -0
- {matlab-proxy-0.18.2 → matlab-proxy-0.20.0}/tests/utils/logging_util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: matlab-proxy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.0
|
|
4
4
|
Summary: Python® package enables you to launch MATLAB® and access it from a web browser.
|
|
5
5
|
Home-page: https://github.com/mathworks/matlab-proxy/
|
|
6
6
|
Author: The MathWorks, Inc.
|
|
@@ -171,7 +171,7 @@ Description: # MATLAB Proxy
|
|
|
171
171
|
|
|
172
172
|
### Windows Subsystem for Linux (WSL 2)
|
|
173
173
|
|
|
174
|
-
To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./
|
|
174
|
+
To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).
|
|
175
175
|
|
|
176
176
|
## Using an already activated MATLAB with matlab-proxy
|
|
177
177
|
`matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
|
|
@@ -163,7 +163,7 @@ $ pip install --upgrade matlab-proxy>=0.5.0
|
|
|
163
163
|
|
|
164
164
|
### Windows Subsystem for Linux (WSL 2)
|
|
165
165
|
|
|
166
|
-
To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./
|
|
166
|
+
To install `matlab-proxy` in WSL 2, follow the steps mentioned in the [Installation Guide for WSL 2](./install_guides/wsl2/README.md).
|
|
167
167
|
|
|
168
168
|
## Using an already activated MATLAB with matlab-proxy
|
|
169
169
|
`matlab-proxy` version `v0.7.0` introduces support for using an existing MATLAB license. Use the Existing License option only if you have an activated MATLAB. This allows you to start MATLAB without authenticating every time.
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"clsx": "^1.1.1",
|
|
12
12
|
"cross-fetch": "^3.0.6",
|
|
13
13
|
"crypto-js": "4.2.0",
|
|
14
|
+
"postcss": "^8.4.38",
|
|
14
15
|
"react": "^16.13.1",
|
|
15
16
|
"react-dom": "^16.13.1",
|
|
16
17
|
"react-draggable": "^4.4.3",
|
|
@@ -21,7 +22,8 @@
|
|
|
21
22
|
"react-use": "^15.3.4",
|
|
22
23
|
"redux": "^4.0.5",
|
|
23
24
|
"redux-thunk": "^2.3.0",
|
|
24
|
-
"reselect": "^4.0.0"
|
|
25
|
+
"reselect": "^4.0.0",
|
|
26
|
+
"resolve-url-loader": "^5.0.0"
|
|
25
27
|
},
|
|
26
28
|
"devDependencies": {
|
|
27
29
|
"@babel/preset-env": "^7.11.0",
|
|
@@ -15671,6 +15673,54 @@
|
|
|
15671
15673
|
"node": ">=10"
|
|
15672
15674
|
}
|
|
15673
15675
|
},
|
|
15676
|
+
"node_modules/react-scripts/node_modules/picocolors": {
|
|
15677
|
+
"version": "0.2.1",
|
|
15678
|
+
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
|
15679
|
+
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
|
15680
|
+
},
|
|
15681
|
+
"node_modules/react-scripts/node_modules/resolve-url-loader": {
|
|
15682
|
+
"version": "4.0.0",
|
|
15683
|
+
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
|
|
15684
|
+
"integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==",
|
|
15685
|
+
"dependencies": {
|
|
15686
|
+
"adjust-sourcemap-loader": "^4.0.0",
|
|
15687
|
+
"convert-source-map": "^1.7.0",
|
|
15688
|
+
"loader-utils": "^2.0.0",
|
|
15689
|
+
"postcss": "^7.0.35",
|
|
15690
|
+
"source-map": "0.6.1"
|
|
15691
|
+
},
|
|
15692
|
+
"engines": {
|
|
15693
|
+
"node": ">=8.9"
|
|
15694
|
+
},
|
|
15695
|
+
"peerDependencies": {
|
|
15696
|
+
"rework": "1.0.1",
|
|
15697
|
+
"rework-visit": "1.0.0"
|
|
15698
|
+
},
|
|
15699
|
+
"peerDependenciesMeta": {
|
|
15700
|
+
"rework": {
|
|
15701
|
+
"optional": true
|
|
15702
|
+
},
|
|
15703
|
+
"rework-visit": {
|
|
15704
|
+
"optional": true
|
|
15705
|
+
}
|
|
15706
|
+
}
|
|
15707
|
+
},
|
|
15708
|
+
"node_modules/react-scripts/node_modules/resolve-url-loader/node_modules/postcss": {
|
|
15709
|
+
"version": "7.0.39",
|
|
15710
|
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
|
15711
|
+
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
|
15712
|
+
"dependencies": {
|
|
15713
|
+
"picocolors": "^0.2.1",
|
|
15714
|
+
"source-map": "^0.6.1"
|
|
15715
|
+
},
|
|
15716
|
+
"engines": {
|
|
15717
|
+
"node": ">=6.0.0"
|
|
15718
|
+
},
|
|
15719
|
+
"funding": {
|
|
15720
|
+
"type": "opencollective",
|
|
15721
|
+
"url": "https://opencollective.com/postcss/"
|
|
15722
|
+
}
|
|
15723
|
+
},
|
|
15674
15724
|
"node_modules/react-scripts/node_modules/semver": {
|
|
15675
15725
|
"version": "7.5.2",
|
|
15676
15726
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
|
|
@@ -15685,6 +15735,14 @@
|
|
|
15685
15735
|
"node": ">=10"
|
|
15686
15736
|
}
|
|
15687
15737
|
},
|
|
15738
|
+
"node_modules/react-scripts/node_modules/source-map": {
|
|
15739
|
+
"version": "0.6.1",
|
|
15740
|
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
|
15741
|
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
|
15742
|
+
"engines": {
|
|
15743
|
+
"node": ">=0.10.0"
|
|
15744
|
+
}
|
|
15745
|
+
},
|
|
15688
15746
|
"node_modules/react-scripts/node_modules/yallist": {
|
|
15689
15747
|
"version": "4.0.0",
|
|
15690
15748
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
|
@@ -16046,51 +16104,18 @@
|
|
|
16046
16104
|
"dev": true
|
|
16047
16105
|
},
|
|
16048
16106
|
"node_modules/resolve-url-loader": {
|
|
16049
|
-
"version": "
|
|
16050
|
-
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-
|
|
16051
|
-
"integrity": "sha512-
|
|
16107
|
+
"version": "5.0.0",
|
|
16108
|
+
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz",
|
|
16109
|
+
"integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==",
|
|
16052
16110
|
"dependencies": {
|
|
16053
16111
|
"adjust-sourcemap-loader": "^4.0.0",
|
|
16054
16112
|
"convert-source-map": "^1.7.0",
|
|
16055
16113
|
"loader-utils": "^2.0.0",
|
|
16056
|
-
"postcss": "^
|
|
16114
|
+
"postcss": "^8.2.14",
|
|
16057
16115
|
"source-map": "0.6.1"
|
|
16058
16116
|
},
|
|
16059
16117
|
"engines": {
|
|
16060
|
-
"node": ">=
|
|
16061
|
-
},
|
|
16062
|
-
"peerDependencies": {
|
|
16063
|
-
"rework": "1.0.1",
|
|
16064
|
-
"rework-visit": "1.0.0"
|
|
16065
|
-
},
|
|
16066
|
-
"peerDependenciesMeta": {
|
|
16067
|
-
"rework": {
|
|
16068
|
-
"optional": true
|
|
16069
|
-
},
|
|
16070
|
-
"rework-visit": {
|
|
16071
|
-
"optional": true
|
|
16072
|
-
}
|
|
16073
|
-
}
|
|
16074
|
-
},
|
|
16075
|
-
"node_modules/resolve-url-loader/node_modules/picocolors": {
|
|
16076
|
-
"version": "0.2.1",
|
|
16077
|
-
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
|
16078
|
-
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
|
16079
|
-
},
|
|
16080
|
-
"node_modules/resolve-url-loader/node_modules/postcss": {
|
|
16081
|
-
"version": "7.0.39",
|
|
16082
|
-
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
|
16083
|
-
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
|
16084
|
-
"dependencies": {
|
|
16085
|
-
"picocolors": "^0.2.1",
|
|
16086
|
-
"source-map": "^0.6.1"
|
|
16087
|
-
},
|
|
16088
|
-
"engines": {
|
|
16089
|
-
"node": ">=6.0.0"
|
|
16090
|
-
},
|
|
16091
|
-
"funding": {
|
|
16092
|
-
"type": "opencollective",
|
|
16093
|
-
"url": "https://opencollective.com/postcss/"
|
|
16118
|
+
"node": ">=12"
|
|
16094
16119
|
}
|
|
16095
16120
|
},
|
|
16096
16121
|
"node_modules/resolve-url-loader/node_modules/source-map": {
|
|
@@ -18235,9 +18260,9 @@
|
|
|
18235
18260
|
}
|
|
18236
18261
|
},
|
|
18237
18262
|
"node_modules/webpack-dev-server/node_modules/ws": {
|
|
18238
|
-
"version": "8.
|
|
18239
|
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.
|
|
18240
|
-
"integrity": "sha512-
|
|
18263
|
+
"version": "8.17.1",
|
|
18264
|
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
|
|
18265
|
+
"integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
|
|
18241
18266
|
"engines": {
|
|
18242
18267
|
"node": ">=10.0.0"
|
|
18243
18268
|
},
|
|
@@ -18804,9 +18829,9 @@
|
|
|
18804
18829
|
}
|
|
18805
18830
|
},
|
|
18806
18831
|
"node_modules/ws": {
|
|
18807
|
-
"version": "7.5.
|
|
18808
|
-
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.
|
|
18809
|
-
"integrity": "sha512
|
|
18832
|
+
"version": "7.5.10",
|
|
18833
|
+
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
|
|
18834
|
+
"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
|
|
18810
18835
|
"engines": {
|
|
18811
18836
|
"node": ">=8.3.0"
|
|
18812
18837
|
},
|
|
@@ -29916,6 +29941,34 @@
|
|
|
29916
29941
|
"yallist": "^4.0.0"
|
|
29917
29942
|
}
|
|
29918
29943
|
},
|
|
29944
|
+
"picocolors": {
|
|
29945
|
+
"version": "0.2.1",
|
|
29946
|
+
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
|
29947
|
+
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
|
29948
|
+
},
|
|
29949
|
+
"resolve-url-loader": {
|
|
29950
|
+
"version": "4.0.0",
|
|
29951
|
+
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
|
|
29952
|
+
"integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==",
|
|
29953
|
+
"requires": {
|
|
29954
|
+
"adjust-sourcemap-loader": "^4.0.0",
|
|
29955
|
+
"convert-source-map": "^1.7.0",
|
|
29956
|
+
"loader-utils": "^2.0.0",
|
|
29957
|
+
"postcss": "^7.0.35",
|
|
29958
|
+
"source-map": "0.6.1"
|
|
29959
|
+
},
|
|
29960
|
+
"dependencies": {
|
|
29961
|
+
"postcss": {
|
|
29962
|
+
"version": "7.0.39",
|
|
29963
|
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
|
29964
|
+
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
|
29965
|
+
"requires": {
|
|
29966
|
+
"picocolors": "^0.2.1",
|
|
29967
|
+
"source-map": "^0.6.1"
|
|
29968
|
+
}
|
|
29969
|
+
}
|
|
29970
|
+
}
|
|
29971
|
+
},
|
|
29919
29972
|
"semver": {
|
|
29920
29973
|
"version": "7.5.2",
|
|
29921
29974
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
|
|
@@ -29924,6 +29977,11 @@
|
|
|
29924
29977
|
"lru-cache": "^6.0.0"
|
|
29925
29978
|
}
|
|
29926
29979
|
},
|
|
29980
|
+
"source-map": {
|
|
29981
|
+
"version": "0.6.1",
|
|
29982
|
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
|
29983
|
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
|
29984
|
+
},
|
|
29927
29985
|
"yallist": {
|
|
29928
29986
|
"version": "4.0.0",
|
|
29929
29987
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
|
@@ -30213,31 +30271,17 @@
|
|
|
30213
30271
|
"dev": true
|
|
30214
30272
|
},
|
|
30215
30273
|
"resolve-url-loader": {
|
|
30216
|
-
"version": "
|
|
30217
|
-
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-
|
|
30218
|
-
"integrity": "sha512-
|
|
30274
|
+
"version": "5.0.0",
|
|
30275
|
+
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz",
|
|
30276
|
+
"integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==",
|
|
30219
30277
|
"requires": {
|
|
30220
30278
|
"adjust-sourcemap-loader": "^4.0.0",
|
|
30221
30279
|
"convert-source-map": "^1.7.0",
|
|
30222
30280
|
"loader-utils": "^2.0.0",
|
|
30223
|
-
"postcss": "^
|
|
30281
|
+
"postcss": "^8.2.14",
|
|
30224
30282
|
"source-map": "0.6.1"
|
|
30225
30283
|
},
|
|
30226
30284
|
"dependencies": {
|
|
30227
|
-
"picocolors": {
|
|
30228
|
-
"version": "0.2.1",
|
|
30229
|
-
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
|
30230
|
-
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
|
30231
|
-
},
|
|
30232
|
-
"postcss": {
|
|
30233
|
-
"version": "7.0.39",
|
|
30234
|
-
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
|
30235
|
-
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
|
30236
|
-
"requires": {
|
|
30237
|
-
"picocolors": "^0.2.1",
|
|
30238
|
-
"source-map": "^0.6.1"
|
|
30239
|
-
}
|
|
30240
|
-
},
|
|
30241
30285
|
"source-map": {
|
|
30242
30286
|
"version": "0.6.1",
|
|
30243
30287
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
|
@@ -31817,9 +31861,9 @@
|
|
|
31817
31861
|
}
|
|
31818
31862
|
},
|
|
31819
31863
|
"ws": {
|
|
31820
|
-
"version": "8.
|
|
31821
|
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.
|
|
31822
|
-
"integrity": "sha512-
|
|
31864
|
+
"version": "8.17.1",
|
|
31865
|
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
|
|
31866
|
+
"integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
|
|
31823
31867
|
"requires": {}
|
|
31824
31868
|
}
|
|
31825
31869
|
}
|
|
@@ -32277,9 +32321,9 @@
|
|
|
32277
32321
|
}
|
|
32278
32322
|
},
|
|
32279
32323
|
"ws": {
|
|
32280
|
-
"version": "7.5.
|
|
32281
|
-
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.
|
|
32282
|
-
"integrity": "sha512
|
|
32324
|
+
"version": "7.5.10",
|
|
32325
|
+
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
|
|
32326
|
+
"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
|
|
32283
32327
|
"requires": {}
|
|
32284
32328
|
},
|
|
32285
32329
|
"xdg-basedir": {
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"clsx": "^1.1.1",
|
|
7
7
|
"cross-fetch": "^3.0.6",
|
|
8
8
|
"crypto-js": "4.2.0",
|
|
9
|
+
"postcss": "^8.4.38",
|
|
9
10
|
"react": "^16.13.1",
|
|
10
11
|
"react-dom": "^16.13.1",
|
|
11
12
|
"react-draggable": "^4.4.3",
|
|
@@ -16,7 +17,8 @@
|
|
|
16
17
|
"react-use": "^15.3.4",
|
|
17
18
|
"redux": "^4.0.5",
|
|
18
19
|
"redux-thunk": "^2.3.0",
|
|
19
|
-
"reselect": "^4.0.0"
|
|
20
|
+
"reselect": "^4.0.0",
|
|
21
|
+
"resolve-url-loader": "^5.0.0"
|
|
20
22
|
},
|
|
21
23
|
"scripts": {
|
|
22
24
|
"start": "react-scripts start",
|
|
@@ -36,7 +36,7 @@ describe.each([
|
|
|
36
36
|
[actionCreators.requestSetLicensing, { type: actions.REQUEST_SET_LICENSING }],
|
|
37
37
|
[actionCreators.requestStopMatlab, { type: actions.REQUEST_STOP_MATLAB, status: 'stopping' }],
|
|
38
38
|
[actionCreators.requestStartMatlab, { type: actions.REQUEST_START_MATLAB, status: 'starting' }],
|
|
39
|
-
[actionCreators.
|
|
39
|
+
[actionCreators.requestShutdownIntegration, { type: actions.REQUEST_SHUTDOWN_INTEGRATION }]
|
|
40
40
|
])('Test Request actionCreators', (method, expectedAction) => {
|
|
41
41
|
test(`check if an action of type ${expectedAction.type} is returned when method actionCreator.${method.name}() is called`, () => {
|
|
42
42
|
expect(method()).toEqual(expectedAction);
|
|
@@ -48,7 +48,7 @@ describe.each([
|
|
|
48
48
|
[actionCreators.receiveStopMatlab, { matlabStatus: 'down' }, { type: actions.RECEIVE_STOP_MATLAB, status: { matlabStatus: 'down' } }],
|
|
49
49
|
[actionCreators.receiveStartMatlab, { matlabStatus: 'up' }, { type: actions.RECEIVE_START_MATLAB, status: { matlabStatus: 'up' } }],
|
|
50
50
|
[actionCreators.receiveError, { message: 'ERROR: License Manager Error -9', logs: null }, { type: actions.RECEIVE_ERROR, error: { message: 'ERROR: License Manager Error -9', logs: null } }],
|
|
51
|
-
[actionCreators.
|
|
51
|
+
[actionCreators.requestShutdownIntegration, {}, { type: actions.REQUEST_SHUTDOWN_INTEGRATION }]
|
|
52
52
|
])('Test Receive actionCreators', (method, input, expectedAction) => {
|
|
53
53
|
test(`check if an action of type ${expectedAction.type} is returned when method actionCreator.${method.name}() is called`, () => {
|
|
54
54
|
expect(method(input)).toEqual(expectedAction);
|
|
@@ -429,32 +429,6 @@ describe('Test Async actionCreators', () => {
|
|
|
429
429
|
});
|
|
430
430
|
});
|
|
431
431
|
|
|
432
|
-
it('should dispatch REQUEST_TERMINATE_INTEGRATION and RECEIVE_TERMINATE_INTEGRATION when we terminate the integration', () => {
|
|
433
|
-
fetchMock.deleteOnce('./terminate_integration', {
|
|
434
|
-
body: {
|
|
435
|
-
matlab: {
|
|
436
|
-
status: 'down'
|
|
437
|
-
},
|
|
438
|
-
licensing: null
|
|
439
|
-
},
|
|
440
|
-
headers: { 'content-type': 'application/json' }
|
|
441
|
-
});
|
|
442
|
-
|
|
443
|
-
const expectedActionTypes = [
|
|
444
|
-
actions.REQUEST_TERMINATE_INTEGRATION,
|
|
445
|
-
actions.RECEIVE_TERMINATE_INTEGRATION
|
|
446
|
-
];
|
|
447
|
-
|
|
448
|
-
return store
|
|
449
|
-
.dispatch(actionCreators.fetchTerminateIntegration())
|
|
450
|
-
.then(() => {
|
|
451
|
-
const receivedActions = store.getActions();
|
|
452
|
-
expect(receivedActions.map((action) => action.type)).toEqual(
|
|
453
|
-
expectedActionTypes
|
|
454
|
-
);
|
|
455
|
-
});
|
|
456
|
-
});
|
|
457
|
-
|
|
458
432
|
it('should dispatch REQUEST_STOP_MATLAB AND RECEIVE_STOP_MATLAB when we stop matlab', () => {
|
|
459
433
|
fetchMock.putOnce('./start_matlab', {
|
|
460
434
|
body: {
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
RECEIVE_SERVER_STATUS,
|
|
9
9
|
REQUEST_SET_LICENSING,
|
|
10
10
|
REQUEST_UPDATE_LICENSING,
|
|
11
|
-
|
|
11
|
+
REQUEST_SHUTDOWN_INTEGRATION,
|
|
12
12
|
REQUEST_STOP_MATLAB,
|
|
13
13
|
REQUEST_START_MATLAB,
|
|
14
14
|
REQUEST_ENV_CONFIG,
|
|
15
15
|
RECEIVE_SET_LICENSING,
|
|
16
16
|
RECEIVE_UPDATE_LICENSING,
|
|
17
|
-
|
|
17
|
+
RECEIVE_SHUTDOWN_INTEGRATION,
|
|
18
18
|
RECEIVE_STOP_MATLAB,
|
|
19
19
|
RECEIVE_START_MATLAB,
|
|
20
20
|
RECEIVE_ERROR,
|
|
@@ -162,15 +162,15 @@ export function receiveUpdateLicensing (status) {
|
|
|
162
162
|
};
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
-
export function
|
|
165
|
+
export function requestShutdownIntegration () {
|
|
166
166
|
return {
|
|
167
|
-
type:
|
|
167
|
+
type: REQUEST_SHUTDOWN_INTEGRATION
|
|
168
168
|
};
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
export function
|
|
171
|
+
export function receiveShutdownIntegration (status) {
|
|
172
172
|
return {
|
|
173
|
-
type:
|
|
173
|
+
type: RECEIVE_SHUTDOWN_INTEGRATION,
|
|
174
174
|
status,
|
|
175
175
|
loadUrl: '../'
|
|
176
176
|
};
|
|
@@ -244,7 +244,7 @@ export function fetchServerStatus (requestTransferSession = false) {
|
|
|
244
244
|
const isAuthEnabled = selectAuthEnabled(getState());
|
|
245
245
|
const isAuthenticated = selectIsAuthenticated(getState());
|
|
246
246
|
const clientIdInState = selectClientId(getState());
|
|
247
|
-
const clientId = clientIdInState
|
|
247
|
+
const clientId = clientIdInState;
|
|
248
248
|
|
|
249
249
|
dispatch(requestServerStatus());
|
|
250
250
|
let url = './get_status';
|
|
@@ -269,7 +269,6 @@ export function fetchServerStatus (requestTransferSession = false) {
|
|
|
269
269
|
dispatch(receiveServerStatus(data));
|
|
270
270
|
|
|
271
271
|
if (clientId == null && data.clientId) {
|
|
272
|
-
sessionStorage.setItem('MWI_CLIENT_ID', data.clientId);
|
|
273
272
|
dispatch(setClientId(data.clientId));
|
|
274
273
|
}
|
|
275
274
|
if ('isActiveClient' in data) {
|
|
@@ -375,7 +374,7 @@ export function fetchUnsetLicensing () {
|
|
|
375
374
|
};
|
|
376
375
|
}
|
|
377
376
|
|
|
378
|
-
export function
|
|
377
|
+
export function fetchShutdownIntegration () {
|
|
379
378
|
return async function (dispatch, getState) {
|
|
380
379
|
const options = {
|
|
381
380
|
method: 'DELETE',
|
|
@@ -384,10 +383,10 @@ export function fetchTerminateIntegration () {
|
|
|
384
383
|
credentials: 'same-origin'
|
|
385
384
|
};
|
|
386
385
|
|
|
387
|
-
dispatch(
|
|
388
|
-
const response = await fetchWithTimeout(dispatch, './
|
|
386
|
+
dispatch(requestShutdownIntegration());
|
|
387
|
+
const response = await fetchWithTimeout(dispatch, './shutdown_integration', options, 15000);
|
|
389
388
|
const data = await response.json();
|
|
390
|
-
dispatch(
|
|
389
|
+
dispatch(receiveShutdownIntegration(data));
|
|
391
390
|
};
|
|
392
391
|
}
|
|
393
392
|
|
|
@@ -8,12 +8,12 @@ export const REQUEST_SERVER_STATUS = 'REQUEST_SERVER_STATUS';
|
|
|
8
8
|
export const RECEIVE_SERVER_STATUS = 'RECEIVE_SERVER_STATUS';
|
|
9
9
|
export const REQUEST_SET_LICENSING = 'REQUEST_SET_LICENSING';
|
|
10
10
|
export const REQUEST_UPDATE_LICENSING = 'REQUEST_UPDATE_LICENSING';
|
|
11
|
-
export const
|
|
11
|
+
export const REQUEST_SHUTDOWN_INTEGRATION = 'REQUEST_SHUTDOWN_INTEGRATION';
|
|
12
12
|
export const REQUEST_STOP_MATLAB = 'REQUEST_STOP_MATLAB';
|
|
13
13
|
export const REQUEST_START_MATLAB = 'REQUEST_START_MATLAB';
|
|
14
14
|
export const RECEIVE_SET_LICENSING = 'RECEIVE_SET_LICENSING';
|
|
15
15
|
export const RECEIVE_UPDATE_LICENSING = 'RECEIVE_UPDATE_LICENSING';
|
|
16
|
-
export const
|
|
16
|
+
export const RECEIVE_SHUTDOWN_INTEGRATION = 'RECEIVE_SHUTDOWN_INTEGRATION';
|
|
17
17
|
export const RECEIVE_STOP_MATLAB = 'RECEIVE_STOP_MATLAB';
|
|
18
18
|
export const RECEIVE_START_MATLAB = 'RECEIVE_START_MATLAB';
|
|
19
19
|
export const RECEIVE_ERROR = 'RECEIVE_ERROR';
|
|
@@ -143,13 +143,9 @@ describe('App Component', () => {
|
|
|
143
143
|
initialState
|
|
144
144
|
});
|
|
145
145
|
|
|
146
|
-
const
|
|
146
|
+
const paragraphElement = [...container.getElementsByTagName('pre')][0];
|
|
147
147
|
|
|
148
|
-
expect(
|
|
149
|
-
paragraphElements.some((p) =>
|
|
150
|
-
p.textContent.includes('integration terminated')
|
|
151
|
-
)
|
|
152
|
-
).toBe(true);
|
|
148
|
+
expect(paragraphElement.textContent.includes('terminated or the session ended')).toBe(true);
|
|
153
149
|
});
|
|
154
150
|
|
|
155
151
|
it('should display MatlabInstallError', () => {
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// Copyright 2024 The MathWorks, Inc.
|
|
2
|
+
|
|
3
|
+
// File to test IDLE and BUFFER timeouts.
|
|
4
|
+
// Need a seperate file for mocking BUFFER_TIMEOUT_DURATION before App component is imported for testing.
|
|
5
|
+
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
import fetchMock from 'fetch-mock';
|
|
9
|
+
import state from '../../test/utils/state';
|
|
10
|
+
import { createStatusResponse } from '../../test/utils/responses';
|
|
11
|
+
import { render } from '../../test/utils/react-test';
|
|
12
|
+
import { waitFor } from '@testing-library/react';
|
|
13
|
+
import * as responses from '../../test/utils/responses';
|
|
14
|
+
import {screen} from '@testing-library/dom';
|
|
15
|
+
|
|
16
|
+
import App from './index';
|
|
17
|
+
//
|
|
18
|
+
// Mock BUFFER_TIMEOUT_DURATION before import App.
|
|
19
|
+
jest.mock('../../constants', () => ({
|
|
20
|
+
BUFFER_TIMEOUT_DURATION: 1
|
|
21
|
+
}));
|
|
22
|
+
|
|
23
|
+
const _ = require('lodash');
|
|
24
|
+
|
|
25
|
+
describe('Timeouts in App Component', () => {
|
|
26
|
+
let initialState;
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
initialState = _.cloneDeep(state);
|
|
29
|
+
|
|
30
|
+
// As the tests are run in a NodeJS environment whereas the correct values for document.URL and window.location.href
|
|
31
|
+
// are set by the browser, for tests, set the appropriate values for document.URL, window.location.href and window.location.origin
|
|
32
|
+
// for the component to render without errors
|
|
33
|
+
// Delete and redefine 'origin' and 'href' properties as they are read-only.
|
|
34
|
+
delete window.location;
|
|
35
|
+
window.location = {
|
|
36
|
+
origin: '/',
|
|
37
|
+
href: 'http://127.0.0.1/'
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
initialState.serverStatus.licensingInfo.entitlements = [{ id: '1234567', label: null, license_number: '7654321' }];
|
|
41
|
+
initialState.serverStatus.licensingInfo.entitlementId = '1234567';
|
|
42
|
+
|
|
43
|
+
const mockIntersectionObserver = jest.fn();
|
|
44
|
+
mockIntersectionObserver.mockReturnValue({
|
|
45
|
+
observe: () => null,
|
|
46
|
+
disconnect: () => null
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
window.IntersectionObserver = mockIntersectionObserver;
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
afterEach(() => {
|
|
53
|
+
jest.clearAllMocks();
|
|
54
|
+
fetchMock.restore();
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('should dispatch fetchShutdownIntegration when both IDLE and BUFFER timer expires', async () => {
|
|
58
|
+
// Hide the tutorial and make the overlay visible
|
|
59
|
+
initialState.tutorialHidden = true;
|
|
60
|
+
initialState.overlayVisibility = true;
|
|
61
|
+
initialState.idleTimeoutDuration = 1;
|
|
62
|
+
const mockBufferTimeoutDuration = 1;
|
|
63
|
+
// Takes a tiny amount of time(10ms) apart from idleTimeoutDuration + bufferTimeoutDuration
|
|
64
|
+
// for fetchMock to be called for the second time. Only specific to this test. Using 1000ms for test to pass in CI systems.
|
|
65
|
+
const additionalTimeForFetchMock = 1;
|
|
66
|
+
|
|
67
|
+
// Mock initial fetchServerStatus response
|
|
68
|
+
fetchMock.getOnce('/get_status', {
|
|
69
|
+
body: createStatusResponse,
|
|
70
|
+
headers: { 'content-type': 'application/json' }
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
// Mock fetchShutdownIntegration response
|
|
74
|
+
fetchMock.deleteOnce('/shutdown_integration', {
|
|
75
|
+
body: createStatusResponse,
|
|
76
|
+
headers: { 'content-type': 'application/json' }
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
render(<App />, {
|
|
80
|
+
initialState
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
await waitFor(() => {
|
|
84
|
+
expect(fetchMock.called('get_status')).toBe(true);
|
|
85
|
+
expect(fetchMock.called('shutdown_integration')).toBe(true);
|
|
86
|
+
}, { timeout: initialState.idleTimeoutDuration * 1000 + mockBufferTimeoutDuration * 1000 + additionalTimeForFetchMock * 1000 });
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it('should show TerminationWarning dialog box when IDLE timer expires', async () => {
|
|
90
|
+
// Hide the tutorial and make the overlay visible
|
|
91
|
+
initialState.tutorialHidden = true;
|
|
92
|
+
initialState.overlayVisibility = true;
|
|
93
|
+
initialState.idleTimeoutDuration = 1;
|
|
94
|
+
|
|
95
|
+
// Mock initial fetchServerStatus response
|
|
96
|
+
fetchMock.getOnce('/get_status', {
|
|
97
|
+
status: 200,
|
|
98
|
+
body: responses.createStatusResponse,
|
|
99
|
+
headers: { 'Content-Type': 'application/json' }
|
|
100
|
+
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
const consoleSpy = jest.spyOn(console, 'log').mockImplementation();
|
|
104
|
+
|
|
105
|
+
const { getByTestId } = render(<App />, {
|
|
106
|
+
initialState
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
await waitFor(() => {
|
|
110
|
+
const shutdownWarningDialogBox = getByTestId('ShutdownWarning');
|
|
111
|
+
expect(shutdownWarningDialogBox).toBeInTheDocument();
|
|
112
|
+
const hasLog = consoleSpy.mock.calls.some(call => {
|
|
113
|
+
return call[0].includes('The IDLE timer has expired due to inactivity. Will display Shutdown Warning to the user.');
|
|
114
|
+
});
|
|
115
|
+
expect(hasLog).toBe(true);
|
|
116
|
+
}, { timeout: initialState.idleTimeoutDuration * 1000 });
|
|
117
|
+
|
|
118
|
+
consoleSpy.mockRestore();
|
|
119
|
+
});
|
|
120
|
+
});
|