diff options
Diffstat (limited to 'spec/frontend/boards/components/board_new_item_spec.js')
-rw-r--r-- | spec/frontend/boards/components/board_new_item_spec.js | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/spec/frontend/boards/components/board_new_item_spec.js b/spec/frontend/boards/components/board_new_item_spec.js index 0151d9c1c14..86cebc8a719 100644 --- a/spec/frontend/boards/components/board_new_item_spec.js +++ b/spec/frontend/boards/components/board_new_item_spec.js @@ -1,4 +1,5 @@ import { GlForm, GlFormInput, GlButton } from '@gitlab/ui'; +import { nextTick } from 'vue'; import { mountExtended } from 'helpers/vue_test_utils_helper'; import BoardNewItem from '~/boards/components/board_new_item.vue'; @@ -39,6 +40,27 @@ describe('BoardNewItem', () => { }); describe('template', () => { + describe('when the user provides a valid input', () => { + it('finds an enabled create button', async () => { + expect(wrapper.findByTestId('create-button').props('disabled')).toBe(true); + + wrapper.find(GlFormInput).vm.$emit('input', 'hello'); + await nextTick(); + + expect(wrapper.findByTestId('create-button').props('disabled')).toBe(false); + }); + }); + + describe('when the user types in a string with only spaces', () => { + it('disables the Create Issue button', async () => { + wrapper.find(GlFormInput).vm.$emit('input', ' '); + + await nextTick(); + + expect(wrapper.findByTestId('create-button').props('disabled')).toBe(true); + }); + }); + it('renders gl-form component', () => { expect(wrapper.findComponent(GlForm).exists()).toBe(true); }); @@ -80,6 +102,19 @@ describe('BoardNewItem', () => { ]); }); + it('emits `form-submit` event with trimmed title', async () => { + titleInput().setValue(' Foo '); + + await glForm().trigger('submit'); + + expect(wrapper.emitted('form-submit')[0]).toEqual([ + { + title: 'Foo', + list: mockList, + }, + ]); + }); + it('emits `scroll-board-list-` event with list.id on eventHub when `submit` is triggered on gl-form', async () => { jest.spyOn(eventHub, '$emit').mockImplementation(); await glForm().trigger('submit'); @@ -90,7 +125,7 @@ describe('BoardNewItem', () => { it('emits `form-cancel` event and clears title value when `reset` is triggered on gl-form', async () => { titleInput().setValue('Foo'); - await wrapper.vm.$nextTick(); + await nextTick(); expect(titleInput().element.value).toBe('Foo'); await glForm().trigger('reset'); |