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