aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators/test_unit
diff options
context:
space:
mode:
authoryuuji.yaginuma <yuuji.yaginuma@gmail.com>2019-05-04 09:14:10 +0900
committeryuuji.yaginuma <yuuji.yaginuma@gmail.com>2019-05-05 09:55:37 +0900
commit85a8bc644be69908f05740a5886ec19cd3679df5 (patch)
tree370f8c6a877d578c1d77fe45f25cb3d937a1f4d0 /railties/lib/rails/generators/test_unit
parentac1ba44f8d46ebbbe6889629d263e5690631f6a1 (diff)
downloadrails-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.rb9
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