diff --git a/spec/change/change_grants_target_spec.rb b/spec/change/change_grants_target_spec.rb index ce5aa79..b76c759 100644 --- a/spec/change/change_grants_target_spec.rb +++ b/spec/change/change_grants_target_spec.rb @@ -71,13 +71,61 @@ } expect(show_grants).to match_array [ + "GRANT SELECT (user) ON `mysql`.`user` TO 'scott'@'localhost'", "GRANT SELECT ON `test`.* TO 'bob'@'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 + + context 'when grant privs with target (no change)' do + subject { client(target_user: /mary/) } + + 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 (user) ON `mysql`.`user` TO 'scott'@'localhost'", - "GRANT SELECT, INSERT, ON *.* TO 'scott'@'localhost' IDENTIFIED BY PASSWORD '*F2F68D0BB27A773C1D944270E5FAFED515A3FA40' REQUIRE SSL", + "GRANT ALL PRIVILEGES ON `test`.* TO 'bob'@'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