diff options
author | Kasper Timm Hansen <kaspth@gmail.com> | 2017-02-23 15:01:02 +0100 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2017-02-23 15:01:02 +0100 |
commit | 11660945696155c86a05260795e1a0afce0d291d (patch) | |
tree | 78f546f5b80c8ab4f01ff68bf5945d1a58a74e45 /railties/test/generators/encrypted_secrets_generator_test.rb | |
parent | fd85bec26148e05a8e3d546c2827c889f9a9f8f8 (diff) | |
download | rails-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.rb | 42 |
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 |