Class: Taza::Flow

Inherits:
Object
  • Object
show all
Defined in:
lib/taza/flow.rb

Overview

Flows provide a way to write and manage common actions on a site. For instance, on an e-commerce site you may have multiple tests where a user is supposed to create a new account and add a product to the shopping bag. In this case you could have two flows. create_an_account and add_product_to_bag.

Here's how you would get this started where your site is called Widgets of the Future:

$ ./script/generate flow  widgets_of_the_future
$ ./script/generate flow add_product_to_bag widgets_of_the_future

This will generate flows for you in lib/sites/widgets_of_the_future/flows/

From here you can create the logic needed to perform these flows without ever referencing a browser object:

module WidgetsOfTheFuture
class WidgetsOfTheFuture < Taza::Site
  def (params={})
    home_page..click
     do |cap|
      cap.email.set params[:email]
      cap.password.set params[:password]
      cap.submit.click
    end
  end
end
end


Then inside a spec or test you could run this flow like:

describe "Widgets of the Future" do
it "should do widgety things so that we can make more monies" do
  WidgetsOfTheFuture.new do |w|
    w. :email => "[email protected]", :password => "secret"
  end
end
end