test: GraphQL Schedule resolver create/update/delete success and error branches
This commit is contained in:
parent
0c0d6e8691
commit
33b18dea6f
1 changed files with 57 additions and 0 deletions
|
|
@ -16,6 +16,63 @@ defmodule ToweropsWeb.GraphQL.Resolvers.HappyPathTest do
|
|||
%{user: user, org: org, ctx: %{context: %{organization_id: org.id, user: user}}}
|
||||
end
|
||||
|
||||
describe "Schedule (success/error branches)" do
|
||||
test "create/3 returns the new schedule on success", %{ctx: ctx} do
|
||||
input = %{name: "Primary On-Call", description: "24/7", timezone: "Etc/UTC"}
|
||||
assert {:ok, schedule} = Resolvers.Schedule.create(nil, %{input: input}, ctx)
|
||||
assert schedule.name == "Primary On-Call"
|
||||
end
|
||||
|
||||
test "create/3 with invalid input returns formatted error", %{ctx: ctx} do
|
||||
# name is required
|
||||
assert {:error, msg} = Resolvers.Schedule.create(nil, %{input: %{name: ""}}, ctx)
|
||||
assert is_binary(msg)
|
||||
end
|
||||
|
||||
test "update/3 succeeds on a real schedule", %{ctx: ctx, org: org} do
|
||||
{:ok, schedule} =
|
||||
Towerops.OnCall.create_schedule(%{
|
||||
name: "Original",
|
||||
timezone: "Etc/UTC",
|
||||
organization_id: org.id
|
||||
})
|
||||
|
||||
assert {:ok, updated} =
|
||||
Resolvers.Schedule.update(nil, %{id: schedule.id, input: %{name: "Renamed"}}, ctx)
|
||||
|
||||
assert updated.name == "Renamed"
|
||||
end
|
||||
|
||||
test "update/3 with invalid input on a real schedule returns formatted error", %{
|
||||
ctx: ctx,
|
||||
org: org
|
||||
} do
|
||||
{:ok, schedule} =
|
||||
Towerops.OnCall.create_schedule(%{
|
||||
name: "Pre-update",
|
||||
timezone: "Etc/UTC",
|
||||
organization_id: org.id
|
||||
})
|
||||
|
||||
assert {:error, msg} =
|
||||
Resolvers.Schedule.update(nil, %{id: schedule.id, input: %{name: ""}}, ctx)
|
||||
|
||||
assert is_binary(msg)
|
||||
end
|
||||
|
||||
test "delete/3 succeeds on a real schedule", %{ctx: ctx, org: org} do
|
||||
{:ok, schedule} =
|
||||
Towerops.OnCall.create_schedule(%{
|
||||
name: "Doomed",
|
||||
timezone: "Etc/UTC",
|
||||
organization_id: org.id
|
||||
})
|
||||
|
||||
assert {:ok, %{success: true}} =
|
||||
Resolvers.Schedule.delete(nil, %{id: schedule.id}, ctx)
|
||||
end
|
||||
end
|
||||
|
||||
describe "Member" do
|
||||
test "invite/3 creates an invitation", %{ctx: ctx} do
|
||||
assert {:ok, invitation} =
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue