mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-10-24 12:26:07 +08:00
Raise exception when trying to edit a secret that does not exist (#2067)
This commit is contained in:
parent
53b8bf101a
commit
f5d0dd557d
2 changed files with 19 additions and 4 deletions
|
|
@ -5,6 +5,16 @@ defmodule LivebookWeb.Hub.Edit.PersonalComponent do
|
|||
alias Livebook.Hubs.Personal
|
||||
alias LivebookWeb.LayoutHelpers
|
||||
|
||||
defmodule NotFoundError do
|
||||
@moduledoc false
|
||||
|
||||
defexception [:secret, plug_status: 404]
|
||||
|
||||
def message(%{secret: secret}) do
|
||||
"could not find secret matching \"#{secret}\""
|
||||
end
|
||||
end
|
||||
|
||||
@impl true
|
||||
def update(assigns, socket) do
|
||||
socket = assign(socket, assigns)
|
||||
|
|
@ -14,9 +24,8 @@ defmodule LivebookWeb.Hub.Edit.PersonalComponent do
|
|||
|
||||
secret_value =
|
||||
if assigns.live_action == :edit_secret do
|
||||
secrets
|
||||
|> Enum.find(&(&1.name == secret_name))
|
||||
|> Map.get(:value)
|
||||
Enum.find_value(secrets, &(&1.name == secret_name and &1.value)) ||
|
||||
raise(NotFoundError, secret: secret_name)
|
||||
end
|
||||
|
||||
{:ok,
|
||||
|
|
@ -198,7 +207,7 @@ defmodule LivebookWeb.Hub.Edit.PersonalComponent do
|
|||
|
||||
on_confirm = fn socket ->
|
||||
{:ok, secret} = Livebook.Secrets.update_secret(%Livebook.Secrets.Secret{}, attrs)
|
||||
:ok = Livebook.Hubs.delete_secret(hub, secret)
|
||||
_ = Livebook.Hubs.delete_secret(hub, secret)
|
||||
|
||||
socket
|
||||
|> put_flash(:success, "Secret deleted successfully")
|
||||
|
|
|
|||
|
|
@ -41,6 +41,12 @@ defmodule LivebookWeb.Hub.EditLiveTest do
|
|||
refute Hubs.fetch_hub!(hub.id) == hub
|
||||
end
|
||||
|
||||
test "raises an error if does not exist secret", %{conn: conn, hub: hub} do
|
||||
assert_raise LivebookWeb.Hub.Edit.PersonalComponent.NotFoundError, fn ->
|
||||
live(conn, ~p"/hub/#{hub.id}/secrets/edit/HELLO")
|
||||
end
|
||||
end
|
||||
|
||||
test "creates secret", %{conn: conn, hub: hub} do
|
||||
{:ok, view, _html} = live(conn, ~p"/hub/#{hub.id}")
|
||||
secret = build(:secret, name: "PERSONAL_ADD_SECRET")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue