From 445236d735ba3ecbb81a2352f5669064d6c12c76 Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Sun, 1 Oct 2023 12:10:30 -0700 Subject: [PATCH] 2nd scenario + added a scenario for submitting the button with no text in url field + simplified the visit when clause to be used with any url + edited create route redirect if url param is empty (backend validation for required URL field) + added when clause for clicking submit button + added then clause for current path/page --- app.rb | 1 + features/homepage.feature | 8 +++++++- features/step_definitions/steps.rb | 12 +++++++++--- 3 files changed, 17 insertions(+), 4 deletions(-) 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