AspectEdit#onDeleteRequestSuccess now adds and drops attributes properly

This commit is contained in:
Sarah Mei 2010-11-14 21:49:36 -08:00
parent e0c0d2036c
commit 45e47513c2
2 changed files with 26 additions and 6 deletions

View file

@ -50,7 +50,7 @@ var AspectEdit = {
type: "DELETE", type: "DELETE",
url: "/requests/" + person.attr('data-guid'), url: "/requests/" + person.attr('data-guid'),
data: {"accept" : true, "aspect_id" : dropzone.attr('data-aspect_id') }, data: {"accept" : true, "aspect_id" : dropzone.attr('data-aspect_id') },
success: function() { AspectEdit.onDeleteRequestSuccess(person); } success: function() { AspectEdit.onDeleteRequestSuccess(person, dropzone); }
}); });
} }
@ -70,9 +70,11 @@ var AspectEdit = {
dropzone.closest("ul").append(person); dropzone.closest("ul").append(person);
}, },
onDeleteRequestSuccess: function(person) { onDeleteRequestSuccess: function(person, dropzone) {
AspectEdit.decrementRequestsCounter(); AspectEdit.decrementRequestsCounter();
person.removeClass('request'); person.removeClass('request');
person.attr('data-aspect_id', dropzone.attr('data-aspect_id'));
person.removeAttr('data-person_id');
}, },
onMovePersonSuccess: function(person, dropzone) { onMovePersonSuccess: function(person, dropzone) {

View file

@ -183,14 +183,32 @@ describe("AspectEdit", function() {
); );
}); });
it("decrements the request counter", function() { it("decrements the request counter", function() {
var person = $('li.person');
var dropzone = $('.dropzone.ui-droppable[data-aspect_id="guid-of-target-aspect"]');
spyOn(AspectEdit, "decrementRequestsCounter"); spyOn(AspectEdit, "decrementRequestsCounter");
AspectEdit.onDeleteRequestSuccess($('li.person')); AspectEdit.onDeleteRequestSuccess(person, dropzone);
expect(AspectEdit.decrementRequestsCounter).toHaveBeenCalled(); expect(AspectEdit.decrementRequestsCounter).toHaveBeenCalled();
}); });
it("takes the request class off the person li", function() { it("takes the request class off the person li", function() {
expect($('li.person')).toHaveClass('request'); var person = $('li.person');
AspectEdit.onDeleteRequestSuccess($('li.person')); var dropzone = $('.dropzone.ui-droppable[data-aspect_id="guid-of-target-aspect"]');
expect($('li.person')).not.toHaveClass('request'); expect(person).toHaveClass('request');
AspectEdit.onDeleteRequestSuccess(person, dropzone);
expect(person).not.toHaveClass('request');
});
it("removes data-person_id from the li", function() {
var person = $('li.person');
var dropzone = $('.dropzone.ui-droppable[data-aspect_id="guid-of-target-aspect"]');
expect(person.attr("data-person_id")).toBeDefined();
AspectEdit.onDeleteRequestSuccess(person, dropzone);
expect(person.attr("data-person_id")).not.toBeDefined();
});
it("puts a data-aspect_id on the li", function() {
var person = $('li.person');
var dropzone = $('.dropzone.ui-droppable[data-aspect_id="guid-of-target-aspect"]');
expect(person.attr("data-aspect_id")).not.toBeDefined();
AspectEdit.onDeleteRequestSuccess(person, dropzone);
expect(person.attr("data-aspect_id")).toEqual("guid-of-target-aspect");
}); });
}); });