Sha256: d9ce37286864ed441b639d97560ca71afe795285e3bce80b491acdf0e9484654
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
require "./spec/spec_helper" scope do class Login < Va::Model attribute :email attribute :pass end test "init" do va = Login.new({"email" => "fede@example.com", pass: "123456"}) assert_equal va.email, "fede@example.com" assert_equal va.pass, "123456" end scope "#attributes" do test "all" do va = Login.new(email: "fede@example.com", pass: "123456") assert_equal va.attributes, { email: "fede@example.com", pass: "123456" } end test "some" do va = Login.new(email: "fede@example.com") assert_equal va.attributes, { email: "fede@example.com" } end test "spureous" do va = Login.new(email: "fede@example.com", i_dont_belong_here: "HELLO!") assert_equal va.attributes, { email: "fede@example.com" } end end end scope "custom validations" do test "basic passing validation" do class VeryValid < Va::Model validate do true end end va = VeryValid.new assert_equal va.valid?, true end test "basic passing validation" do class VeryInvalid < Va::Model validate do false end end va = VeryInvalid.new assert_equal va.valid?, false end scope "A range validation" do class MyRange < Va::Model attribute :from attribute :to validate(:from, :to) do |from, to| from < to end end test "valid" do r = MyRange.new(from: 1, to: 5) assert_equal r.valid?, true end test do r = MyRange.new(from: 10, to: 5) assert_equal r.valid?, false end end scope "can't validate" do test "invalid arguments" do begin class FaceValidator < Va::Model attribute :face validate(:leg) do |leg| true end end assert nil rescue Object => e assert_equal e.class, Va::UnknownAttribute end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
va-0.1.0 | spec/va_spec.rb |