Simple Plugin
This plugin simply wraps the jQuery UI dialog (http://jqueryui.com/demos/dialog/).
do ($ = jQuery) -> methods = init: (options) -> dialogElement = $(options.dialogSelector) dialog = dialogElement.dialog autoOpen: false, modal: true, resizable: false $(options.inputSelector).click -> dialog.dialog 'open' $.fn.simple = (options) -> settings = dialogSelector:'.dialog', inputSelector:'.input' if options $.extend settings, options methods.init settingsPavlov Specs
QUnit is a JavaScript testing framework (learn more about it at http://docs.jquery.com/Qunit) and Pavlov (https://github.com/mmonteleone/pavlov) extends QUnit with several features that promote Behavior-Driven Development (BDD). Here's the example:
pavlov.specify "Simple Plugin", -> describe "Given default options", -> before -> $(this).simple() describe "when executing a click event", -> before -> $('.input').click() it "it should open the dialog", -> assert($('.dialog').parents('.ui-dialog:visible').length).isTrue() after -> $('.dialog').dialog('close') describe "When the click event has not been executed", -> it "it should not have an open dialog", -> assert($('.dialog').parents('.ui-dialog:visible').length).isFalse() after -> $('.dialog').dialog('close') describe "Given all custom options", -> before -> $(this).simple dialogSelector:'.customDialog', inputSelector:'.customInput' describe "when executing a click event", -> before -> $('.customInput').click() it "it should open the custom dialog", -> assert($('.customDialog').parents('.ui-dialog:visible').length).isTrue() after -> $('.customDialog').dialog('close') describe "Given only a custom dialogSelector", -> before -> $(this).simple dialogSelector:'.customDialog' describe "when executing a click event", -> before -> $('.input').click() it "it should open the custom dialog", -> assert($('.customDialog').parents('.ui-dialog:visible').length).isTrue() after -> $('.customDialog').dialog('close') describe "Given only a custom inputSelector", -> before -> $(this).simple inputSelector:'.customInput' describe "when executing a click event", -> before -> $('.customInput').click() it "it should open the dialog", -> assert($('.dialog').parents('.ui-dialog:visible').length).isTrue() after -> $('.dialog').dialog('close')The Output
Once we have this in place and create a simple test runner page, we end up with the standard QUnit output that looks like the following:
No comments:
Post a Comment