When using Capybara to test the String output of a method, Capybara wraps the output into a minimal HTML document so that all of its built-in finders, matchers, etc will work without needing special handling. As it happens, the String is embedded into a <p> tag in that HTML. So if your method returns a String like 'Hello', and you write a test like `expect(helper.my_method).to have_css 'p'`, that test will pass even though the String 'Hello' does not contain an explicit <p> tag.
This revelation brought to you by a couple hours of trial-and-error, debugging, and spelunking through source code.