diff options
Diffstat (limited to 'spec/javascripts/notes/components/note_actions/reply_button_spec.js')
-rw-r--r-- | spec/javascripts/notes/components/note_actions/reply_button_spec.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/javascripts/notes/components/note_actions/reply_button_spec.js b/spec/javascripts/notes/components/note_actions/reply_button_spec.js new file mode 100644 index 00000000000..11e1664a3f4 --- /dev/null +++ b/spec/javascripts/notes/components/note_actions/reply_button_spec.js @@ -0,0 +1,46 @@ +import Vuex from 'vuex'; +import { createLocalVue, mount } from '@vue/test-utils'; +import ReplyButton from '~/notes/components/note_actions/reply_button.vue'; + +describe('ReplyButton', () => { + const noteId = 'dummy-note-id'; + + let wrapper; + let convertToDiscussion; + + beforeEach(() => { + const localVue = createLocalVue(); + convertToDiscussion = jasmine.createSpy('convertToDiscussion'); + + localVue.use(Vuex); + const store = new Vuex.Store({ + actions: { + convertToDiscussion, + }, + }); + + wrapper = mount(ReplyButton, { + propsData: { + noteId, + }, + store, + sync: false, + localVue, + }); + }); + + afterEach(() => { + wrapper.destroy(); + }); + + it('dispatches convertToDiscussion with note ID on click', () => { + const button = wrapper.find({ ref: 'button' }); + + button.trigger('click'); + + expect(convertToDiscussion).toHaveBeenCalledTimes(1); + const [, payload] = convertToDiscussion.calls.argsFor(0); + + expect(payload).toBe(noteId); + }); +}); |