spec/query_spec.rb in rasti-db-2.0.0 vs spec/query_spec.rb in rasti-db-2.0.1
- old
+ new
@@ -235,11 +235,11 @@
comments_query.empty?.must_equal true
comments_query.any?.must_equal false
end
it 'To String' do
- users_query.where(id: [1,2,3]).order(:name).to_s.must_equal '#<Rasti::DB::Query: "SELECT * FROM `users` WHERE (`id` IN (1, 2, 3)) ORDER BY `name`">'
+ users_query.where(id: [1,2,3]).order(:name).to_s.must_equal '#<Rasti::DB::Query: "SELECT `users`.* FROM `users` WHERE (`users`.`id` IN (1, 2, 3)) ORDER BY `users`.`name`">'
end
describe 'Named queries' do
it 'Respond to' do
@@ -255,23 +255,23 @@
end
describe 'Join' do
it 'One to Many' do
- users_query.join(:posts).where(title: 'Sample post').all.must_equal [User.new(id: 2, name: 'User 2')]
+ users_query.join(:posts).where(Sequel[:posts][:title] => 'Sample post').all.must_equal [User.new(id: 2, name: 'User 2')]
end
it 'Many to One' do
- posts_query.join(:user).where(name: 'User 4').all.must_equal [Post.new(id: 3, user_id: 4, title: 'Best post', body: '...', language_id: 1)]
+ posts_query.join(:user).where(Sequel[:user][:name] => 'User 4').all.must_equal [Post.new(id: 3, user_id: 4, title: 'Best post', body: '...', language_id: 1)]
end
it 'One to One' do
- users_query.join(:person).where(document_number: 'document_1').all.must_equal [User.new(id: 1, name: 'User 1')]
+ users_query.join(:person).where(Sequel[:person][:document_number] => 'document_1').all.must_equal [User.new(id: 1, name: 'User 1')]
end
it 'Many to Many' do
- posts_query.join(:categories).where(name: 'Category 3').order(:id).all.must_equal [
+ posts_query.join(:categories).where(Sequel[:categories][:name] => 'Category 3').order(:id).all.must_equal [
Post.new(id: 2, user_id: 1, title: 'Another post', body: '...', language_id: 1),
Post.new(id: 3, user_id: 4, title: 'Best post', body: '...', language_id: 1),
]
end
@@ -279,9 +279,23 @@
posts_query.join('categories', 'comments.user.person')
.where(Sequel[:categories][:name] => 'Category 2')
.where(Sequel[:comments__user__person][:document_number] => 'document_7')
.all
.must_equal [Post.new(id: 1, user_id: 2, title: 'Sample post', body: '...', language_id: 1)]
+ end
+
+ it 'Excluded attributes permanents excluded when join' do
+ posts_query.join(:user)
+ .exclude_attributes(:body)
+ .where(Sequel[:user][:name] => 'User 4')
+ .all
+ .must_equal [Post.new(id: 3, title: 'Best post', user_id: 4, language_id: 1)]
+
+ posts_query.exclude_attributes(:body)
+ .join(:user)
+ .where(Sequel[:user][:name] => 'User 4')
+ .all
+ .must_equal [Post.new(id: 3, title: 'Best post', user_id: 4, language_id: 1)]
end
describe 'Multiple data sources' do
it 'One to Many' do
\ No newline at end of file