Files
bit/spec/spec_helper.cr
T
Juan Rodriguez a8e2e971d6 test: integration link spec
- spec_helper (spec-kemal setup)
- spec_helper (micreate migration)
- create_test_link + get_test_link + delete_test_link helpers
- fix test env variables
2024-05-13 22:57:13 +02:00

49 lines
993 B
Crystal

require "uuid"
require "spec-kemal"
require "micrate"
require "../url-shortener"
Spec.before_suite do
Micrate::DB.connection_url = ENV["DATABASE_URL"]
Micrate::Cli.run_up
end
def create_test_user
user = App::Models::User.new
user.id = UUID.v4.to_s
user.name = "Tester"
user.api_key = Random::Secure.urlsafe_base64()
changeset = App::Lib::Database.insert(user)
if !changeset.valid?
raise "Test user creation failed"
end
user
end
def create_test_link(user, url)
link = App::Models::Link.new
link.id = UUID.v4.to_s
link.url = url
link.slug = Random::Secure.urlsafe_base64(4)
link.user = user
changeset = App::Lib::Database.insert(link)
if !changeset.valid?
raise "Test link creation failed"
end
link
end
def get_test_link(link_id)
App::Lib::Database.get!(App::Models::Link, link_id)
end
def delete_test_link(link_id)
App::Lib::Database.raw_exec("DELETE FROM links WHERE id = (?)", link_id) # tempfix: Database.delete does not work
end