diff --git a/app.rb b/app.rb index 9321f03..4b2b414 100644 --- a/app.rb +++ b/app.rb @@ -19,6 +19,7 @@ class App < Roda r.post "create" do url = r.params['url'] + if url.empty? then r.redirect '/' end if nil == links.filter(:url => url).first code = SecureRandom.urlsafe_base64 4 links.insert(url: url, code: code) diff --git a/features/homepage.feature b/features/homepage.feature index a6c98ce..bd6b761 100644 --- a/features/homepage.feature +++ b/features/homepage.feature @@ -5,7 +5,13 @@ Feature: Homepage Loading the homepage is the initial starting point for this tool Scenario: Homepage Loads with a form - Given I visit the homepage + Given I visit the '/' page Then I should see text "URL Shortener" And I should see a form field "url" And I should see a "Submit" button + + Scenario: Submitting the form without entering a URL + Given I visit the '/' page + When I click the submit button + Then I should be on "/" page + diff --git a/features/step_definitions/steps.rb b/features/step_definitions/steps.rb index 61271d9..affa75a 100644 --- a/features/step_definitions/steps.rb +++ b/features/step_definitions/steps.rb @@ -1,12 +1,14 @@ # GIVEN -Given('I visit the homepage') do - visit '/' +Given('I visit the {string} page') do |string| + visit string end # WHEN - +When('I click the submit button') do + click_button "Submit" +end # THEN @@ -21,3 +23,7 @@ end Then('I should see a {string} button') do |string| page.should have_button string end + +Then('I should be on {string} page') do |string| + page.should have_current_path string +end