diff options
Diffstat (limited to 'spec/frontend/terraform/components/states_table_spec.js')
-rw-r--r-- | spec/frontend/terraform/components/states_table_spec.js | 56 |
1 files changed, 48 insertions, 8 deletions
diff --git a/spec/frontend/terraform/components/states_table_spec.js b/spec/frontend/terraform/components/states_table_spec.js index f2b7bc00e5b..100e577f514 100644 --- a/spec/frontend/terraform/components/states_table_spec.js +++ b/spec/frontend/terraform/components/states_table_spec.js @@ -1,8 +1,8 @@ -import { GlIcon, GlTooltip } from '@gitlab/ui'; +import { GlIcon, GlLoadingIcon, GlTooltip } from '@gitlab/ui'; import { mount } from '@vue/test-utils'; import { useFakeDate } from 'helpers/fake_date'; -import StateActions from '~/terraform/components/states_table_actions.vue'; import StatesTable from '~/terraform/components/states_table.vue'; +import StateActions from '~/terraform/components/states_table_actions.vue'; describe('StatesTable', () => { let wrapper; @@ -11,7 +11,11 @@ describe('StatesTable', () => { const defaultProps = { states: [ { + _showDetails: true, + errorMessages: ['State 1 has errored'], name: 'state-1', + loadingLock: false, + loadingRemove: false, lockedAt: '2020-10-13T00:00:00Z', lockedByUser: { name: 'user-1', @@ -20,14 +24,22 @@ describe('StatesTable', () => { latestVersion: null, }, { + _showDetails: false, + errorMessages: [], name: 'state-2', + loadingLock: true, + loadingRemove: false, lockedAt: null, lockedByUser: null, updatedAt: '2020-10-10T00:00:00Z', latestVersion: null, }, { + _showDetails: false, + errorMessages: [], name: 'state-3', + loadingLock: true, + loadingRemove: false, lockedAt: '2020-10-10T00:00:00Z', lockedByUser: { name: 'user-2', @@ -54,7 +66,11 @@ describe('StatesTable', () => { }, }, { + _showDetails: true, + errorMessages: ['State 4 has errored'], name: 'state-4', + loadingLock: false, + loadingRemove: false, lockedAt: '2020-10-10T00:00:00Z', lockedByUser: null, updatedAt: '2020-10-10T00:00:00Z', @@ -76,6 +92,17 @@ describe('StatesTable', () => { }, }, }, + { + _showDetails: false, + errorMessages: [], + name: 'state-5', + loadingLock: false, + loadingRemove: true, + lockedAt: null, + lockedByUser: null, + updatedAt: '2020-10-10T00:00:00Z', + latestVersion: null, + }, ], }; @@ -96,14 +123,15 @@ describe('StatesTable', () => { }); it.each` - name | toolTipText | locked | lineNumber - ${'state-1'} | ${'Locked by user-1 2 days ago'} | ${true} | ${0} - ${'state-2'} | ${null} | ${false} | ${1} - ${'state-3'} | ${'Locked by user-2 5 days ago'} | ${true} | ${2} - ${'state-4'} | ${'Locked by Unknown User 5 days ago'} | ${true} | ${3} + name | toolTipText | locked | loading | lineNumber + ${'state-1'} | ${'Locked by user-1 2 days ago'} | ${true} | ${false} | ${0} + ${'state-2'} | ${'Locking state'} | ${false} | ${true} | ${1} + ${'state-3'} | ${'Unlocking state'} | ${false} | ${true} | ${2} + ${'state-4'} | ${'Locked by Unknown User 5 days ago'} | ${true} | ${false} | ${3} + ${'state-5'} | ${'Removing'} | ${false} | ${true} | ${4} `( 'displays the name and locked information "$name" for line "$lineNumber"', - ({ name, toolTipText, locked, lineNumber }) => { + ({ name, toolTipText, locked, loading, lineNumber }) => { const states = wrapper.findAll('[data-testid="terraform-states-table-name"]'); const state = states.at(lineNumber); @@ -111,6 +139,7 @@ describe('StatesTable', () => { expect(state.text()).toContain(name); expect(state.find(GlIcon).exists()).toBe(locked); + expect(state.find(GlLoadingIcon).exists()).toBe(loading); expect(toolTip.exists()).toBe(locked); if (locked) { @@ -154,6 +183,17 @@ describe('StatesTable', () => { expect(findActions().length).toEqual(0); }); + it.each` + errorMessage | lineNumber + ${defaultProps.states[0].errorMessages[0]} | ${0} + ${defaultProps.states[3].errorMessages[0]} | ${1} + `('displays table error message "$errorMessage"', ({ errorMessage, lineNumber }) => { + const states = wrapper.findAll('[data-testid="terraform-states-table-error"]'); + const state = states.at(lineNumber); + + expect(state.text()).toBe(errorMessage); + }); + describe('when user is a terraform administrator', () => { beforeEach(() => { return createComponent({ |