Runtime assertions for Ruby literal.fun
ruby
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

More Literal::Data tests

+26 -3
+25 -2
lib/literal/data.test.rb
··· 4 4 prop :name, String 5 5 end 6 6 7 - test do 8 - person = Person.new(name: +"John") 7 + test "properties have readers by default" do 8 + person = Person.new(name: "John") 9 9 expect(person.name) == "John" 10 + end 10 11 12 + test "data objects are frozen" do 13 + person = Person.new(name: "John") 11 14 expect(person).to_be(:frozen?) 15 + end 16 + 17 + test "mutable attributes are duplicated and frozen" do 18 + name = +"John" 19 + person = Person.new(name:) 20 + 12 21 expect(person.name).to_be(:frozen?) 22 + expect(person.name).not_to_equal?(name) 23 + end 24 + 25 + test "immutable attributes are not duplicated" do 26 + name = "John" 27 + person = Person.new(name:) 28 + 29 + expect(person.name).to_be(:frozen?) 30 + expect(person.name).to_equal?(name) 31 + end 32 + 33 + test "to_h" do 34 + person = Person.new(name: "John") 35 + expect(person.to_h) == { name: "John" } 13 36 end
+1 -1
lib/literal/data_property.rb
··· 2 2 3 3 class Literal::DataProperty < Literal::Property 4 4 def generate_initializer_assign_value 5 - "#{ivar_ref} = #{local_var_ref}.frozen? ? #{local_var_ref} : #{local_var_ref}.freeze" 5 + "#{ivar_ref} = #{local_var_ref}.frozen? ? #{local_var_ref} : #{local_var_ref}.dup.freeze" 6 6 end 7 7 end