aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test
Commit message (Collapse)AuthorAgeFilesLines
* Prevent to install gems when run test (#31564)Yuji Yaginuma2017-12-262-4/+12
| | | | | | `invoke_all` cause `bundle install`. This will install gems actually defined in `Gemfile`. To avoid this, stubbed `bundle_command`. Fixes #31557
* Ensure to use repo's Gemfile in applicationyuuji.yaginuma2017-12-251-0/+5
| | | | | | | | | Puma gets bundler's info from `Bundler::ORIGINAL_ENV` for restart. https://github.com/puma/puma/blob/f6f3892f4d82638fb7a2a57d993641b1486ee88a/lib/puma/launcher.rb#L168 So, specified `BUNDLE_GEMFILE` env for use same Gemfile in the restart. Fixes #31351
* Move `test_skip_bundle` to `AppGeneratorTest`yuuji.yaginuma2017-12-242-9/+9
| | | | `skip_bundle` option was removed from plugin generator in 9b72fcc3c22a6f75f37f52dd6cb682bc00c51cf0.
* Merge pull request #31520 from yahonda/introduce_frozen_error_classRyuta Kamizono2017-12-202-1/+5
|\ | | | | Handle `FrozenError` if it is available
| * Handle `FrozenError` if it is availableYasuo Honda2017-12-202-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This pull request handles `FrozenError` introduced by Ruby 2.5. Refer https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/61131 Since `FrozenError` is a subclass of `RuntimeError` minitest used by master branch can handle it, though it would be better to handle `FrozenError` explicitly if possible. `FrozenError` does not exist in Ruby 2.4 or lower, `frozen_error_class` handles which exception is expected to be raised. This pull request is intended to be merged to master, then backported to `5-1-stable` to address #31508
* | Add test case that configure `config.active_support.hash_digest_class`yuuji.yaginuma2017-12-201-0/+18
| | | | | | | | Follow up of #31289.
* | Implicitly skip bootsnap for `rails new --dev`yuuji.yaginuma2017-12-191-0/+11
|/ | | | | | | Specifying the `--dev` option is when want to change the codebase, as it is not necessary to cache it. Context: https://github.com/rails/rails/pull/31485#issuecomment-352452653
* Merge pull request #31348 from y-yagi/fix_31283Kasper Timm Hansen2017-12-183-8/+44
|\ | | | | Raise an error only when `require_master_key` is specified
| * Raise an error only when `require_master_key` is specifiedyuuji.yaginuma2017-12-183-8/+44
| | | | | | | | | | | | | | | | | | To prevent errors from being raise in environments where credentials is unnecessary. Context: https://github.com/rails/rails/issues/31283#issuecomment-348801489 Fixes #31283
* | Merge pull request #31485 from y-yagi/skip_bootsnap_optionEileen M. Uchitelle2017-12-181-0/+20
|\ \ | |/ |/| Add `skip_bootsnap` option
| * Add `skip_bootsnap` optionyuuji.yaginuma2017-12-161-0/+20
| | | | | | | | | | | | `bootsnap` is a useful gem normally. However, `bootsnap` is unnecessary when generating a Rails application to be used only for testing. So I want to control whether use this or not by option.
* | Add test case that active_storage:install task works within engineyuuji.yaginuma2017-12-171-0/+15
|/ | | | Follow up of #31391
* Merge pull request #26815 from olivierlacan/log-query-sourceEileen M. Uchitelle2017-12-142-4/+11
|\ | | | | Log the original call site for an ActiveRecord query
| * Log call site for all queriesOlivier Lacan2017-12-132-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new ActiveRecord configuration option allows you to easily pinpoint what line of application code is triggering SQL queries in the development log by appending below each SQL statement log the line of Ruby code that triggered it. It’s useful with N+1 issues, and to locate stray queries. By default this new option ignores Rails and Ruby code in order to surface only callers from your application Ruby code or your gems. It is enabled on newly generated Rails 5.2 applications and can be enabled on existing Rails applications: ```ruby Rails.application.configure do # ... config.active_record.verbose_query_logs = true end ``` The `rails app:upgrade` task will also add it to `config/development.rb`. This feature purposely avoids coupling with ActiveSupport::BacktraceCleaner since ActiveRecord can be used without ActiveRecord. This decision can be reverted in the future to allow more configurable backtraces (the exclusion of gem callers for example).
* | Enable `Layout/LeadingCommentSpace` to not allow cosmetic changes in the futureRyuta Kamizono2017-12-141-2/+2
|/ | | | Follow up of #31432.
* Expose Active Storage routesMehmet Emin INAC2017-12-131-13/+32
|
* Enable `Layout/SpaceBeforeComma` rubocop rule, and fixed moreRyuta Kamizono2017-12-121-6/+6
| | | | Follow up of #31390.
* Set the Rails environment from an environment variableAaron Patterson2017-12-081-1/+1
| | | | | | | | | Option parsing happens too late to have any impact on the Rails environment. Rails accesses the environment name and memoizes it too early in the boot process for a commandline option to have any impact on the database connection, so we'll change this test to set the environment from an environment variable (and ensure it still works when running tests with `ruby`)
* Add failing test for wrong database connectionAaron Patterson2017-12-081-0/+17
| | | | | | When tests are run with just `ruby`, the RAILS_ENV is set to `development` too early, and we connect to the development database rather than the test database.
* Fix Rails environment when running tests with RubyAaron Patterson2017-12-062-2/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | I frequently run tests with `ruby`, not with a runner like `rake` or `rails`. When running the test with just `ruby` the `RAILS_ENV` environment variable did not get set to "test", and this would cause the tests to fail (and even mutate the development database!) This commit adds integration tests for running tests with just `ruby` and ensures the environment gets defaulted to "test". I also added a test to ensure that passing an environment to `-e` actually works (and fixed that case too). An interesting / annoying thing is that Minitest picks up it's plugins by asking RubyGems for a list of files: https://github.com/seattlerb/minitest/blob/ca6a71ca901016db09a5ad466b4adea4b52a504a/lib/minitest.rb#L92-L100 This means that RubyGems needs to somehow know about the file before it can return it to Minitest. Since we are not packaging Rails as a Gem before running the integration tests on it (duh, why would you do that?), RubyGems doesn't know about the file, so it can't tell Minitest, so Minitest doesn't automatically require it. This means I had to manually require and insert the plugin in our integration test. I've left comments about that in the test as well. Ugh.
* Add more tests for the `--webpack` optionTsukuru Tanimichi2017-12-051-0/+19
|
* Modify `test_webpack_option`Tsukuru Tanimichi2017-12-051-3/+5
|
* Merge pull request #31279 from ttanimichi/tests-for-webpack-optionGuillermo Iguaran2017-12-041-0/+14
|\ | | | | Add tests for the `--webpack` option
| * Add tests for the `--webpack` optionTsukuru Tanimichi2017-12-041-0/+14
| | | | | | | | | | We probably don't have any tests for the `--webpack` option. related: #27288
* | Merge pull request #31311 from ↵Kasper Timm Hansen2017-12-032-0/+29
|\ \ | | | | | | | | | | | | y-yagi/ignore_no_database_error_when_loading_schema_cache Ignore `NoDatabaseError` when loading schema cache
| * | Make `Migrator.current_version` work without a current databaseyuuji.yaginuma2017-12-032-0/+29
| | | | | | | | | | | | | | | | | | | | | This is necessary in order to make the processing dependent on `Migrator.current_version` work even without database. Context: https://github.com/rails/rails/pull/31135#issuecomment-348404326
* | | Fix typo in test error messageclaudiob2017-12-021-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the current code, a failing test shows this error, which is missing the number of times called and has two periods at the end. ``` /railties$ be ruby -Itest test/generators/app_generator_test.rb -n test_active_storage_install Failure: AppGeneratorTest#test_active_storage_install [test/generators/app_generator_test.rb:313]: active_storage:install expected to be called once, but was called times.. Expected: 1 Actual: 2 ``` After the fix, the error message looks correct: ``` /railties$ be ruby -Itest test/generators/app_generator_test.rb -n test_active_storage_install Failure: AppGeneratorTest#test_active_storage_install [test/generators/app_generator_test.rb:313]: active_storage:install expected to be called once, but was called 2 times. Expected: 1 Actual: 2 ```
* / Do not overwrite by default if credentials already existsyuuji.yaginuma2017-11-301-0/+8
|/ | | | Fixes #31286
* Use same version constraint in mysql adapter and generated applicationyuuji.yaginuma2017-11-281-1/+1
| | | | Follow up of 924a368f5c654f5304e575c767eb0fc64adc8659
* Remove Content-Security-Policy initializer in API-only Applicationsyuuji.yaginuma2017-11-271-0/+2
| | | | | | Since `ContentSecurityPolicy::Middleware` is not loaded in API-only Applications, initializer is unnecessary. Ref: https://github.com/rails/rails/blob/9c10fec4c06da38f8975dfb851f4d899aa85f8b7/railties/lib/rails/application/default_middleware_stack.rb#L66..L68
* Added missing test for presence of CSP initializerPrathamesh Sonpatki2017-11-271-0/+1
| | | | - Followup of #31162
* Add DSL for configuring Content-Security-Policy headerAndrew White2017-11-272-0/+198
| | | | https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
* Use Puma 3.11 in newly generated applicationsyuuji.yaginuma2017-11-271-1/+1
| | | | | | | In order to use early hints, need to use Puma 3.11.0 or higher. So, I think that should specify that version in newly generated applications. Ref: https://github.com/puma/puma/commit/f6f3892f4d82638fb7a2a57d993641b1486ee88a
* Remove field ids from scaffold formyuuji.yaginuma2017-11-261-4/+4
| | | | | | This was added with 27f103fc7e3260efe0b8dde66bf5354f2202ee32 for link labels and fields. However, `form_with` changed to generates ids by default with d3893ec38ec61282c2598b01a298124356d6b35a. So I think that adding an explicit ids is unnecessary.
* Change `form_with` to generates ids by defaultnpezza932017-11-251-0/+62
| | | | | | | | | | When `form_with` was introduced we disabled the automatic generation of ids that was enabled in `form_for`. This usually is not an good idea since labels don't work when the input doesn't have an id and it made harder to test with Capybara. You can still disable the automatic generation of ids setting `config.action_view.form_with_generates_ids` to `false.`
* Fix generator suggestion raise error when I18n.available_locales don’t ↵willnet2017-11-221-0/+13
| | | | include :en
* Deprecate an `after_bundle` callback in Rails plugin templatesyuuji.yaginuma2017-11-181-0/+32
| | | | | | | | | Since fbd1e98cf983572ca9884f17f933ffe92833632a, Rails plugin does not run `bundle install` when generating. Therefore, `after_bundle` callback is not actually executed after `bundle`. Since there is a difference between the name and the actual behavior, I think that should be remove.
* Add master key to `gitignore` on `rails new`yuuji.yaginuma2017-11-161-0/+8
| | | | | | | We generate master key on `rails new`. Therefore, if do not add master key to `.gitginore` on `rails new`as well, there is a possibility that the master key will be committed accidentally.
* Merge branch 'freeletics-manage-multiple-credential-files'Kasper Timm Hansen2017-11-152-1/+84
|\ | | | | | | Fixes https://github.com/rails/rails/pull/30940
| * Add CLI to manage encrypted files/configs.Wojciech Wnętrzak2017-11-152-1/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To edit/show encrypted file: ``` bin/rails encrypted:edit config/staging_tokens.yml.enc bin/rails encrypted:edit config/staging_tokens.yml.enc --key config/staging.key bin/rails encrypted:show config/staging_tokens.yml.enc ``` Also provides a backing Rails.application.encrypted API for Ruby access: ```ruby Rails.application.encrypted("config/staging_tokens.yml.enc").read Rails.application.encrypted("config/staging_tokens.yml.enc").config Rails.application.encrypted("config/staging_tokens.yml.enc", key: "config/staging.key") ```
* | Merge pull request #30004 from npenzin/patch-1Yuji Yaginuma2017-11-151-1/+2
|\ \ | |/ |/| Update plugin_generator.rb
| * Ensure plugin_generator adds to new line in GemfileNikita Penzin2017-11-141-1/+2
| | | | | | | | | | | | | | Ensure plugin_generator adds to new line in Gemfile, even if the Gemfile does not end with an empty line. [Lisa Ugray, Nikita Penzin]
* | Add `environment` as dependency of `load_config` (#31135)Yuji Yaginuma2017-11-141-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | Currently the environment is not loaded in some db tasks. Therefore, if use encrypted secrets values in `database.yml`, `read_encrypted_secrets` will not be true, so the value can not be used correctly. To fix this, added `environment` as dependency of `load_config`. It also removes explicit `environment` dependencies that are no longer needed. Fixes #30717
* | Use .tt extension to all the template filesRafael Mendonça França2017-11-131-2/+2
| | | | | | | | | | | | | | | | Make clear that the files are not to be run for interpreters. Fixes #23847. Fixes #30690. Closes #23878.
* | Merge pull request #30773 from y-yagi/fix_30765Eileen M. Uchitelle2017-11-121-0/+31
|\ \ | | | | | | Make automatically synchronize test schema work inside engine
| * | Make automatically synchronize test schema work inside engineyuuji.yaginuma2017-10-021-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Rails engine, migration files are in under `db/migrate` of engine. Therefore, when rake task is executed in engine, `db/migrate` is automatically added to `DatabaseTasks.migrations_paths`. https://github.com/rails/rails/blob/a18cf23a9cbcbeed61e8049442640c7153e0a8fb/activerecord/lib/active_record/railtie.rb#L39..L43 However, if execute the rake task under dummy app, migration files will not be loaded because engine's migration path setting process is not called. Therefore, in order to load migration files correctly, it is necessary to execute rake task under engine. Fixes #30765
* | | Deprecate encrypted secrets in favor of credentials.Kasper Timm Hansen2017-11-123-68/+41
| | | | | | | | | | | | | | | | | | | | | | | | Allow edits of existing encrypted secrets generated on Rails 5.1, but refer to credentials when attempting to setup. This also removes the need for any of the setup code, so the generator can be ripped out altogether.
* | | Merge pull request #30770 from ↵Kasper Timm Hansen2017-11-121-0/+2
|\ \ \ | | | | | | | | | | | | | | | | y-yagi/do_not_create_credential_in_dummy_application Do not create credentials in dummy application
| * | | Do not create credentials in dummy applicationyuuji.yaginuma2017-10-021-0/+2
| |/ / | | | | | | | | | | | | Because dummy application is only for use test, so credentials is unnecessary.
* | | Do not show credentials in generators helpyuuji.yaginuma2017-11-091-1/+2
| | | | | | | | | | | | | | | | | | Since credentials generator is executed via the credentials command and does not need to be executed directly, so it is not necessary to show it in help.