/
type_extension_spec.cr
41 lines (33 loc) · 1.05 KB
/
type_extension_spec.cr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
require "./spec_helper.cr"
class CompanyQuery < Company::BaseQuery
end
class SaveCompany < Company::SaveOperation
permit_columns :sales, :earnings
def prepare
validate_required sales
validate_required earnings
end
end
describe "TypeExtensions" do
it "should work in boxes" do
CompanyBox.create
company = CompanyQuery.new.first
company.sales.should eq Int64::MAX
company.earnings.should eq 1.0
company2 = CompanyBox.create &.sales(10_i64).earnings(2.0)
company2.sales.should eq 10_i64
company2.earnings.should eq 2.0
end
it "should convert params and save forms" do
form = SaveCompany.new({"sales" => "10", "earnings" => "10"})
form.sales.value.should eq 10_i64
form.earnings.value.should eq 10.0
end
it "Int64 and Float64 should allow querying with Int32" do
CompanyBox.create &.sales(10).earnings(1.0)
using_sales = CompanyQuery.new.sales(10).first
using_sales.sales.should eq 10_i64
using_earnings = CompanyQuery.new.earnings(1).first
using_earnings.earnings.should eq 1.0
end
end