diff options
Diffstat (limited to 'spec/javascripts/registry/components/table_registry_spec.js')
-rw-r--r-- | spec/javascripts/registry/components/table_registry_spec.js | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/spec/javascripts/registry/components/table_registry_spec.js b/spec/javascripts/registry/components/table_registry_spec.js index 7f5252a7d6c..d366c67a1b9 100644 --- a/spec/javascripts/registry/components/table_registry_spec.js +++ b/spec/javascripts/registry/components/table_registry_spec.js @@ -3,10 +3,14 @@ import tableRegistry from '~/registry/components/table_registry.vue'; import store from '~/registry/stores'; import { repoPropsData } from '../mock_data'; +const [firstImage] = repoPropsData.list; + describe('table registry', () => { let vm; let Component; + const findDeleteBtn = () => vm.$el.querySelector('.js-delete-registry'); + beforeEach(() => { Component = Vue.extend(tableRegistry); vm = new Component({ @@ -37,8 +41,30 @@ describe('table registry', () => { expect(textRendered).toContain(repoPropsData.list[0].size); }); - it('should be possible to delete a registry', () => { - expect(vm.$el.querySelector('.table tbody tr .js-delete-registry')).toBeDefined(); + describe('delete registry', () => { + it('should be possible to delete a registry', () => { + expect(findDeleteBtn()).toBeDefined(); + }); + + describe('clicked on delete', () => { + beforeEach(done => { + findDeleteBtn().click(); + Vue.nextTick(done); + }); + + it('should open confirmation modal and set itemToBeDeleted properly', () => { + expect(vm.itemToBeDeleted).toEqual(firstImage); + expect(vm.$el.querySelector('#confirm-image-deletion-modal')).not.toBeNull(); + }); + + it('should call deleteItem and reset itemToBeDeleted when confirming deletion', () => { + spyOn(vm, 'deleteItem').and.returnValue(Promise.resolve()); + vm.$el.querySelector('#confirm-image-deletion-modal .btn-danger').click(); + + expect(vm.deleteItem).toHaveBeenCalledWith(firstImage); + expect(vm.itemToBeDeleted).toBeNull(); + }); + }); }); describe('pagination', () => { |