Rspec / capybara терпит неудачу, когда простые текстовые шаблоны электронной почты добавляются к функциям в рельсах - PullRequest
0 голосов
/ 06 марта 2019

Я проверяю электронную почту в формате html (somemail.html.erb) в рельсах со следующим кодом:

last_email = ActionMailer::Base.deliveries.last
fragment = Nokogiri::HTML::fragment(last_email.body.raw_source)
fragment.at_css('[id="some-id"]').attr('href')

При этом выполняется поиск ссылки с идентификатором в коде, а затем получение URL-адреса для последующего ее использования в тесте.

Однако, если я добавлю somemail.text.erb файл, тестовый костюм будет разорван.

Как мне получить конфигурацию в моем тестовом костюме для просмотра html-почты или даже лучше для обоих электронных писем? В настоящее время я должен переместить свои текстовые электронные письма с карты, чтобы запустить и пройти тесты функций.

1 Ответ

1 голос
/ 06 марта 2019

Объекты электронной почты, хранящиеся в deliveries, должны иметь html и текстовые части, доступные отдельно через html_part и text_part. Поэтому, чтобы посмотреть только на html-часть, вы должны сделать что-то вроде

fragment = Nokogiri::HTML::fragment(last_email.html_part.body.to_s)

Примечание. Поскольку вы используете капибару, есть драгоценный камень, который может упростить этот вид тестирования / ссылки по электронной почте, который называется capybara-email

.
...