diff --git a/public/javascripts/app/templates/aspects-dropdown.handlebars b/public/javascripts/app/templates/aspects-dropdown.handlebars index 1596933e3..de4452e15 100644 --- a/public/javascripts/app/templates/aspects-dropdown.handlebars +++ b/public/javascripts/app/templates/aspects-dropdown.handlebars @@ -1,4 +1,3 @@ -
@@ -6,15 +5,14 @@
- - - - - \ No newline at end of file diff --git a/public/javascripts/app/views/aspects_dropdown_view.js b/public/javascripts/app/views/aspects_dropdown_view.js index 263d2ab28..02386c613 100644 --- a/public/javascripts/app/views/aspects_dropdown_view.js +++ b/public/javascripts/app/views/aspects_dropdown_view.js @@ -12,7 +12,8 @@ app.views.AspectsDropdown = app.views.Base.extend({ var link = $(evt.target) , visibilityCallbacks = { 'public' : setPublic, - 'all-aspects' : setPrivate + 'all-aspects' : setPrivate, + 'custom' : setCustom } visibilityCallbacks[link.data("visibility") || "all-aspects"].call(this) @@ -26,6 +27,11 @@ app.views.AspectsDropdown = app.views.Base.extend({ this.setAspectIds("all_aspects") this.setDropdownText(link.text()) } + + function setCustom (){ + this.setAspectIds(link.data("aspect-id")) + this.setDropdownText(link.text()) + } }, setDropdownText : function(text){ diff --git a/spec/javascripts/app/views/aspects_dropdown_view_spec.js b/spec/javascripts/app/views/aspects_dropdown_view_spec.js index e1e4d2aaf..eb34414f7 100644 --- a/spec/javascripts/app/views/aspects_dropdown_view_spec.js +++ b/spec/javascripts/app/views/aspects_dropdown_view_spec.js @@ -1,5 +1,13 @@ describe("app.views.AspectsDropdown", function(){ beforeEach(function(){ + loginAs(factory.user({ + aspects : [ + { id : 3, name : "sauce" }, + { id : 5, name : "conf" }, + { id : 7, name : "lovers" } + ] + })) + this.view = new app.views.AspectsDropdown }) @@ -40,5 +48,20 @@ describe("app.views.AspectsDropdown", function(){ expect($.trim(this.view.$(".dropdown-toggle .text").text())).toBe("All Aspects") }) }) + + + describe("selecting An Aspect", function(){ + beforeEach(function(){ + this.view.$("a:contains('lovers')").click() + }) + + it("calls set aspect_ids to to the aspect id", function(){ + expect(this.view.$("input.aspect_ids").val()).toBe("7") + }) + + it("sets the dropdown title to the aspect title", function(){ + expect($.trim(this.view.$(".dropdown-toggle .text").text())).toBe("lovers") + }) + }) }) }) \ No newline at end of file diff --git a/spec/javascripts/helpers/factory.js b/spec/javascripts/helpers/factory.js index 03be9097c..35e16bc8d 100644 --- a/spec/javascripts/helpers/factory.js +++ b/spec/javascripts/helpers/factory.js @@ -33,6 +33,10 @@ factory = { return new app.models.Comment(_.extend(defaultAttrs, overrides)) }, + user : function(overrides) { + return new app.models.User(factory.userAttrs(overrides)) + }, + userAttrs : function(overrides){ var id = this.id.next() var defaultAttrs = {