* Add better type safety around Channels
- Reallow non-JSON serializable complex types
- Remove unnecessary JSON serialization step to IPC
- Remove unnecesary injectable-ization of MessageChannel and
RequestChannel declarations
- Add channel listener injectable getter function to remove general need
for type casting and improve type safety
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Add check to verify data in IPC related tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix implementation in light of new safety check in tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix listener ID clash potential
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Switch to not forcing split of request channel handlers being seperate from the listener decl
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Move message channels to changed signature too
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix not registering listener
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix test imports
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix type errors
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Refactor listening of different channel kinds
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Add test covering new checking code for request channel handlers
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix windows shell not having all environment variables
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix startup due to buildVersion dependency
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Call cleanup in computeShellEnvironment
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix loading helm release details
- The helm manifest can sometimes contain KubeJsonApiDataLists
instead of just KubeJsonApiData entries
- Add additional logging to main for when a route handler throws so that
we can gain more context in the future
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Update tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix usage of getHelmReleaseResources
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Add test to verify handling of Lists being returned
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
- Includes local fixes that are required by the new code
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Making apiBase injectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Convert all of Helm functions to be DI
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Make PortForward's use of apiBase fully injectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Convert all metric requests to be injectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Replace resource applier with injectables
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Switch KubeJsonApi.forCluster to be injectable but do not use
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Convert the rest of shell sessions to be DI-ed
- This is a prerequesit for using the new
createKubeJsonApiForClusterInjectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Use new createKubeJsonApiForClusterInjectable for openNodeShellSession
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Make KubeconfigDialog injectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove jest-fetch-mock and make fetch injectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix tests with new global override
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Add new injectable for create KubeJsonApi and JsonApi instances
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix showing-details-for-helm-release behavioural tests
- Remove HelmChartStore in favour of all injectables
- Create a model for UpgradeChartDockTab
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix show details and updating helm releases tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix residual typing issues related to metrics
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix crash on load due to circular dependency
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix create resource tab not working
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove legacy apiBase global
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Introduce and use isDebuggingInjectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Introduce and use windowLocationInjectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove global legacy apiKube
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Improve injectable filenames compared to the injectables inside
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove modifying input in requestActivePortForwardInjectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Introduce and use get(Milli)SecondsFromUnixEpochInjectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Switch to non-reactive way of gettting possible helm release versions
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix typo
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix bug in KubeApi constructor
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Convert all KubeApi related tests to use asyncFn
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix unit tests after introducing new injectables that have side effects
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix bad rebase causing tests to fail
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Improve expects for multiple field values
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix crash will looking up api refs
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix breaking change on KubeApi.list
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Better fix for formatting urls
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove injectable for time since we should just use useMockTime
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Add happy path behavioural tests for upgrade chart tab
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove debug message
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Update snapshots
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* fix showing-details-for-helm-release tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix installing-helm-chart-from-new-tab tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix tests relating to hosted cluster id
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Update snapshots to recent changes in master
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
* Reupdated upgrade chart new tab test snapshots
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix flakiness in unit test when using <Animated>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix flakiness and improve tests for DeleteClusterDialog
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix kubeconfig-sync tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix <Extensions> tests by removing mockFs and making everything injectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix build issues
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix getElectronAppPathInjectable override not returning absolute paths
- Also fixes the listing-active-helm-repos-in-prefs tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Replace all uses of getAbsolutePath with joinPaths as it is more correct and less confusing
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix opening application window tests by making override properly absolute
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Update snapshots relating no longer using getAbsolutePath
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix and add behavioural tests for RenderDelay
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix extension discovery tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix test flakiness because of path side effects, propagate uses to as many places
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix extension-discovery tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Add global override to fix some tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Rewrite and fix implementation of KubeconfigManager and its tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix tests by global override pathExists
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix unit tests failing on windows by using injectable verions of path functions
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Attempt to fix test timeout by using runInAction
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Update snapshots after rebase
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Update snapshots after rebase
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix tests after rebase
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix setupIpcMainHandlers usage
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Update snapshots
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
Co-authored-by: Iku-turso <mikko.aspiala@gmail.com>
* Make injecting CAs injectable, remove mac-ca as dependency
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix win-ca failing on electron renderer on windows
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix the matcher under features/ for main
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix lint
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Convert ReleaseChannel into an InitializableState
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix init timing for DefaultUpdateChannel
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Make UserStore loading seperate from creation to fix initialization timing errors
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix overrides of UserStore
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix UserStore tests
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Move userStoreFileMigration call to the init runnable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Add global override for userStoreFileMigratiom
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
- All the removed uses of `includePrerelease` that are removed were not
actually used within the semver package
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Replace static application window with ability to create as many as you wish
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Adapt tests for replacing static application window with ability to create as many as you wish and separate starting of main and window in behaviours
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Make first render of application smaller in test that proves to be hard for CI
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove redundant code
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Simplify code
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* show extension api version in about dialog
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* move buildVersionInjectable from common to main
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
* Upgrade to use electron 19.0.4
- Update documentation
- Updated disturl in .yarnrc to fix build issue
- Remove use of abort-controller package
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove support for webview tags
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Make openBrowser->openLinkInBrowser injectable
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove use of deprecated link matcher API from XtermJS
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix type errors
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Prevent opening of application if no new updates were downloaded when checking for updates using tray when application window is closed
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Fix getting initial value of sync box
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Tweak naming of variable
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Make sure release details are updates when opening details
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Relax filtering of resources to prevent crashing when release has installed resources in another namespace
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Add Open Closed Principle compliant way to introduce global overrides without modification in getDiForUnitTesting
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Rework helm release details to fix multiple bugs
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove redundant optional chaining
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Simplify code
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Relax validator for installing charts
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Tweak spacing between words in confirmation dialog
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Add mocks for monaco editor and virtualized auto sizer to allow components to be rendered in unit tests
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Improve typing for a function
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove usage of shared global state from a component
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Provide a way to unit test usages of storages
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Add way to get current value from select in behavioural unit tests
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Rework installation of helm charts to get rid of the majority of bugs
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Update snapshots
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove technical test for being covered in behaviours
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Split behaviour to smaller pieces
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Add tests accidentally removed back
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Mark functions causing side effects
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove behaviour covered by other behaviours
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Tweak naming
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove unused dependency
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Add guards to prevent activation errors slipping through
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Make sure all logging has a message, output less errors when prometheus fails
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Improve logging from getPortFromStream
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove the auto-update status bar item for not being needed anymore
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Make adding of new tray icons easier by complying to Open Closed Principle
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Start showing different tray icon when checking for updates
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Include placeholder icon for checking for updates
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Simplify code
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Add first keyframe for downloading spinner
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <sebastian@malton.name>
* Make root frame child components comply with open closed principle and include it in the behavioural unit tests
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Make cluster frame child components comply with open closed principle and include it in behavioural unit tests
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove duplication
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Simplify test
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Make a component more determistic in unit tests
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Mock uninterested, non-deterministic third party library in unit tests
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Optimize registration of injectables in unit tests to make tests faster
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Update snapshots
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* Remove import time side-effect causing memory leak
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
* auto-update notifications on the status bar
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* integrated with new and improved autoupdate code
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* lint
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* refactored to include AutoUpdateComponent in the statusBarItemsInjectable
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* refactor to use a registrator
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* fix lint, remove unused code
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* refactored for the simplified logic for injecting many instances PR
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* using the update syncBox injectables directly for status bar notifications
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* removed update broadcasting/listening, updated snapshots
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* fixing tests
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* fixed tests
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* cleanup after rebase to master
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* address review comments
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* fixed incorrect injectable id
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* address review comments
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
* Tweak code-style
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>