describe 'FeedbackForm', -> beforeEach -> loadFixtures 'feedback_form.html' describe 'constructor', -> beforeEach -> new FeedbackForm spyOn($, 'postWithPrefix').andCallFake (url, data, callback, format) -> callback() it 'binds to the #feedback_button', -> expect($('#feedback_button')).toHandle 'click' it 'post data to /send_feedback on click', -> $('#feedback_subject').val 'Awesome!' $('#feedback_message').val 'This site is really good.' $('#feedback_button').click() expect($.postWithPrefix).toHaveBeenCalledWith '/send_feedback', { subject: 'Awesome!' message: 'This site is really good.' url: window.location.href }, jasmine.any(Function), 'json' it 'replace the form with a thank you message', -> $('#feedback_button').click() expect($('#feedback_div').html()).toEqual 'Feedback submitted. Thank you'