So, I decided to refactor out my HTML centric Capybara code into separate Page Objects. If you are unfamiliar with Page Objects, then read the following:
The Page Object pattern for encapsulating HTML centric DSL is a common pattern followed while writing UI level functional tests in ThoughtWorks.
The problem I was facing when I refactored my code into Page objects was that I was unable to use the RSpec 'expect' syntax in Page Objects. Turns out all I had to do in my page objects was:
include RSpec::Matchers
Here is the full code from my project on Github.
https://github.com/gsluthra/dakshina/tree/master/spec/features
The appropriate feature files and page objects in a GIST:
https://gist.github.com/gsluthra/8356015