From cee8117322e6160c69b0ab500d057cc1f9f74307 Mon Sep 17 00:00:00 2001 From: James Newbery Date: Wed, 23 Mar 2011 08:53:32 +0000 Subject: [PATCH] Various amendments --- public/javascripts/collections/Todos.js | 1 + spec/javascripts/collections/Todos.spec.js | 8 ++++---- spec/javascripts/models/Todo.spec.js | 10 ++++++---- spec/javascripts/support/jasmine.yml | 3 ++- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/public/javascripts/collections/Todos.js b/public/javascripts/collections/Todos.js index 5fb8b8c..39ecef4 100644 --- a/public/javascripts/collections/Todos.js +++ b/public/javascripts/collections/Todos.js @@ -1,6 +1,7 @@ var Todos = Backbone.Collection.extend({ url: '/todos', + model: Todo, parse: function(response) { var todos = response.response.todos; diff --git a/spec/javascripts/collections/Todos.spec.js b/spec/javascripts/collections/Todos.spec.js index 0c64fd2..e1a15be 100644 --- a/spec/javascripts/collections/Todos.spec.js +++ b/spec/javascripts/collections/Todos.spec.js @@ -34,9 +34,9 @@ describe("Todos collection", function() { describe("When instantiated with model literal", function() { beforeEach(function() { - this.model = new Backbone.Model({id: 5, title: 'Foo'}) + this.model = new Backbone.Model({id: 5, title: "Foo"}); this.todoStub.returns(this.model); - this.todos.add(this.model); + this.todos.add({id:5, title:"Foo"}); }); it("should have 1 Todo model", function() { @@ -44,11 +44,11 @@ describe("Todos collection", function() { }); it("should find a model by id", function() { - expect(this.todos.get(5)).toEqual(this.model); + expect(this.todos.get(5).get("id")).toEqual(this.model.get("id")); }); it("should find a model by index", function() { - expect(this.todos.at(0)).toEqual(this.model); + expect(this.todos.at(0).get("id")).toEqual(this.model.get("id")); }); }); diff --git a/spec/javascripts/models/Todo.spec.js b/spec/javascripts/models/Todo.spec.js index 5c13457..5f67895 100644 --- a/spec/javascripts/models/Todo.spec.js +++ b/spec/javascripts/models/Todo.spec.js @@ -5,8 +5,10 @@ describe("Todo model", function() { title: "Rake leaves", tags: ["garden", "weekend"] }); - this.Col = Backbone.Collection.extend({url: "/collection"}); - this.collection = new this.Col([this.todo]); + var collection = { + url: "/collection" + }; + this.todo.collection = collection; }); describe("when instantiated", function() { @@ -62,12 +64,12 @@ describe("Todo model", function() { this.server.restore(); }); - it("should not save when title is undefined", function() { + it("should not save when title is empty", function() { this.todo.bind("error", this.eventSpy); this.todo.save({"title": ""}); + expect(this.eventSpy).toHaveBeenCalledOnce(); expect(this.eventSpy).toHaveBeenCalledWith(this.todo, "cannot have an empty title"); - expect(this.server.requests.length).toEqual(0); }); it("should make a save request to the server", function() { diff --git a/spec/javascripts/support/jasmine.yml b/spec/javascripts/support/jasmine.yml index 02a22fc..5554025 100644 --- a/spec/javascripts/support/jasmine.yml +++ b/spec/javascripts/support/jasmine.yml @@ -17,7 +17,8 @@ src_files: - public/javascripts/lib/jquery-1.5.1.min.js - public/javascripts/lib/underscore-min.js - public/javascripts/lib/backbone-min.js - - public/javascripts/**/*.js + - public/javascripts/models/*.js + - public/javascripts/collections/*.js # stylesheets #