mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-12-25 23:12:38 -05:00
37 lines
1.4 KiB
JavaScript
37 lines
1.4 KiB
JavaScript
|
var server;
|
||
|
|
||
|
module("Discourse.HeaderController", {
|
||
|
setup: function() {
|
||
|
server = sinon.fakeServer.create();
|
||
|
},
|
||
|
|
||
|
teardown: function() {
|
||
|
server.restore();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
test("showNotifications action", function() {
|
||
|
var controller = Discourse.HeaderController.create();
|
||
|
var viewSpy = {
|
||
|
showDropdownBySelector: sinon.spy()
|
||
|
};
|
||
|
Discourse.User.current().set("unread_notifications", 1);
|
||
|
server.respondWith("/notifications", [200, { "Content-Type": "application/json" }, '["notification"]']);
|
||
|
|
||
|
|
||
|
Ember.run(function() {
|
||
|
controller.send("showNotifications", viewSpy);
|
||
|
});
|
||
|
|
||
|
equal(controller.get("notifications"), null, "notifications are null before data has finished loading");
|
||
|
equal(Discourse.User.current().get("unread_notifications"), 1, "current user's unread notifications count is not zeroed before data has finished loading");
|
||
|
ok(viewSpy.showDropdownBySelector.notCalled, "dropdown with notifications is not shown before data has finished loading");
|
||
|
|
||
|
|
||
|
server.respond();
|
||
|
|
||
|
deepEqual(controller.get("notifications"), ["notification"], "notifications are set correctly after data has finished loading");
|
||
|
equal(Discourse.User.current().get("unread_notifications"), 0, "current user's unread notifications count is zeroed after data has finished loading");
|
||
|
ok(viewSpy.showDropdownBySelector.calledWith("#user-notifications"), "dropdown with notifications is shown after data has finished loading");
|
||
|
});
|