35 lines
871 B
Ruby
35 lines
871 B
Ruby
require_relative '../.env'
|
|
ENV["DB_NAME"] = "test_#{ENV["DB_NAME"]}"
|
|
require_relative '../app'
|
|
require 'rubygems'
|
|
require 'roda'
|
|
require 'sequel'
|
|
require 'rspec'
|
|
require 'rack/test'
|
|
|
|
def app
|
|
App
|
|
end
|
|
|
|
describe "Submit API request to create new link" do
|
|
include Rack::Test::Methods
|
|
before :each do
|
|
@links = Sequel.sqlite("db/#{ENV['DB_NAME']}")[:links]
|
|
end
|
|
after :each do
|
|
@links.delete
|
|
end
|
|
it "should return link data in json format when a valid url is entered" do
|
|
data = {
|
|
url: 'http://google.com'
|
|
}
|
|
post('/links', data.to_json, "CONTENT_TYPE" => "application/json")
|
|
expect(last_response).to be_ok
|
|
response_json = JSON.parse(last_response.body)
|
|
expect(response_json['url']).to eq(data[:url])
|
|
expect(response_json['code']).not_to eq(nil)
|
|
expect(response_json['link']).to include(response_json['code'])
|
|
end
|
|
end
|
|
|