Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ jobs:
- '3.0'
- 3.1
- 3.2
- 3.3
- 3.4
- 4.0
- jruby

steps:
Expand Down
2 changes: 1 addition & 1 deletion mutations.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ Gem::Specification.new do |s|
s.require_path = 'lib'

s.add_dependency "activesupport"
s.add_development_dependency 'minitest', '~> 4'
s.add_development_dependency 'minitest'
s.add_development_dependency 'rake'
end
6 changes: 3 additions & 3 deletions spec/additional_filter_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def execute
it "should recognize additional filters" do
outcome = TestCommandUsingAdditionalFilters.run(:first_name => "John", :last_name => "Doe")
assert outcome.success?
assert_equal nil, outcome.errors
assert_nil outcome.errors
end

class TestCommandUsingAdditionalFiltersInHashes < Mutations::Command
Expand All @@ -60,7 +60,7 @@ def execute
)

assert outcome.success?
assert_equal nil, outcome.errors
assert_nil outcome.errors
end

class TestCommandUsingAdditionalFiltersInArrays < Mutations::Command
Expand All @@ -81,7 +81,7 @@ def execute
)

assert outcome.success?
assert_equal nil, outcome.errors
assert_nil outcome.errors
end

module Mutations
Expand Down
32 changes: 16 additions & 16 deletions spec/array_filter_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class SimpleModel; end
f = Mutations::ArrayFilter.new(:arr)
filtered, errors = f.filter([1])
assert_equal [1], filtered
assert_equal nil, errors
assert_nil errors
end

it "considers non-arrays to be invalid" do
Expand All @@ -23,28 +23,28 @@ class SimpleModel; end
it "considers nil to be invalid" do
f = Mutations::ArrayFilter.new(:arr, :nils => false)
filtered, errors = f.filter(nil)
assert_equal nil, filtered
assert_nil filtered
assert_equal :nils, errors
end

it "considers nil to be valid" do
f = Mutations::ArrayFilter.new(:arr, :nils => true)
_filtered, errors = f.filter(nil)
_filtered, errors = f.filter(nil)
assert_equal nil, errors
assert_nil errors
end

it "lets you specify a class, and has valid elements" do
f = Mutations::ArrayFilter.new(:arr, :class => Integer)
filtered, errors = f.filter([1,2,3])
assert_equal nil, errors
assert_nil errors
assert_equal [1,2,3], filtered
end

it "lets you specify a class as a string, and has valid elements" do
f = Mutations::ArrayFilter.new(:arr, :class => 'Integer')
filtered, errors = f.filter([1,2,3])
assert_equal nil, errors
assert_nil errors
assert_equal [1,2,3], filtered
end

Expand Down Expand Up @@ -125,15 +125,15 @@ class SimpleModel; end

filtered, errors = f.filter([true, false, "1"])
assert_equal [true, false, true], filtered
assert_equal nil, errors
assert_nil errors
end

it "lets you pass model in arrays" do
f = Mutations::ArrayFilter.new(:arr) { model :string }

filtered, errors = f.filter(["hey"])
assert_equal ["hey"], filtered
assert_equal nil, errors
assert_nil errors
end

it "lets you pass hashes in arrays" do
Expand All @@ -153,8 +153,8 @@ class SimpleModel; end
filtered, errors = f.filter([{:foo => "f", :bar => 3, :baz => true}, {:foo => "f", :bar => 3}, {:foo => "f"}])
assert_equal [{:foo=>"f", :bar=>3, :baz=>true}, {:foo=>"f", :bar=>3}, {:foo=>"f"}], filtered

assert_equal nil, errors[0]
assert_equal nil, errors[1]
assert_nil errors[0]
assert_nil errors[1]
assert_equal({"bar"=>:required}, errors[2].symbolic)
end

Expand All @@ -167,7 +167,7 @@ class SimpleModel; end

filtered, errors = f.filter([["h", "e"], ["l"], [], ["lo"]])
assert_equal filtered, [["h", "e"], ["l"], [], ["lo"]]
assert_equal nil, errors
assert_nil errors
end

it "handles errors for arrays of arrays" do
Expand All @@ -189,14 +189,14 @@ class SimpleModel; end
end
filtered, errors = f.filter([1, "2", "three", "4", 5, [6]])
assert_equal [1,2,4,5], filtered
assert_equal nil, errors
assert_nil errors
end

it "considers long arrays to be valid" do
f = Mutations::ArrayFilter.new(:arr, :min_length => 2)
filtered, errors = f.filter([1, 2])
assert_equal [1, 2], filtered
assert_equal nil, errors
assert_nil errors
end

it "considers short arrays to be invalid" do
Expand All @@ -210,7 +210,7 @@ class SimpleModel; end
f = Mutations::ArrayFilter.new(:arr, :max_length => 20)
filtered, errors = f.filter([1])
assert_equal [1], filtered
assert_equal nil, errors
assert_nil errors
end

it "sets a max_length for the array of 2 with 5 as invalid" do
Expand All @@ -229,7 +229,7 @@ class SimpleModel; end
m = SimpleModel.new
filtered, errors = f.filter([m])
assert_equal [m], filtered
assert_equal nil, errors
assert_nil errors

Object.send(:remove_const, 'SimpleModel')
class SimpleModel; end
Expand All @@ -251,15 +251,15 @@ class SimpleModel; end
m = SimpleModel.new
filtered, errors = f.filter([m])
assert_equal [m], filtered
assert_equal nil, errors
assert_nil errors

Object.send(:remove_const, 'SimpleModel')
class SimpleModel; end

m = SimpleModel.new
filtered, errors = f.filter([m])
assert_equal [m], filtered
assert_equal nil, errors
assert_nil errors

Mutations.cache_constants = was
end
Expand Down
12 changes: 6 additions & 6 deletions spec/boolean_filter_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
f = Mutations::BooleanFilter.new
filtered, errors = f.filter(true)
assert_equal true, filtered
assert_equal nil, errors
assert_nil errors

filtered, errors = f.filter(false)
assert_equal false, filtered
assert_equal nil, errors
assert_nil errors
end

it "considers non-booleans to be invalid" do
Expand All @@ -24,23 +24,23 @@
it "considers nil to be invalid" do
f = Mutations::BooleanFilter.new(:nils => false)
filtered, errors = f.filter(nil)
assert_equal nil, filtered
assert_nil filtered
assert_equal :nils, errors
end

it "considers nil to be valid" do
f = Mutations::BooleanFilter.new(:nils => true)
filtered, errors = f.filter(nil)
assert_equal nil, filtered
assert_equal nil, errors
assert_nil filtered
assert_nil errors
end

it "considers certain strings to be valid booleans" do
f = Mutations::BooleanFilter.new
[["true", true], ["TRUE", true], ["TrUe", true], ["1", true], ["false", false], ["FALSE", false], ["FalSe", false], ["0", false], [0, false], [1, true]].each do |(str, v)|
filtered, errors = f.filter(str)
assert_equal v, filtered
assert_equal nil, errors
assert_nil errors
end
end

Expand Down
6 changes: 3 additions & 3 deletions spec/command_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@

assert outcome.success?
assert_equal({:name => "John", :email => "john@gmail.com", :amount => 5}.stringify_keys, outcome.result)
assert_equal nil, outcome.errors
assert_nil outcome.errors
end

it "should filter out spurious params" do
outcome = SimpleCommand.run(:name => "John", :email => "john@gmail.com", :amount => 5, :buggers => true)

assert outcome.success?
assert_equal({:name => "John", :email => "john@gmail.com", :amount => 5}.stringify_keys, outcome.result)
assert_equal nil, outcome.errors
assert_nil outcome.errors
end

it "should discover errors in inputs" do
Expand Down Expand Up @@ -70,7 +70,7 @@

assert !outcome.success?
assert_equal :max_length, outcome.errors.symbolic[:name]
assert_equal nil, outcome.errors.symbolic[:email]
assert_nil outcome.errors.symbolic[:email]
end

it "should merge multiple hashes" do
Expand Down
36 changes: 18 additions & 18 deletions spec/date_filter_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@
f = Mutations::DateFilter.new
filtered, errors = f.filter(date)
assert_equal date, filtered
assert_equal nil, errors
assert_nil errors
end

it "takes a DateTime object" do
date = DateTime.new
f = Mutations::DateFilter.new
filtered, errors = f.filter(date)
assert_equal date, filtered
assert_equal nil, errors
assert_nil errors
end

it "takes a Time object and converts it to a date" do
time = Time.now
f = Mutations::DateFilter.new
filtered, errors = f.filter(time)
assert_equal time.to_date, filtered
assert_equal nil, errors
assert_nil errors
end

it "checks if the given date is after a certain date" do
Expand All @@ -32,7 +32,7 @@
filtered, errors = f.filter(date)

assert_equal date, filtered
assert_equal nil, errors
assert_nil errors
end

it "gives errors when the given date is before the after date" do
Expand All @@ -41,7 +41,7 @@
f = Mutations::DateFilter.new(:after => after_date)
filtered, errors = f.filter(date)

assert_equal nil, filtered
assert_nil filtered
assert_equal :after, errors
end

Expand All @@ -52,7 +52,7 @@
filtered, errors = f.filter(date)

assert_equal date, filtered
assert_equal nil, errors
assert_nil errors
end

it "gives errors when the given date is after the before date" do
Expand All @@ -61,7 +61,7 @@
f = Mutations::DateFilter.new(:before => before_date)
filtered, errors = f.filter(date)

assert_equal nil, filtered
assert_nil filtered
assert_equal :before, errors
end

Expand All @@ -73,7 +73,7 @@
filtered, errors = f.filter(date)

assert_equal date, filtered
assert_equal nil, errors
assert_nil errors
end

it "should be able to parse a D-M-Y string to a date" do
Expand All @@ -83,7 +83,7 @@
filtered, errors = f.filter(date_string)

assert_equal date, filtered
assert_equal nil, errors
assert_nil errors
end

it "should be able to parse a Y-M-D string to a date" do
Expand All @@ -93,7 +93,7 @@
filtered, errors = f.filter(date_string)

assert_equal date, filtered
assert_equal nil, errors
assert_nil errors
end

it "should be able to handle date formatting" do
Expand All @@ -103,21 +103,21 @@
filtered, errors = f.filter(date_string)

assert_equal date, filtered
assert_equal nil, errors
assert_nil errors

date_string = "1, 2, 2000"
f = Mutations::DateFilter.new(:format => '%m, %d, %Y')
filtered, errors = f.filter(date_string)

assert_equal date, filtered
assert_equal nil, errors
assert_nil errors
end

it "considers nil to be invalid" do
f = Mutations::DateFilter.new
filtered, errors = f.filter(nil)

assert_equal nil, filtered
assert_nil filtered
assert_equal :nils, errors
end

Expand All @@ -132,8 +132,8 @@
f = Mutations::DateFilter.new(:nils => true)
filtered, errors = f.filter(nil)

assert_equal nil, filtered
assert_equal nil, errors
assert_nil filtered
assert_nil errors
end

it "considers empty strings to be nil if empty_is_nil option is used" do
Expand All @@ -145,16 +145,16 @@
it "returns empty strings as nil if empty_is_nil option is used" do
f = Mutations::DateFilter.new(:empty_is_nil => true, :nils => true)
filtered, errors = f.filter("")
assert_equal nil, filtered
assert_equal nil, errors
assert_nil filtered
assert_nil errors
end

it "doesn't allow non-existing dates" do
date_string = "1, 20, 2013"
f = Mutations::DateFilter.new
filtered, errors = f.filter(date_string)

assert_equal nil, filtered
assert_nil filtered
assert_equal :date, errors
end
end
Loading