aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/generators
Commit message (Collapse)AuthorAgeFilesLines
* Revert "MethodCallAssertions is a regular player of the team ↵Rafael Mendonça França2019-08-021-0/+2
| | | | | | ActiveSupport::TestCase now" This reverts commit 98d0f7ebd34b858f12a12dcf37ae54fdbb5cab64.
* MethodCallAssertions is a regular player of the team ActiveSupport::TestCase nowAkira Matsuda2019-08-021-2/+0
| | | | It's used everywhere, clean and mature enough
* Address to rubocop offencesRyuta Kamizono2019-07-311-2/+2
|
* Use match? where we don't need MatchDataAkira Matsuda2019-07-291-3/+3
|
* create a newline between blocks when gem_group, github and add_source was ↵masakazutakewaka2019-07-211-9/+44
| | | | called.
* Append a newline to the Gemfile if it doesn't end with a newlinemasakazutakewaka2019-07-191-8/+49
|
* Enable `Layout/EmptyLinesAroundAccessModifier` copRyuta Kamizono2019-06-135-5/+0
| | | | | | | | | | | We sometimes say "✂️ newline after `private`" in a code review (e.g. https://github.com/rails/rails/pull/18546#discussion_r23188776, https://github.com/rails/rails/pull/34832#discussion_r244847195). Now `Layout/EmptyLinesAroundAccessModifier` cop have new enforced style `EnforcedStyle: only_before` (https://github.com/rubocop-hq/rubocop/pull/7059). That cop and enforced style will reduce the our code review cost.
* Merge branch 'migration-timestamp-fix'Gannon McGibbon2019-05-101-0/+15
|\ | | | | | | Closes #28707.
| * Add class option timestamps to migration generatorMichael Duchemin2019-02-091-0/+15
| | | | | | | | Fixes GH#28706. Now rails g migration create_users and rails g model User have the same behavior for timestamps since they implement the same migration template. The expected behavior is that this create table migration will create the table with timestamps unless you pass --no-timestamps or --skip-timestamps to the generator. The expected migration should match what you get when you use the model generator. Using the migration generator, which doesn't have a class_option for timestamps would cause them to not be added to the migration file. Now the migration behavior of the migration generator, create_table only, is aligned with the migration behavior of the model generator. Also modified relevant example of ActiveRecord Migrations Guide.
* | Make generated test work even when using virtual attributesyuuji.yaginuma2019-05-052-0/+39
| | | | | | | | | | | | | | | | | | The virtual attributes(`attachment` and `rich_text`) can't set value with `fill_in`. So avoid using it. Once #35885 is merged, will be modified to use it. Also, add checking attachment attached or not for avoiding `DelegationError` when attachment didn't attach.
* | Remove action_controller.perform_caching from api app's configsst00122019-04-241-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | As suggested in https://github.com/rails/rails/issues/35602#issuecomment-485833483, because we don't provide view caching and doesn't include `ActionController::Caching` for api apps, we should also avoid generating ```ruby config.action_controller.perform_caching = true ``` for those api apps. So it won't confuse people. **But because `perform_caching` will be `true` if not set, the behavior of the app would still be the same without these configs.**
* | Remove duplicated testyuuji.yaginuma2019-04-201-12/+1
| | | | | | | | | | | | | | With 8b4d344815655027d9f7584c0a59271dce8f1d5a, `test_required_polymorphic_belongs_to_generates_correct_model` and `test_required_and_polymorphic_are_order_independent` are completely same. Also, remove `required` from test name because that not passed to generator.
* | Add `null: false` constraint by default for `belongs_to` associationsPrathamesh Sonpatki2019-04-193-7/+89
| | | | | | | | | | | | - Also deprecate passing {required} to the model generator. - Also made sure the global config `belongs_to_required_by_default` is applied correctly to the model generator for `null: false` option.
* | Fix typo in test description from generages -> generatesAbhay Nikam2019-04-171-1/+1
| |
* | Fix bin/update references after 8927eba83cKasper Timm Hansen2019-04-173-10/+1
| |
* | Remove `required: true` from the model generator templatePrathamesh Sonpatki2019-04-151-13/+2
| | | | | | | | | | | | | | | | `belongs_to` association have `required: true` by default https://github.com/rails/rails/pull/18937 onwards so we don't need it in the generator template. We still need the code for required in the command line generator as it adds `null: false` in the migration.
* | Correctly set application path in ↵yuuji.yaginuma2019-04-151-2/+2
| | | | | | | | | | | | `test_app_update_does_not_change_config_target_version` This is the follow up of 10fa3b3792153c2a213f837bcf51bbf6844c1661.
* | Make test application the same state as `app:update`yuuji.yaginuma2019-04-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | In `app:update`, it is decided whether to skip depending on whether `Spring` is defined or not. However, `spring` is not currently specified in Gemfile. As a result, `app:update` determines that `Spring` is not used, and diff appears in the result file. If there is a difference, the console for processing the difference is output and the test stops. To avoid this, do not include `Spring` in app. This is a bit strange approach, so I will revisit this later.
* | Merge pull request #35967 from ↵Yuji Yaginuma2019-04-151-49/+60
|\ \ | | | | | | | | | | | | ryohashimoto/do_not_app_update_in_app_generator_test Do not execute `rails app:update` in railties/test/generators/app_generator_test.rb
| * | use Rails::Generators::AppGenerator#update_config_files instead of `rails ↵Ryo Hashimoto2019-04-131-49/+60
| | | | | | | | | | | | app:update` in app_generator_test.rb
* | | Fix broken `AppGeneratorTest#test_spring_no_fork`yuuji.yaginuma2019-04-151-1/+1
| | | | | | | | | | | | | | | The mock is called three times because the `spring_install?` call has been added in 65344f254cde87950c7f176cb7aa09c002a6f882.
* | | generate config.cache_classes = false if SpringXavier Noria2019-04-141-0/+6
|/ /
* | Address new cop offence in railtiesRyuta Kamizono2019-04-121-1/+1
| | | | | | | | | | It is necessary to run `rubocop` manually when new cop is added since codeclimate checks any offences only in files touched in PRs.
* | Remove redundant begin blockRyuta Kamizono2019-04-041-10/+9
| | | | | | | | | | We have `Style/RedundantBegin` cop (#34764) but it could not correct in this case.
* | Use `execute_batch2` rather than `execute_batch` to fix performance ↵Ryuta Kamizono2019-04-042-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | regression for fixture loading d8d6bd5 makes fixture loading to bulk statements by using `execute_batch` for sqlite3 adapter. But `execute_batch` is slower and it caused the performance regression for fixture loading. In sqlite3 1.4.0, it have new batch method `execute_batch2`. I've confirmed `execute_batch2` is extremely faster than `execute_batch`. So I think it is worth to upgrade sqlite3 to 1.4.0 to use that method. Before: ``` % ARCONN=sqlite3 bundle exec ruby -w -Itest test/cases/associations/eager_test.rb -n test_eager_loading_too_may_ids Using sqlite3 Run options: -n test_eager_loading_too_may_ids --seed 35790 # Running: . Finished in 202.437406s, 0.0049 runs/s, 0.0049 assertions/s. 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips ARCONN=sqlite3 bundle exec ruby -w -Itest -n test_eager_loading_too_may_ids 142.57s user 60.83s system 98% cpu 3:27.08 total ``` After: ``` % ARCONN=sqlite3 bundle exec ruby -w -Itest test/cases/associations/eager_test.rb -n test_eager_loading_too_may_ids Using sqlite3 Run options: -n test_eager_loading_too_may_ids --seed 16649 # Running: . Finished in 8.471032s, 0.1180 runs/s, 0.1180 assertions/s. 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips ARCONN=sqlite3 bundle exec ruby -w -Itest -n test_eager_loading_too_may_ids 10.71s user 1.36s system 95% cpu 12.672 total ```
* | Add test that the listen gem is included when RUBY_ENGINE is not 'ruby'Benoit Daloze2019-04-031-0/+16
| | | | | | | | | | * The fix is already in master since https://github.com/rails/rails/pull/34243 * See https://github.com/rails/rails/pull/35482 for the fix in Rails 5.2
* | Merge pull request #35805 from excid3/attachments-field-generatorsRafael França2019-04-025-5/+73
|\ \ | | | | | | Add attachment and attachments field generators
| * | Add attachment and attachments field generatorsChris Oliver2019-03-305-5/+73
| | |
* | | Include final newline in generated .ruby-versionOrhan Toy2019-04-011-0/+2
|/ /
* | Add rich_text field to model generatorsChris Oliver2019-03-283-1/+54
| |
* | Use webdrivers instead of chromedriver-helper in new appsGuillermo Iguaran2019-03-241-2/+2
| |
* | Make aliases of `database` option in generators workyuuji.yaginuma2019-03-203-0/+30
| | | | | | | | | | | | | | | | | | | | | | Thor automatically adds `-` if aliases do not start with `-`. https://github.com/erikhuda/thor/blob/0879c1773d188902d54f95174f33961ac33111f8/lib/thor/parser/options.rb#L53 But Thor follows a convention of one-dash-one-letter options. So, even if `-` is added to `db`, it does not work. https://github.com/erikhuda/thor/blob/0879c1773d188902d54f95174f33961ac33111f8/lib/thor/parser/options.rb#L4 Follow up #34021.
* | Add version awareness to rails db:system:changeGannon McGibbon2019-03-081-3/+18
| |
* | Let Zeitwerk be a dependency of Active SupportXavier Noria2019-02-131-9/+0
| | | | | | | | | | Zeitwerk is a strong dependency, planned to replace AS::Dependencies. A line in the generated Gemfile does not convey this as much.
* | Zeitwerk integrationXavier Noria2019-02-121-0/+9
|/
* Set sqlite3 gem version explicitly in generated GemfileSergey Ponomarev2019-02-051-1/+1
|
* Railities typo fixes.alkesh262019-02-014-4/+4
|
* Fix `ERB.new` argument deprecated warningyuuji.yaginuma2019-01-311-1/+5
| | | | | | | | This fixes following warning. ``` warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments. ```
* Don't add `RAILS_ENV` in generate actionyuuji.yaginuma2019-01-191-0/+6
| | | | | | | In the case of generator, `RAILS_ENV` is interpreted as an argument as it is. Avoid this because it will result unintended by the user. Fixes #34979.
* Remove deprecated `after_bundle` helper inside plugins templatesRafael Mendonça França2019-01-171-32/+0
|
* Remove deprecated `capify!`Rafael Mendonça França2019-01-171-9/+0
|
* Minimize boilerplate setup code for JavaScript librariesJavan Makhmali2019-01-161-2/+2
|
* Merge branch 'master' into db_system_change_commandKasper Timm Hansen2019-01-163-2/+19
|\
| * Add connection_test to app generatorVladimir Dementyev2019-01-131-0/+3
| |
| * Add channel test generatorVladimir Dementyev2019-01-131-0/+14
| |
| * Move all npm packages to @rails scopeJavan Makhmali2019-01-101-2/+2
| | | | | | | | Fixes #33083
* | Revise wording on invalid database error messagesGannon McGibbon2019-01-091-1/+1
| |
* | Add rails db:system:change commandGannon McGibbon2019-01-092-0/+114
|/ | | | | | | | | | | | | | Add `rails db:system:change` command for changing databases. ``` bin/rails db:system:change --to=postgresql force config/database.yml gsub Gemfile ``` The change command copies a template `config/database.yml` with the target database adapter into your app, and replaces your database gem with the target database gem.
* Preserve Bundle configuration during app generation (#34755)Marco Costa2019-01-091-0/+18
| | | | | | | | | | | | | | | | | | | | | | | When generating a new rails application (rails new) using a custom template that includes gems from an authenticated source, the user has to provide credentials to bundler. One way to do this is by exporting environment variables, for example: export BUNDLE_GITHUB__COM=user:pass: provides credentials for bundler to fetch gems from github.com. The problem this PR addresses is that we are currently scrubs all /BUNDLE_.*/ environment variables by wrapping our system calls in Bundler.with_clean_env. We do this because we don't want our commands executed against the generated project to use the generator's bundler environment (e.g. our gems): the generated project should use it's own configuration. The problem with Bundler.with_clean_env is that, on top of restoring environment variables to their original state, it also scrubs any /BUNDLE_.*/ variables, which is harmful for authenticated gem sources. This PR replaces Bundler.with_clean_env with Bundler.with_original_env, which only restores environment variables to their initial state, without additional scrubbing.
* Revert "Revert "Merge pull request #34387 from ↵Kasper Timm Hansen2019-01-081-0/+11
| | | | | | | | yhirano55/rails_info_properties_json"" I reverted the wrong commit. Damn it. This reverts commit f66a977fc7ae30d2a07124ad91924c4ee638a703.