* Implement a lot of technical requirements for behavioural unit tests
Note: the crux of this was to make routing env-agnostic, and not based on URLs as magic strings, but instead something type-enforced.
Note: extension-based routes comply to same exact interface by "late-registering" their routes when installed. Routes are just injectables.
Note: another chunk of global shared state is no more.
Note: a lot of explicit side effects have been cornered to injectables.
Note: a lot of stuff has become reactive as part if this.
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Make a directory commonly available
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Require id for <Select /> to prevent non-deterministic renders
This was caused by global state in a 3rd party lib: "react-select".
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Specify id for all <Select /> to satisfy previous commit
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Prevent explicit side effect in component by using existing dependency instead
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Extract instantiation of "conf" as injectables for causing side effects
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Introduce a legacy-helper to make gradual refactoring of inheritors of Singleton easier
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Make legacy unit tests for hotbar green and more simple by using the new legacy helper
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Temporarily kludge all unit tests green with a disclaimer about allowing side-effects
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Remove kludge in previous commit by explicitly permitting specific side effects where old unit tests require it
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Prevent old unit test with side effects from accessing file system
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Migrate to actual typing for di.permitSideEffects
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Prevent unit tests from failing because of non-standard method of HTML-element not present in js-dom
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Adapt integration tests to recent changes
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Fix code style
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Fix artifact from bad rebase
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Add a deprecation from a review comment
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Remove change that is not required
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove redundant comment
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Fix code style
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove redundant file
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Fix bad merge
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Improve variable name
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Tweak logger interface to be more descriptive
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Make injecting legacy singleton always provide new instance
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove conditional typing when not needed
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Improve naming of variable
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove unnecessary code style changes
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove flag for causing side effects from too broad scope
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Override side-effects in unit test using injectable instead of monkey patching
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Flag some side-effects and add general overrides
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Fix unit tests in CI by removing explicit side-effect
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Remove explicit side-effect from getting default shell
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Introduce abstraction for getting absolute paths
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Switch to using abstraction for getting absolute path to control explicit side effect
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Introduce abstraction for joining paths
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Switch to using abstraction for joining paths to control explicit side effect
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Fix fake implementation for join paths
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Fix test after removing explicit side effect
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove explicit side effects from kubeconfig-syncs
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Fix arguments after removing explicit side effect
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Make registrators not async for not being needed anymore
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Make generalCatalogEntities non-observable, as there is no requirement
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Remove redundant code
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Simplify logic for registering general catalog entity sources
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Add TODO
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Replace function for getting application menu items with reactive solution
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Fix typo in interface name
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove global shared state usages of hot bar store
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove redundant enum
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
* Add context menu in topbar
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding windows title buttons
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding win sandwitch icon
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Hide windows controls behind the flags
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix topbar layout
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using topbar as draggable area
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix sandwich icon
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Mark no-draggable areas
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Remove ipcMainOn window calls
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Explicitly hide main window menu
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fix tests more
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Restore linux native view
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Not removing menu in linux
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Showing custom window buttons in Linux
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Remove frame on linux and windows
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Move open context menu event handler to initializers
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Set x, y context menu position explicitly
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Stop using remote to obtain app.getPath()
- Initialize entire map in bootstrap()
- Updated unit tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Resolve PR comments
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix test
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix build
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Ensure that init can only be called once and catch errors
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Replace basically all uses of app.getPath() with AppPaths.get()
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix unit tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix local cluster delete flow
- Now checks for the cluster being the current cluster and confirms the
action
- <ConfirmDialog> is fixed to work with several confirmations happinging
at once
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Custom delete cluster dialog
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Saving kubeconfig file refactoring
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Switching current-context from dialog
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up css styles
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Show Delete menu item only for local cluster
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Make all dialogs rounded
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Releasing kubeconfig file after lock
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding delete cluster dialog tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Cleaning up
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Delete cluster dialog refactoring
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing typo
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing temp file on error
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Updating tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Do not switch context if select is hidden
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing spread symbols
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Moving cluster delete event from catalog initializer to ipc
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Refactor warning messages
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Getting spread (...) back to fix Select render
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Using async form without promises
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Do not show context switcher if no contexts left
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Updating the tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* don't allow delete of the active cluster before setting to new active cluster (#3749)
* don't allow user to delete the active cluster before setting to new active cluster
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* fix lint issues
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* Show delete button if no more contexts available
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
Co-authored-by: Jim Ehrismann <40840436+jim-docker@users.noreply.github.com>
* Using entity name as cluster name in sidebar
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Use entity name if preferences name is empty
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* simplify
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Upgrade to electron 12 and Node 14
- Compute cluster ID for tests
- Switch to temporary appData path while testing
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
- If an KubernetesCluster entity is being deleted then the
catalogEntityRegistry.getById() will return undefined. This leads to
an unhandled exception in the handler because we tried to read
apiVersion. This commit changes it so that we get the apiVersion and
kind from KubernetesCluster class itself
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Adding General Entities and General Category
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Usign material icons for general entities
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Setting background for hotbar icon explicitly
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding Catalog initially to first hotbar
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Tuning hotbar store tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Changing type from GeneralEntity to General
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Search for catalog hotbar item in tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing Catalog link from bottom bar
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Waiting for hotbar catalog entity
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Opening cluster list by data-testId
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Replacing types on interfaces
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Fixing integration tests
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Adding general entities throught initializers
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
* Removing icon refs from CatalogEntitySpec
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>