From 5e3fa0255341fea8d0842453ff034c3bf5f00ba2 Mon Sep 17 00:00:00 2001 From: "Luke \"Jared\" Bennett" Date: Wed, 5 Apr 2017 16:58:01 +0100 Subject: Added resolvable discussion frontend --- spec/javascripts/comment_type_toggle_spec.js | 79 ++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 spec/javascripts/comment_type_toggle_spec.js (limited to 'spec/javascripts/comment_type_toggle_spec.js') diff --git a/spec/javascripts/comment_type_toggle_spec.js b/spec/javascripts/comment_type_toggle_spec.js new file mode 100644 index 00000000000..d68c221f0ea --- /dev/null +++ b/spec/javascripts/comment_type_toggle_spec.js @@ -0,0 +1,79 @@ +import CommentTypeToggle from '~/comment_type_toggle'; +import DropLab from '@gitlab-org/droplab'; +import InputSetter from '@gitlab-org/droplab/dist/plugins/InputSetter'; + +describe('CommentTypeToggle', function () { + describe('class constructor', function () { + beforeEach(function () { + this.trigger = {}; + this.list = {}; + this.input = {}; + this.button = {}; + + this.commentTypeToggle = new CommentTypeToggle( + this.trigger, + this.list, + this.input, + this.button, + ); + }); + + it('should set .trigger', function () { + expect(this.commentTypeToggle.trigger).toBe(this.trigger); + }); + + it('should set .list', function () { + expect(this.commentTypeToggle.list).toBe(this.list); + }); + + it('should set .input', function () { + expect(this.commentTypeToggle.input).toBe(this.input); + }); + + it('should set .button', function () { + expect(this.commentTypeToggle.button).toBe(this.button); + }); + }); + + describe('initDroplab', function () { + beforeEach(function () { + this.commentTypeToggle = { + trigger: {}, + list: {}, + input: {}, + button: {}, + }; + + this.droplab = jasmine.createSpyObj('droplab', ['addHook']); + + spyOn(window, 'DropLab').and.returnValue(this.droplab); + + this.initDroplab = CommentTypeToggle.prototype.initDroplab.call(this.commentTypeToggle); + }); + + it('should instantiate a DropLab instance', function () { + expect(window.DropLab).toHaveBeenCalled(); + }); + + it('should set .droplab', function () { + expect(this.commentTypeToggle.droplab).toBe(this.droplab); + }); + + it('should call DropLab.prototype.addHook', function () { + expect(this.droplab.addHook).toHaveBeenCalledWith( + this.commentTypeToggle.trigger, + this.commentTypeToggle.list, + [InputSetter], + { + InputSetter: [{ + input: this.commentTypeToggle.input, + valueAttribute: 'data-value', + }, { + input: this.commentTypeToggle.button, + valueAttribute: 'data-button-text', + }], + }, + ); + }); + }); +}); -- cgit v1.2.1