Skip to content

Instantly share code, notes, and snippets.

@eshiota
Created November 22, 2012 12:28

Revisions

  1. eshiota created this gist Nov 22, 2012.
    45 changes: 45 additions & 0 deletions gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,45 @@
    // sizeSelectionModule and addToCartModule are local variables that
    // act as shortcuts to their namespaces

    describe("when add to cart form is submitted", function () {
    var $form;

    beforeEach(function () {
    // We use div instead of form so we can just mock the submit behavior
    $form = $("<div />");
    });

    it("validates the size selection", function () {
    spyOn(sizeSelectionModule, "validate");

    addToCartModule.init($form);

    $form.trigger("submit");

    expect(sizeSelectionModule.validate).toHaveBeenCalled();
    });

    it("prevents form submission if size selection is invalid", function () {
    spyOnEvent($form, "submit");

    spyOn(sizeSelectionModule, "validate").andReturn(false);

    addToCartModule.init($form);

    $form.trigger("submit");

    expect("submit").toHaveBeenPreventedOn($form);
    });

    it("submits the form if size selection is valid", function () {
    spyOnEvent($form, "submit");

    spyOn(sizeSelectionModule, "validate").andReturn(true);

    addToCartModule.init($form);

    $form.trigger("submit");

    expect("submit").not.toHaveBeenPreventedOn($form);
    });
    });