Compare commits
2 Commits
f8499a79c2
...
5bce31baf2
| Author | SHA1 | Date |
|---|---|---|
|
|
5bce31baf2 | |
|
|
c7fee27623 |
11
app.rb
11
app.rb
|
|
@ -19,11 +19,10 @@ class App < Roda
|
|||
|
||||
r.get String do | url_code |
|
||||
link = links.filter(:code => url_code)
|
||||
if link.first.nil?
|
||||
flash['message'] = "Link #{url_code} doesn't exist"
|
||||
r.redirect '/'
|
||||
end
|
||||
r.redirect link.first[:url]
|
||||
r.redirect link.first[:url] unless link.first.nil?
|
||||
@message = "Link #{url_code} doesn't exist"
|
||||
response.status = 404
|
||||
view :home
|
||||
end
|
||||
|
||||
r.post "create" do
|
||||
|
|
@ -32,7 +31,7 @@ class App < Roda
|
|||
flash['message'] = "Please enter a valid URL";
|
||||
r.redirect '/'
|
||||
end
|
||||
if nil == links.filter(:url => url).first
|
||||
if links.filter(:url => url).first.nil?
|
||||
code = SecureRandom.urlsafe_base64 4
|
||||
links.insert(url: url, code: code)
|
||||
@message = "Link created"
|
||||
|
|
|
|||
|
|
@ -42,5 +42,8 @@ Feature: Homepage
|
|||
|
||||
Scenario: Accessing a nonexistent URL code
|
||||
Given I visit the "/aaaaaa" location
|
||||
Then I should be on "/" page
|
||||
Then I should be on "/aaaaaa" page
|
||||
And The status code should be 404
|
||||
And I should see the message "Link aaaaaa doesn't exist"
|
||||
And I should see a form field "url"
|
||||
And I should see a "Submit" button
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ Before('@db-test') do
|
|||
@links = Sequel.sqlite("db/#{ENV['DB_NAME']}")[:links]
|
||||
end
|
||||
|
||||
|
||||
# GIVEN
|
||||
|
||||
Given('I visit the {string} page') do |string|
|
||||
|
|
@ -17,6 +18,7 @@ Given('A link already exists with the url {string} and code {string}') do |url,
|
|||
@links.insert(url: url, code: code)
|
||||
end
|
||||
|
||||
|
||||
# WHEN
|
||||
|
||||
When('I click the {string} button') do |string|
|
||||
|
|
@ -31,6 +33,7 @@ When('I visit the {string} location') do |string|
|
|||
visit string
|
||||
end
|
||||
|
||||
|
||||
# THEN
|
||||
|
||||
Then('I should see text {string}') do |string|
|
||||
|
|
@ -58,6 +61,12 @@ Then('I should be redirected to {string}') do |string|
|
|||
location = actual.index(string)
|
||||
location.should equal(0)
|
||||
end
|
||||
|
||||
Then('The status code should be {int}') do |code|
|
||||
puts page.status_code.should eq(code)
|
||||
end
|
||||
|
||||
|
||||
# AFTER
|
||||
|
||||
After('@db-test') do
|
||||
|
|
|
|||
Loading…
Reference in New Issue