rspec have_link 在内容传输编码时与操作邮件程序视图不匹配:引号可打印



我在编码为quoted-printable的本地化电子邮件上使用 rspec 的have_link时遇到问题

从带有I18.locale = :en的导轨控制台

UserMailer.signup_confirmation(User.last.decorate).parts[1].encoded

收益 率

"Content-Type: text/html;rn charset=UTF-8rnContent-Transfer-Encoding: 7bitrnrn<p>Hello,</p>rnrn<p>Thank you for registering!</p>rnrn<p><a href="http://example.com/en/users/119/edit">Edit profile</a></p>"

I18.locale = :es产生

"Content-Type: text/html;rn charset=UTF-8rnContent-Transfer-Encoding: quoted-printablernrn<p>=C2=A1Hola,</p>rnrn<p>Thank you for registering!</p>rnrn<p><a href=3D"http://example.com/es/users/119/edit">Editar perfil</a></=rnp>=rn"

注意链接中的差异

: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时,我应该如何测试 html 电子邮件视图上是否存在链接?

我有一个非常相似的问题rspec和链接。问题并不在于 rspec。这是垃圾进,垃圾出的老情况。获取 html 部分的未编码版本并将其传递到您的期望中

expect(msg.html_part.decoded).to have_link(translated_name, href: localized_url)

最新更新