Sha256: e32b3735817418e34719faa6a5291f411eb6ed0b8a0245ec9b26ef4d40e3d52b

Contents?: true

Size: 1.69 KB

Versions: 7

Compression:

Stored size: 1.69 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

describe Anyway::Env do
  let(:env) { Anyway.env }

  it "loads simple key/values by module", :aggregate_failures do
    ENV['TESTO_KEY'] = 'a'
    ENV['MY_TEST_KEY'] = 'b'
    expect(env.fetch('testo')['key']).to eq 'a'
    expect(env.fetch('my_test')['key']).to eq 'b'
  end

  it "loads hash values", :aggregate_failures do
    ENV['TESTO_DATA__ID'] = '1'
    ENV['TESTO_DATA__META__NAME'] = 'meta'
    ENV['TESTO_DATA__META__VAL'] = 'true'
    testo_config = env.fetch('testo')
    expect(testo_config['data']['id']).to eq 1
    expect(testo_config['data']['meta']['name']).to eq 'meta'
    expect(testo_config['data']['meta']['val']).to be_truthy
  end

  it "loads array values", :aggregate_failures do
    ENV['TESTO_DATA__IDS'] = '1,2, 3'
    ENV['TESTO_DATA__META__NAMES'] = 'meta, kotleta'
    ENV['TESTO_DATA__META__SIZE'] = '2'
    ENV['TESTO_DATA__TEXT'] = '"C\'mon, everybody"'
    testo_config = env.fetch('testo')
    expect(testo_config['data']['ids']).to include(1, 2, 3)
    expect(testo_config['data']['meta']['names']).to include('meta', 'kotleta')
    expect(testo_config['data']['meta']['size']).to eq 2
    expect(testo_config['data']['text']).to eq "C'mon, everybody"
  end

  it "returns deep duped hash" do
    ENV['TESTO_CONF'] = 'path/to/conf.yml'
    ENV['TESTO_DATA__ID'] = '1'
    ENV['TESTO_DATA__META__NAME'] = 'meta'
    ENV['TESTO_DATA__META__VAL'] = 'true'
    testo_config = env.fetch('testo')
    testo_config.delete('conf')
    testo_config['data']['meta'].delete('name')

    new_config = env.fetch('testo')
    expect(new_config['data']['meta']['name']).to eq 'meta'
    expect(new_config['conf']).to eq 'path/to/conf.yml'
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
anyway_config-1.4.4 spec/env_spec.rb
anyway_config-1.4.3 spec/env_spec.rb
anyway_config-1.4.2 spec/env_spec.rb
anyway_config-1.4.1 spec/env_spec.rb
anyway_config-1.4.0 spec/env_spec.rb
anyway_config-1.3.1 spec/env_spec.rb
anyway_config-1.3.0 spec/env_spec.rb