test: services unit tests

This commit is contained in:
Juan Rodriguez
2024-05-20 13:14:37 +02:00
parent f03e0092c8
commit 8c209f0036
3 changed files with 41 additions and 4 deletions
+3 -3
View File
@@ -1,9 +1,9 @@
require "../spec_helper"
require "../../app/models/*"
API_KEY = Random::Secure.urlsafe_base64()
API_KEY = Random::Secure.urlsafe_base64
describe App::Controllers::Link do
describe "App::Controllers::Link" do
describe "Create" do
it "should create link" do
test_user = create_test_user()
@@ -36,7 +36,7 @@ describe App::Controllers::Link do
it "should return 400 - invalid url" do
test_user = create_test_user()
payload = {"url" => "test" }
payload = {"url" => "test"}
post(
"/api/links",
headers: HTTP::Headers{"Content-Type" => "application/json", "X-Api-Key" => test_user.api_key.to_s},
+1 -1
View File
@@ -1,6 +1,6 @@
require "../spec_helper"
describe App::Controllers::Ping do
describe "App::Controllers::Ping" do
it "should return pong" do
get "/api/ping"
+37
View File
@@ -0,0 +1,37 @@
require "../spec_helper"
require "../../app/services/cli"
describe "App::Services::Cli" do
it "creates a new user" do
name = "testuser"
output = App::Services::Cli.create_user(name)
output.should contain "New user created: Name: testuser"
end
it "lists all users" do
App::Services::Cli.create_user("user1")
App::Services::Cli.create_user("user2")
output = App::Services::Cli.list_users
output.should contain "Users:"
output.should contain "Name: user1"
output.should contain "Name: user2"
end
it "deletes a user by ID" do
App::Services::Cli.create_user("user_to_delete")
user = App::Lib::Database.all(App::Models::User).first
output = App::Services::Cli.delete_user(user.id)
output.should contain "User with ID #{user.id} deleted successfully"
end
it "handles deletion of non-existent user" do
output = App::Services::Cli.delete_user("non-existent-id")
output.should contain "Failed to delete user"
end
end