···179179 assert_equal [Color::Red], Color.where(hex: "#FF0000")
180180end
181181182182+test "#where raises Literal::TypeError when index value has the wrong type" do
183183+ assert_raises(Literal::TypeError) do
184184+ Color.where(hex: 123)
185185+ end
186186+end
187187+182188test "#find_by" do
183189 assert_equal Color::Red, Color.find_by(hex: "#FF0000")
190190+end
191191+192192+test "index definitions raise Literal::TypeError when index key type is wrong" do
193193+ klass = Class.new(Literal::Enum(Integer)) do
194194+ index :bad, String do |it|
195195+ it.value
196196+ end
197197+198198+ A = new(1)
199199+ end
200200+201201+ assert_raises(Literal::TypeError) do
202202+ klass.__after_defined__
203203+ end
184204end
185205186206test "#find_by raises when used with a non-unique index" do