Sha256: 8c379416650d551204a5d7f3235f900e8b3186c5b80257c8487d8587712bb136

Contents?: true

Size: 1.26 KB

Versions: 10

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true
require 'test_helper'

module Shipit
  class EnvironmentVariablesTest < ActiveSupport::TestCase
    def setup
      variable_defs = [
        { "name" => "FOO", "title" => "Set to 0 to foo", "default" => 1 },
        { "name" => "BAR", "title" => "Set to 1 to bar", "default" => 0 },
      ]
      @variable_definitions = variable_defs.map(&VariableDefinition.method(:new))
    end
    test 'empty env returns empty hash' do
      empty = {}
      assert_equal empty, EnvironmentVariables.with(nil).permit(@variable_definitions)
      assert_equal empty, EnvironmentVariables.with({}).permit(@variable_definitions)
    end

    test 'correctly sanitizes env variables' do
      env = { 'FOO' => 1, 'BAR' => 1 }
      assert_equal env, EnvironmentVariables.with(env).permit(@variable_definitions)
    end

    test 'empty permit raises not permitted error' do
      assert_raises(EnvironmentVariables::NotPermitted) do
        EnvironmentVariables.with('FOO' => 1).permit({})
      end
    end

    test 'throws an exception when a variable is not whitelisted' do
      env = { 'UNSAFE_VARIABLE' => 1 }
      assert_raises(EnvironmentVariables::NotPermitted) do
        EnvironmentVariables.with(env).permit(@variable_definitions)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
shipit-engine-0.39.0 test/unit/environment_variables_test.rb
shipit-engine-0.38.0 test/unit/environment_variables_test.rb
shipit-engine-0.37.0 test/unit/environment_variables_test.rb
shipit-engine-0.36.1 test/unit/environment_variables_test.rb
shipit-engine-0.36.0 test/unit/environment_variables_test.rb
shipit-engine-0.35.1 test/unit/environment_variables_test.rb
shipit-engine-0.35.0 test/unit/environment_variables_test.rb
shipit-engine-0.34.0 test/unit/environment_variables_test.rb
shipit-engine-0.33.0 test/unit/environment_variables_test.rb
shipit-engine-0.32.0 test/unit/environment_variables_test.rb