Skip to content

Commit

Permalink
Refactor previous into its own matcher
Browse files Browse the repository at this point in the history
  • Loading branch information
Jon Yurek committed Sep 25, 2014
1 parent 6ea7c26 commit 3ec2599
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 22 deletions.
35 changes: 13 additions & 22 deletions spec/paperclip/schema_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -62,21 +62,17 @@
context "using #attachment with options" do
before do
Dummy.connection.create_table :dummies, force: true do |t|
t.attachment :avatar, default: '1', file_name: { default: 'default' }
t.attachment :avatar, default: 1, file_name: { default: 'default' }
end
end

it "sets defaults on columns" do
defaults_columns = ["avatar_file_name", "avatar_content_type", "avatar_file_size"]
columns = Dummy.columns.select { |e| defaults_columns.include? e.name }

columns.each do |column|
if column.name == 'avatar_file_name'
expect(column.default).to eq('default')
else
expect(column.default.to_i).to eq(1)
end
end
expect(columns).to have_column("avatar_file_name").with_default("default")
expect(columns).to have_column("avatar_content_type").with_default("1")
expect(columns).to have_column("avatar_file_size").with_default(1)
end
end
end
Expand Down Expand Up @@ -111,13 +107,9 @@
defaults_columns = ["avatar_file_name", "avatar_content_type", "avatar_file_size"]
columns = Dummy.columns.select { |e| defaults_columns.include? e.name }

columns.each do |column|
if column.name == 'avatar_file_name'
expect(column.default).to eq('default')
else
expect(column.default.to_i).to eq(1)
end
end
expect(columns).to have_column("avatar_file_name").with_default("default")
expect(columns).to have_column("avatar_content_type").with_default("1")
expect(columns).to have_column("avatar_file_size").with_default(1)
end
end

Expand Down Expand Up @@ -149,13 +141,12 @@
defaults_columns = ["avatar_file_name", "avatar_content_type", "avatar_file_size", "photo_file_name", "photo_content_type", "photo_file_size"]
columns = Dummy.columns.select { |e| defaults_columns.include? e.name }

columns.each do |column|
if column.name == 'avatar_file_name' || column.name == 'photo_file_name'
expect(column.default).to eq('default')
else
expect(column.default.to_i).to eq(1)
end
end
expect(columns).to have_column("avatar_file_name").with_default("default")
expect(columns).to have_column("avatar_content_type").with_default("1")
expect(columns).to have_column("avatar_file_size").with_default(1)
expect(columns).to have_column("photo_file_name").with_default("default")
expect(columns).to have_column("photo_content_type").with_default("1")
expect(columns).to have_column("photo_file_size").with_default(1)
end
end

Expand Down
14 changes: 14 additions & 0 deletions spec/support/matchers/have_column.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
RSpec::Matchers.define :have_column do |column_name|
chain :with_default do |default|
@default = default
end

match do |columns|
column = columns.detect{|column| column.name == column_name }
column && column.default == @default
end

failure_message_for_should do |columns|
"expected to find #{column_name}, default #{@default} in #{columns.map{|column| [column.name, column.default] }}"
end
end

0 comments on commit 3ec2599

Please sign in to comment.