Sha256: 6e94b7d90166dfad402bda4994328a7eff4c7e2313487256787c6eff6c8f78b7

Contents?: true

Size: 804 Bytes

Versions: 3

Compression:

Stored size: 804 Bytes

Contents

require 'spec_helper'

module CryptKeeper::LogSubscriber
  describe MysqlAes do
    use_postgres

    # Fire the ActiveSupport.on_load
    before do
      CryptKeeper::Provider::MysqlAes.new key: 'secret'
    end

    subject { ::ActiveRecord::LogSubscriber.new }

    let(:input_query) do
      "SELECT AES_ENCRYPT('encrypt_value', 'encrypt_key'), AES_DECRYPT('decrypt_value', 'decrypt_key') FROM DUAL;"
    end

    let(:output_query) do
      "SELECT AES_ENCRYPT([FILTERED]), AES_DECRYPT([FILTERED]) FROM DUAL;"
    end

    it "filters mysql aes functions" do
      subject.should_receive(:sql_without_mysql_aes) do |event|
        event.payload[:sql].should == output_query
      end

      subject.sql(ActiveSupport::Notifications::Event.new(:sql, 1, 1, 1, { sql: input_query }))
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
crypt_keeper-0.14.0.pre spec/log_subscriber/mysql_aes_spec.rb
crypt_keeper-0.13.1 spec/log_subscriber/mysql_aes_spec.rb
crypt_keeper-0.13.0 spec/log_subscriber/mysql_aes_spec.rb