Runtime assertions for Ruby literal.fun
ruby
at main 23 lines 523 B view raw
1# frozen_string_literal: true 2 3Age = Literal::Value(Integer, 18..) 4 5test do 6 Age.new(17) 7rescue => error 8 assert_equal error.class, Literal::TypeError 9 assert_equal error.message, "Type mismatch\n\n" \ 10 " _Constraint(Integer, 18..)\n" \ 11 " Expected: 18..\n" \ 12 " Actual (Integer): 17\n" 13 14 # deconstruct_keys 15 key_names = [:receiver, :method, :label, :actual] 16 exp_keys = { 17 receiver: nil, 18 method: nil, 19 label: nil, 20 actual: 17, 21 } 22 assert_equal error.deconstruct_keys(key_names), exp_keys 23end