1 describe("app.data.Model", function() {
3 var Model = window.app.data.Model;
5 it("test setting model does a shallow copy", function() {
7 var array = [ 1, 2, 3 ];
15 expect( m.get("foo") ).toBe("bar");
16 expect( m.get("array").length ).toBe( 3 );
17 expect( m.get("array")[1] ).toBe( 2 );
18 expect( m.get("array") ).toBe( array );
19 expect( m.get("test") ).toBe( test );
22 it("should replace model with shallow copy when put with no path", function() {
23 var m = new Model({ foo: "bar" });
24 m.set({ bar: "blat" });
25 expect( m.get("foo")).toBe( undefined );
26 expect( m.get("bar")).toBe("blat");
29 it("test getting values from deep in a model", function() {
42 expect( m.get("foo.bar.baz.quix") ).toBe( "abcdefg" );
45 it("test setting non-existant values creates new values", function() {
53 m.set("foo.bar", "123" );
54 m.set("foo.baz", "456" );
55 expect( m.get("foo.bar") ).toBe( "123" );
56 expect( m.get("foo.baz") ).toBe( "456" );
59 it("test setting values deep in a model", function() {
67 m.set("foo.bar", "123" );
68 m.set("foo.baz", "456" );
69 m.set("foo.something.else.is.here", "xyz" );
70 expect( m.get("foo.something.else.is").here ).toBe( "xyz" );
71 expect( m.get("foo.something.else.is.here") ).toBe( "xyz" );