我在编写为have_link
quoted-printable
时遇到问题
使用I18.locale = :en
UserMailer.signup_confirmation(User.last.decorate).parts[1].encoded
产量
"Content-Type: text/html;\r\n charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\n\r\n<p>Hello,</p>\r\n\r\n<p>Thank you for registering!</p>\r\n\r\n<p><a href=\"http://example.com/en/users/119/edit\">Edit profile</a></p>"
而I18.locale = :es
产生
"Content-Type: text/html;\r\n charset=UTF-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<p>=C2=A1Hola,</p>\r\n\r\n<p>Thank you for registering!</p>\r\n\r\n<p><a href=3D\"http://example.com/es/users/119/edit\">Editar perfil</a></=\r\np>=\r\n"
注意链接中的差异
:en - <a href=\"http # Content-Transfer-Encoding: 7bit
:es - <a href=3D\"http # Content-Transfer-Encoding: quoted-printable
当我使用
在rspec
中测试这些时
expect(msg).to have_link(translated_name, href: localized_url)
它为:en
传递,但:es
失败。
如果html电子邮件视图为quoted-printable
,我该如何测试链接是否存在?
答案 0 :(得分:1)
我有一个非常类似的问题rspec和链接。故障并非与rspec有关。这是旧垃圾进入垃圾箱的情况。获取未编码的html部分版本,并将 传递给您的期望:
expect(msg.html_part.decoded).to have_link(translated_name, href: localized_url)