aboutsummaryrefslogtreecommitdiffstats
path: root/spec/active_relation/unit/relations/relation_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/active_relation/unit/relations/relation_spec.rb')
-rw-r--r--spec/active_relation/unit/relations/relation_spec.rb61
1 files changed, 48 insertions, 13 deletions
diff --git a/spec/active_relation/unit/relations/relation_spec.rb b/spec/active_relation/unit/relations/relation_spec.rb
index fa66352c91..2b62c8db5e 100644
--- a/spec/active_relation/unit/relations/relation_spec.rb
+++ b/spec/active_relation/unit/relations/relation_spec.rb
@@ -57,6 +57,12 @@ module ActiveRelation
@relation.join(arbitrary_string = "ASDF").should == Join.new(arbitrary_string, @relation)
end
end
+
+ describe "when given something blank" do
+ it "returns self" do
+ @relation.join.should == @relation
+ end
+ end
end
describe '#outer_join' do
@@ -72,17 +78,23 @@ module ActiveRelation
@relation.project(@attribute1, @attribute2). \
should == Projection.new(@relation, @attribute1, @attribute2)
end
+
+ describe "when given blank attributes" do
+ it "returns self" do
+ @relation.project.should == @relation
+ end
+ end
end
describe '#as' do
it "manufactures an alias relation" do
@relation.as(:paul).should == Alias.new(@relation, :paul)
end
- end
-
- describe '#rename' do
- it "manufactures a rename relation" do
- @relation.rename(@attribute1, :users).should == Rename.new(@relation, @attribute1 => :users)
+
+ describe 'when given a blank alias' do
+ it 'returns self' do
+ @relation.as.should == @relation
+ end
end
end
@@ -98,34 +110,50 @@ module ActiveRelation
it "accepts arbitrary strings" do
@relation.select("arbitrary").should == Selection.new(@relation, "arbitrary")
end
+
+ describe 'when given a blank predicate' do
+ it 'returns self' do
+ @relation.select.should == @relation
+ end
+ end
end
describe '#order' do
it "manufactures an order relation" do
@relation.order(@attribute1, @attribute2).should == Order.new(@relation, @attribute1, @attribute2)
end
+
+ describe 'when given a blank ordering' do
+ it 'returns self' do
+ @relation.order.should == @relation
+ end
+ end
end
describe '#take' do
it "manufactures a take relation" do
@relation.take(5).should == Take.new(@relation, 5)
end
+
+ describe 'when given a blank number of items' do
+ it 'returns self' do
+ @relation.take.should == @relation
+ end
+ end
end
describe '#skip' do
it "manufactures a skip relation" do
@relation.skip(4).should == Skip.new(@relation, 4)
end
- end
-
- describe '#call' do
- it 'executes a select_all on the connection' do
- mock(connection = Object.new).select_all(@relation.to_sql)
- @relation.call(connection)
+
+ describe 'when given a blank number of items' do
+ it 'returns self' do
+ @relation.skip.should == @relation
+ end
end
end
-
-
+
describe '#aggregate' do
before do
@expression1 = @attribute1.sum
@@ -179,5 +207,12 @@ module ActiveRelation
@relation.first.should == @relation.session.read(@relation).first
end
end
+
+ describe '#call' do
+ it 'executes a select_all on the connection' do
+ mock(connection = Object.new).select_all(@relation.to_sql)
+ @relation.call(connection)
+ end
+ end
end
end \ No newline at end of file