aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/generators/encrypted_secrets_generator_test.rb
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2017-02-23 15:01:02 +0100
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-02-23 15:01:02 +0100
commit11660945696155c86a05260795e1a0afce0d291d (patch)
tree78f546f5b80c8ab4f01ff68bf5945d1a58a74e45 /railties/test/generators/encrypted_secrets_generator_test.rb
parentfd85bec26148e05a8e3d546c2827c889f9a9f8f8 (diff)
downloadrails-11660945696155c86a05260795e1a0afce0d291d.tar.gz
rails-11660945696155c86a05260795e1a0afce0d291d.tar.bz2
rails-11660945696155c86a05260795e1a0afce0d291d.zip
Add encrypted secrets (#28038)
Diffstat (limited to 'railties/test/generators/encrypted_secrets_generator_test.rb')
-rw-r--r--railties/test/generators/encrypted_secrets_generator_test.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/railties/test/generators/encrypted_secrets_generator_test.rb b/railties/test/generators/encrypted_secrets_generator_test.rb
new file mode 100644
index 0000000000..747abf19ed
--- /dev/null
+++ b/railties/test/generators/encrypted_secrets_generator_test.rb
@@ -0,0 +1,42 @@
+require "generators/generators_test_helper"
+require "rails/generators/rails/encrypted_secrets/encrypted_secrets_generator"
+
+class EncryptedSecretsGeneratorTest < Rails::Generators::TestCase
+ include GeneratorsTestHelper
+
+ def setup
+ super
+ cd destination_root
+ end
+
+ def test_generates_key_file_and_encrypted_secrets_file
+ run_generator
+
+ assert_file "config/secrets.yml.key", /[\w\d]+/
+
+ assert File.exist?("config/secrets.yml.enc")
+ assert_no_match(/production:\n# external_api_key: [\w\d]+/, IO.binread("config/secrets.yml.enc"))
+ assert_match(/production:\n# external_api_key: [\w\d]+/, Rails::Secrets.read)
+ end
+
+ def test_appends_to_gitignore
+ FileUtils.touch(".gitignore")
+
+ run_generator
+
+ assert_file ".gitignore", /config\/secrets.yml.key/, /(?!config\/secrets.yml.enc)/
+ end
+
+ def test_warns_when_ignore_is_missing
+ assert_match(/Add this to your ignore file/i, run_generator)
+ end
+
+ def test_doesnt_generate_a_new_key_file_if_already_opted_in_to_encrypted_secrets
+ FileUtils.mkdir("config")
+ File.open("config/secrets.yml.enc", "w") { |f| f.puts "already secrety" }
+
+ run_generator
+
+ assert_no_file "config/secrets.yml.key"
+ end
+end