Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do load .env.local in Rails' test environment #417

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ If you use this gem to handle env vars for multiple Rails environments (developm
| 1st (highest) | `.env.development.local` | Development | Yes! | Local overrides of environment-specific settings. |
| 1st | `.env.test.local` | Test | Yes! | Local overrides of environment-specific settings. |
| 1st | `.env.production.local` | Production | Yes! | Local overrides of environment-specific settings. |
| 2nd | `.env.local` | Wherever the file is | Definitely. | Local overrides. This file is loaded for all environments _except_ `test`. |
| 2nd | `.env.local` | Wherever the file is | Definitely. | Local overrides. This file is loaded for all environments. |
| 3rd | `.env.development` | Development | No. | Shared environment-specific settings |
| 3rd | `.env.test` | Test | No. | Shared environment-specific settings |
| 3rd | `.env.production` | Production | No. | Shared environment-specific settings |
Expand Down
2 changes: 1 addition & 1 deletion lib/dotenv/rails.rb
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def self.load
def dotenv_files
[
root.join(".env.#{Rails.env}.local"),
(root.join(".env.local") unless Rails.env.test?),
root.join(".env.local"),
root.join(".env.#{Rails.env}"),
root.join(".env")
].compact
Expand Down
16 changes: 9 additions & 7 deletions spec/dotenv/rails_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,18 @@ def add(*items)
expect(Spring.watcher.items).to include(path)
end

it "does not load .env.local in test rails environment" do
it "loads .env.local in test rails environment" do
expect(Dotenv::Railtie.instance.send(:dotenv_files)).to eql(
[
Rails.root.join(".env.test.local"),
Rails.root.join(".env.local"),
Rails.root.join(".env.test"),
Rails.root.join(".env")
]
)
end

it "does load .env.local in development environment" do
it "loads .env.local in development environment" do
Rails.env = "development"
expect(Dotenv::Railtie.instance.send(:dotenv_files)).to eql(
[
Expand All @@ -72,8 +73,8 @@ def add(*items)
)
end

it "loads .env.test before .env" do
expect(ENV["DOTENV"]).to eql("test")
it "loads .env.local before .env" do
expect(ENV["DOTENV"]).to eql("local")
end

context "when Rails.root is nil" do
Expand All @@ -91,17 +92,18 @@ def add(*items)
context "overload" do
before { Dotenv::Railtie.overload }

it "does not load .env.local in test rails environment" do
it "loads .env.local in test rails environment" do
expect(Dotenv::Railtie.instance.send(:dotenv_files)).to eql(
[
Rails.root.join(".env.test.local"),
Rails.root.join(".env.local"),
Rails.root.join(".env.test"),
Rails.root.join(".env")
]
)
end

it "does load .env.local in development environment" do
it "loads .env.local in development environment" do
Rails.env = "development"
expect(Dotenv::Railtie.instance.send(:dotenv_files)).to eql(
[
Expand All @@ -113,7 +115,7 @@ def add(*items)
)
end

it "overloads .env.test with .env" do
it "overloads .env.local with .env" do
expect(ENV["DOTENV"]).to eql("true")
end

Expand Down
2 changes: 0 additions & 2 deletions spec/fixtures/.env.development

This file was deleted.

3 changes: 0 additions & 3 deletions spec/fixtures/.env.development.local

This file was deleted.

1 change: 0 additions & 1 deletion spec/fixtures/.env.local
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
FROM_LOCAL=true
DOTENV=local
2 changes: 0 additions & 2 deletions spec/fixtures/.env.test

This file was deleted.