diff --git a/spec/arproxy_spec.rb b/spec/arproxy_spec.rb index da7929d..188ab5c 100644 --- a/spec/arproxy_spec.rb +++ b/spec/arproxy_spec.rb @@ -181,6 +181,10 @@ def push(*args) def calls @calls end + + def clear + @calls = [] + end end def execute(sql, name, **kwargs) @@ -189,6 +193,8 @@ def execute(sql, name, **kwargs) end end + class User < ActiveRecord::Base; end + before do ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'] || "mysql2://root@0.0.0.0/ar_test") @@ -198,14 +204,24 @@ def execute(sql, name, **kwargs) config.use ProxyX end Arproxy.enable! + + con = ActiveRecord::Base.connection + con.execute 'DROP TABLE IF EXISTS users' + con.execute <<-DDL + CREATE TABLE users ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(100) NOT NULL + ) + DDL + + ProxyX.clear end - subject { connection.execute "SHOW DATABASES", "NAME" } - let(:connection) { ActiveRecord::Base.connection } + subject { User.create(name: 'test') } it do - expect(subject.to_a).to include(["ar_test"]) - expect(ProxyX.calls.last).to include('SHOW DATABASES') + expect(subject).to be_an_instance_of(User) + expect(ProxyX.calls).to include(["INSERT INTO `users` (`name`) VALUES ('test')", "User Create", an_instance_of(Hash)]) end end end