Sha256: 25385ca90ef24aaaf5255e2ab340ee73ea04b7fa647f3151f9a3d77fc6f47e98

Contents?: true

Size: 1.72 KB

Versions: 3

Compression:

Stored size: 1.72 KB

Contents

require_relative '../test_helper'
require 'stringio'

module SymmetricEncryption
  class EnvironmentTest < Minitest::Test
    describe SymmetricEncryption::Keystore::Environment do
      describe '.generate_data_key' do
        let :version do
          10
        end

        let :keystore_config do
          SymmetricEncryption::Keystore::Environment.generate_data_key(
            cipher_name: 'aes-256-cbc',
            app_name:    'tester',
            environment: 'test',
            version:     version
          )
        end

        it 'increments the version' do
          assert_equal 11, keystore_config[:version]
        end

        describe 'with 255 version' do
          let :version do
            255
          end

          it 'handles version wrap' do
            assert_equal 1, keystore_config[:version]
          end
        end

        describe 'with 0 version' do
          let :version do
            0
          end

          it 'increments version' do
            assert_equal 1, keystore_config[:version]
          end
        end

        it 'retains the env var name' do
          assert_equal 'TESTER_TEST_V11', keystore_config[:key_env_var]
        end

        it 'retains cipher_name' do
          assert_equal 'aes-256-cbc', keystore_config[:cipher_name]
        end
      end

      describe '#read' do
        let :key do
          SymmetricEncryption::Key.new
        end

        let :keystore do
          SymmetricEncryption::Keystore::Environment.new(key_env_var: 'TESTER_ENV_VAR', key_encrypting_key: key)
        end

        it 'reads the key' do
          ENV['TESTER_ENV_VAR'] = Base64.strict_encode64(key.encrypt('TEST'))
          assert_equal 'TEST', keystore.read
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
symmetric-encryption-4.1.1 test/keystore/environment_test.rb
symmetric-encryption-4.1.0 test/keystore/environment_test.rb
symmetric-encryption-4.1.0.beta1 test/keystore/environment_test.rb