Sha256: b6ed01475c0f93207bc895ff712bf5c67653b965a8f6c148e44683cb04860f0d

Contents?: true

Size: 1.69 KB

Versions: 4

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['MYTEST_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

4 entries across 4 versions & 1 rubygems

Version Path
anyway_config-1.2.0 spec/env_spec.rb
anyway_config-1.1.3 spec/env_spec.rb
anyway_config-1.1.2 spec/env_spec.rb
anyway_config-1.1.1 spec/env_spec.rb