Skip to content
This repository has been archived by the owner on May 31, 2024. It is now read-only.

Commit

Permalink
Add spec
Browse files Browse the repository at this point in the history
  • Loading branch information
Genki Sugawara committed Oct 8, 2014
1 parent 5f63b74 commit 371df20
Showing 1 changed file with 83 additions and 0 deletions.
83 changes: 83 additions & 0 deletions spec/change/change_grants_target_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
describe 'Gratan::Client#apply' do
before(:each) do
apply {
<<-RUBY
user 'scott', 'localhost', identified: 'tiger', required: 'SSL' do
on '*.*' do
grant 'SELECT'
grant 'INSERT'
end
on 'test.*' do
grant 'UPDATE'
grant 'DELETE'
end
on 'mysql.user' do
grant 'SELECT (user)'
end
end
user 'bob', 'localhost' do
on '*.*' do
grant 'USAGE'
end
on 'test.*' do
grant 'ALL PRIVILEGES'
end
end
RUBY
}
end

context 'when grant privs with target' do
subject { client(target_user: /bob/) }

it do
apply(subject) {
<<-RUBY
user 'scott', 'localhost', required: 'SSL' do
on '*.*' do
grant 'SELECT'
grant 'INSERT'
grant 'UPDATE'
grant 'DELETE'
end
on 'test.*' do
grant 'SELECT'
grant 'INSERT'
grant 'UPDATE'
grant 'DELETE'
end
on 'mysql.user' do
grant 'SELECT (user)'
grant 'UPDATE (host)'
end
end
user 'bob', 'localhost' do
on '*.*' do
grant 'USAGE'
end
on 'test.*' do
grant 'SELECT'
end
end
RUBY
}

expect(show_grants).to match_array [
"GRANT SELECT ON `test`.* TO 'bob'@'localhost'",
"GRANT SELECT (user) ON `mysql`.`user` TO 'scott'@'localhost'",
"GRANT SELECT, INSERT, ON *.* TO 'scott'@'localhost' IDENTIFIED BY PASSWORD '*F2F68D0BB27A773C1D944270E5FAFED515A3FA40' REQUIRE SSL",
"GRANT UPDATE, DELETE ON `test`.* TO 'scott'@'localhost'",
"GRANT USAGE ON *.* TO 'bob'@'localhost'",
]
end
end

end

0 comments on commit 371df20

Please sign in to comment.