test/settings_test.rb in tynn-2.0.0.beta3 vs test/settings_test.rb in tynn-2.0.0.beta4

- old
+ new

@@ -48,6 +48,37 @@ @child2.set(:foo, "bar") assert_equal "foo", @child1.settings[:foo] assert_equal "bar", @child2.settings[:foo] end + + def test_inheritance_deep_dup + @app.set(:foo, bar: ["bar"], baz: { foo: "baz" }) + + @child1 = new_app(parent: @app) + @child1.set(:foo, foo: "foo") + @child1.settings[:foo][:bar].push("foo") + @child1.settings[:foo][:baz][:foo] = "foo" + + assert_equal ["bar"], @app.settings[:foo][:bar] + assert_equal "baz", @app.settings[:foo][:baz][:foo] + end + + def test_freeze + @app.set(:foo, foo: "foo", bar: { foo: "foo" }) + + @app.define do + on get do + self.class.settings[:foo][:foo] = "bar" + end + + on post do + self.class.settings[:foo][:bar][:foo] = "bar" + end + end + + ts = Tynn::Test.new(@app) + + assert_raises { ts.get("/") } + assert_raises { ts.post("/") } + end end