Normally when an en-GB.yml translation is missing, rails falls back to en.yml. But when
using the submit helpers, if the en-GB translation is missing, rails knows how to create
a fallback like 'Create {model_name}' without touching the en.yml file. This string might
then be different from what the test expects, e.g. 'Add Comment'.
So it's important to set the language headers, to avoid phantomjs from picking up your desktop
preferences in this specific case.
<%= label_tag :reassign, t(".reassign_param") %> <%= check_box_tag :reassign, true %>
<br />
<br />
- <%= submit_tag "Submit" %>
+ <%= f.submit %>
<% end %>
</div>
diary_entry:
create: "Publish"
update: "Update"
+ issue_comment:
+ create: Add Comment
message:
create: Send
redaction:
.to_return(:status => 404)
super(*args)
end
+
+ # Phantomjs can pick up browser Accept-Language preferences from your desktop environment.
+ # We don't want this to happen during the tests!
+ setup do
+ page.driver.add_headers("Accept-Language" => "en")
+ end
end
visit issue_path(issue)
fill_in :issue_comment_body, :with => "test comment"
- click_on "Submit"
+ click_on "Add Comment"
assert page.has_content?(I18n.t("issue_comments.create.comment_created"))
assert page.has_content?("test comment")
fill_in :issue_comment_body, :with => "reassigning to moderators"
check :reassign
- click_on "Submit"
+ click_on "Add Comment"
issue.reload
assert_equal "moderator", issue.assigned_role