diff options
author | Kushal Pandya <kushalspandya@gmail.com> | 2019-06-26 10:33:58 +0000 |
---|---|---|
committer | Kushal Pandya <kushalspandya@gmail.com> | 2019-06-26 10:33:58 +0000 |
commit | 565274aab2a496403c40626a386f86c02d742b23 (patch) | |
tree | 7e8601f1e9ad5afa64c5d38255e946a8fbb2d9b5 | |
parent | 2428a550e401ae3083d9dbe604a6a362703e4779 (diff) | |
parent | 71c53eeca8f2e0fe89963887f89d0f1a6018449a (diff) | |
download | gitlab-ce-565274aab2a496403c40626a386f86c02d742b23.tar.gz |
Merge branch 'from-installable-to-not-installable' into 'master'
Handle dependencies between cluster managed apps installation status
See merge request gitlab-org/gitlab-ce!29999
-rw-r--r-- | app/assets/javascripts/clusters/services/application_state_machine.js | 6 | ||||
-rw-r--r-- | spec/frontend/clusters/services/application_state_machine_spec.js | 16 |
2 files changed, 15 insertions, 7 deletions
diff --git a/app/assets/javascripts/clusters/services/application_state_machine.js b/app/assets/javascripts/clusters/services/application_state_machine.js index 17ea4d77795..6e632519d8a 100644 --- a/app/assets/javascripts/clusters/services/application_state_machine.js +++ b/app/assets/javascripts/clusters/services/application_state_machine.js @@ -80,6 +80,9 @@ const applicationStateMachine = { installFailed: false, }, }, + [NOT_INSTALLABLE]: { + target: NOT_INSTALLABLE, + }, // This is possible in artificial environments for E2E testing [INSTALLED]: { target: INSTALLED, @@ -108,6 +111,9 @@ const applicationStateMachine = { updateSuccessful: false, }, }, + [NOT_INSTALLABLE]: { + target: NOT_INSTALLABLE, + }, [UNINSTALL_EVENT]: { target: UNINSTALLING, effects: { diff --git a/spec/frontend/clusters/services/application_state_machine_spec.js b/spec/frontend/clusters/services/application_state_machine_spec.js index c146ef79be7..8632c5c4e26 100644 --- a/spec/frontend/clusters/services/application_state_machine_spec.js +++ b/spec/frontend/clusters/services/application_state_machine_spec.js @@ -72,9 +72,10 @@ describe('applicationStateMachine', () => { describe(`current state is ${INSTALLABLE}`, () => { it.each` - expectedState | event | effects - ${INSTALLING} | ${INSTALL_EVENT} | ${{ installFailed: false }} - ${INSTALLED} | ${INSTALLED} | ${NO_EFFECTS} + expectedState | event | effects + ${INSTALLING} | ${INSTALL_EVENT} | ${{ installFailed: false }} + ${INSTALLED} | ${INSTALLED} | ${NO_EFFECTS} + ${NOT_INSTALLABLE} | ${NOT_INSTALLABLE} | ${NO_EFFECTS} `(`transitions to $expectedState on $event event and applies $effects`, data => { const { expectedState, event, effects } = data; const currentAppState = { @@ -108,9 +109,10 @@ describe('applicationStateMachine', () => { describe(`current state is ${INSTALLED}`, () => { it.each` - expectedState | event | effects - ${UPDATING} | ${UPDATE_EVENT} | ${{ updateFailed: false, updateSuccessful: false }} - ${UNINSTALLING} | ${UNINSTALL_EVENT} | ${{ uninstallFailed: false, uninstallSuccessful: false }} + expectedState | event | effects + ${UPDATING} | ${UPDATE_EVENT} | ${{ updateFailed: false, updateSuccessful: false }} + ${UNINSTALLING} | ${UNINSTALL_EVENT} | ${{ uninstallFailed: false, uninstallSuccessful: false }} + ${NOT_INSTALLABLE} | ${NOT_INSTALLABLE} | ${NO_EFFECTS} `(`transitions to $expectedState on $event event and applies $effects`, data => { const { expectedState, event, effects } = data; const currentAppState = { @@ -119,7 +121,7 @@ describe('applicationStateMachine', () => { expect(transitionApplicationState(currentAppState, event)).toEqual({ status: expectedState, - ...effects, + ...noEffectsToEmptyObject(effects), }); }); }); |