diff options
author | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2019-05-04 09:14:10 +0900 |
---|---|---|
committer | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2019-05-05 09:55:37 +0900 |
commit | 85a8bc644be69908f05740a5886ec19cd3679df5 (patch) | |
tree | 370f8c6a877d578c1d77fe45f25cb3d937a1f4d0 /railties/lib/rails/generators/test_unit | |
parent | ac1ba44f8d46ebbbe6889629d263e5690631f6a1 (diff) | |
download | rails-85a8bc644be69908f05740a5886ec19cd3679df5.tar.gz rails-85a8bc644be69908f05740a5886ec19cd3679df5.tar.bz2 rails-85a8bc644be69908f05740a5886ec19cd3679df5.zip |
Make generated test work even when using virtual attributes
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.
Diffstat (limited to 'railties/lib/rails/generators/test_unit')
-rw-r--r-- | railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb index 6df50c3217..26002a0704 100644 --- a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +++ b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb @@ -49,16 +49,21 @@ module TestUnit # :nodoc: attributes_names.map do |name| if %w(password password_confirmation).include?(name) && attributes.any?(&:password_digest?) ["#{name}", "'secret'"] - else + elsif !virtual?(name) ["#{name}", "@#{singular_table_name}.#{name}"] end - end.sort.to_h + end.compact.sort.to_h end def boolean?(name) attribute = attributes.find { |attr| attr.name == name } attribute&.type == :boolean end + + def virtual?(name) + attribute = attributes.find { |attr| attr.name == name } + attribute&.virtual? + end end end end |