59 lines
2.7 KiB
JavaScript
59 lines
2.7 KiB
JavaScript
describe("Diaspora.Mobile.Conversations", function() {
|
|
beforeEach(function() {
|
|
spec.loadFixture("conversations_new_mobile");
|
|
Diaspora.Page = "ConversationsNew";
|
|
});
|
|
|
|
afterEach(function() {
|
|
$(document).off("ajax:success", Diaspora.Mobile.Conversations.conversationCreateSuccess);
|
|
$(document).off("ajax:error", Diaspora.Mobile.Conversations.conversationCreateError);
|
|
});
|
|
|
|
describe("conversationCreateSuccess", function() {
|
|
it("is called when there was a successful ajax request for the conversation form", function() {
|
|
spyOn(Diaspora.Mobile.Conversations, "conversationCreateSuccess");
|
|
Diaspora.Mobile.Conversations.initialize();
|
|
|
|
$("#flash-messages").trigger("ajax:success", [{id: 23}]);
|
|
expect(Diaspora.Mobile.Conversations.conversationCreateSuccess).not.toHaveBeenCalled();
|
|
|
|
$("#new-conversation").trigger("ajax:error", [{responseText: "error"}]);
|
|
expect(Diaspora.Mobile.Conversations.conversationCreateSuccess).not.toHaveBeenCalled();
|
|
|
|
$("#new-conversation").trigger("ajax:success", [{id: 23}]);
|
|
expect(Diaspora.Mobile.Conversations.conversationCreateSuccess).toHaveBeenCalled();
|
|
});
|
|
|
|
it("redirects to the new conversation", function() {
|
|
spyOn(Diaspora.Mobile, "changeLocation");
|
|
Diaspora.Mobile.Conversations.initialize();
|
|
$("#new-conversation").trigger("ajax:success", [{id: 23}]);
|
|
expect(Diaspora.Mobile.changeLocation).toHaveBeenCalledWith(Routes.conversation(23));
|
|
});
|
|
});
|
|
|
|
describe("conversationCreateError", function() {
|
|
it("is called when an ajax request failed for the conversation form", function() {
|
|
spyOn(Diaspora.Mobile.Conversations, "conversationCreateError");
|
|
Diaspora.Mobile.Conversations.initialize();
|
|
|
|
$("#flash-messages").trigger("ajax:error", [{responseText: "error"}]);
|
|
expect(Diaspora.Mobile.Conversations.conversationCreateError).not.toHaveBeenCalled();
|
|
|
|
$("#new-conversation").trigger("ajax:success", [{id: 23}]);
|
|
expect(Diaspora.Mobile.Conversations.conversationCreateError).not.toHaveBeenCalled();
|
|
|
|
$("#new-conversation").trigger("ajax:error", [{responseText: "error"}]);
|
|
expect(Diaspora.Mobile.Conversations.conversationCreateError).toHaveBeenCalled();
|
|
});
|
|
|
|
it("shows a flash message", function() {
|
|
spyOn(Diaspora.Mobile.Alert, "handleAjaxError").and.callThrough();
|
|
Diaspora.Mobile.Conversations.initialize();
|
|
var response = {status: 422, responseText: "Oh noez! Something went wrong!"};
|
|
$("#new-conversation").trigger("ajax:error", response);
|
|
expect(Diaspora.Mobile.Alert.handleAjaxError).toHaveBeenCalledWith(response);
|
|
expect($("#flash-messages")).toHaveText("Oh noez! Something went wrong!");
|
|
});
|
|
});
|
|
});
|