aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/arel/select_manager_spec.rb24
-rw-r--r--spec/arel/table_spec.rb4
2 files changed, 26 insertions, 2 deletions
diff --git a/spec/arel/select_manager_spec.rb b/spec/arel/select_manager_spec.rb
index 74e2db408b..331d9714a7 100644
--- a/spec/arel/select_manager_spec.rb
+++ b/spec/arel/select_manager_spec.rb
@@ -23,6 +23,30 @@ module Arel
end
describe 'select manager' do
+ describe 'joins' do
+ it 'returns join sql' do
+ table = Table.new :users
+ aliaz = table.alias
+ manager = Arel::SelectManager.new Table.engine
+ manager.from Nodes::InnerJoin.new(table, aliaz, table[:id].eq(aliaz[:id]))
+ manager.join_sql.should be_like %{
+ "users" INNER JOIN "users" "users_2" "users"."id" = "users_2"."id"
+ }
+ check manager.joins(manager).should == manager.join_sql
+ end
+
+ it 'returns outer join sql' do
+ table = Table.new :users
+ aliaz = table.alias
+ manager = Arel::SelectManager.new Table.engine
+ manager.from Nodes::OuterJoin.new(table, aliaz, table[:id].eq(aliaz[:id]))
+ manager.join_sql.should be_like %{
+ "users" OUTER JOIN "users" "users_2" "users"."id" = "users_2"."id"
+ }
+ check manager.joins(manager).should == manager.join_sql
+ end
+ end
+
describe 'delete' do
it "copies from" do
engine = EngineProxy.new Table.engine
diff --git a/spec/arel/table_spec.rb b/spec/arel/table_spec.rb
index 58ccc9e7be..702608ed85 100644
--- a/spec/arel/table_spec.rb
+++ b/spec/arel/table_spec.rb
@@ -33,14 +33,14 @@ module Arel
describe 'take' do
it "should add a limit" do
manager = @relation.take 1
- manager.project '*'
+ manager.project SqlLiteral.new '*'
manager.to_sql.should be_like %{ SELECT * FROM "users" LIMIT 1 }
end
end
describe 'project' do
it 'can project' do
- manager = @relation.project '*'
+ manager = @relation.project SqlLiteral.new '*'
manager.to_sql.should be_like %{
SELECT *
FROM "users"