mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-10-06 11:35:54 +08:00
Fix: Teams integration tests (#2352)
This commit is contained in:
parent
56734420a0
commit
04eaab448b
4 changed files with 44 additions and 25 deletions
|
@ -31,9 +31,13 @@ defmodule Livebook.TeamsTest do
|
|||
org = build(:org)
|
||||
key_hash = Org.key_hash(org)
|
||||
|
||||
teams_org = :erpc.call(node, Hub.Integration, :create_org, [[name: org.name]])
|
||||
:erpc.call(node, Hub.Integration, :create_org_key, [[org: teams_org, key_hash: key_hash]])
|
||||
:erpc.call(node, Hub.Integration, :create_user_org, [[org: teams_org, user: user]])
|
||||
teams_org = :erpc.call(node, TeamsRPC, :create_org, [[name: org.name]])
|
||||
|
||||
:erpc.call(node, TeamsRPC, :create_org_key, [
|
||||
[org: teams_org, key_hash: key_hash]
|
||||
])
|
||||
|
||||
:erpc.call(node, TeamsRPC, :create_user_org, [[org: teams_org, user: user]])
|
||||
|
||||
assert {:ok,
|
||||
%{
|
||||
|
@ -63,11 +67,14 @@ defmodule Livebook.TeamsTest do
|
|||
|
||||
describe "get_org_request_completion_data/1" do
|
||||
test "returns the org data when it has been confirmed", %{node: node, user: user} do
|
||||
teams_key = Teams.Org.teams_key()
|
||||
teams_key = Org.teams_key()
|
||||
key_hash = :crypto.hash(:sha256, teams_key) |> Base.url_encode64(padding: false)
|
||||
|
||||
org_request = :erpc.call(node, Hub.Integration, :create_org_request, [[key_hash: key_hash]])
|
||||
org_request = :erpc.call(node, Hub.Integration, :confirm_org_request, [org_request, user])
|
||||
org_request =
|
||||
:erpc.call(node, TeamsRPC, :create_org_request, [[key_hash: key_hash]])
|
||||
|
||||
org_request =
|
||||
:erpc.call(node, TeamsRPC, :confirm_org_request, [org_request, user])
|
||||
|
||||
org =
|
||||
build(:org,
|
||||
|
@ -103,10 +110,11 @@ defmodule Livebook.TeamsTest do
|
|||
end
|
||||
|
||||
test "returns the org request awaiting confirmation", %{node: node} do
|
||||
teams_key = Teams.Org.teams_key()
|
||||
teams_key = Org.teams_key()
|
||||
key_hash = :crypto.hash(:sha256, teams_key) |> Base.url_encode64(padding: false)
|
||||
|
||||
org_request = :erpc.call(node, Hub.Integration, :create_org_request, [[key_hash: key_hash]])
|
||||
org_request =
|
||||
:erpc.call(node, TeamsRPC, :create_org_request, [[key_hash: key_hash]])
|
||||
|
||||
org =
|
||||
build(:org,
|
||||
|
@ -122,17 +130,19 @@ defmodule Livebook.TeamsTest do
|
|||
|
||||
test "returns error when org request doesn't exist" do
|
||||
org = build(:org, id: 0)
|
||||
assert {:transport_error, _embarrassing} = Teams.get_org_request_completion_data(org, "")
|
||||
|
||||
assert {:transport_error, _embarrassing} =
|
||||
Teams.get_org_request_completion_data(org, "")
|
||||
end
|
||||
|
||||
test "returns error when org request expired", %{node: node} do
|
||||
now = NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second)
|
||||
expires_at = NaiveDateTime.add(now, -5000)
|
||||
teams_key = Teams.Org.teams_key()
|
||||
teams_key = Org.teams_key()
|
||||
key_hash = :crypto.hash(:sha256, teams_key) |> Base.url_encode64(padding: false)
|
||||
|
||||
org_request =
|
||||
:erpc.call(node, Hub.Integration, :create_org_request, [
|
||||
:erpc.call(node, TeamsRPC, :create_org_request, [
|
||||
[expires_at: expires_at, key_hash: key_hash]
|
||||
])
|
||||
|
||||
|
@ -204,7 +214,10 @@ defmodule Livebook.TeamsTest do
|
|||
assert {:ok, id} = Teams.create_deployment_group(team, deployment_group)
|
||||
|
||||
update_deployment_group = %{deployment_group | id: id, name: ""}
|
||||
assert {:error, changeset} = Teams.update_deployment_group(team, update_deployment_group)
|
||||
|
||||
assert {:error, changeset} =
|
||||
Teams.update_deployment_group(team, update_deployment_group)
|
||||
|
||||
assert "can't be blank" in errors_on(changeset).name
|
||||
end
|
||||
|
||||
|
@ -215,11 +228,17 @@ defmodule Livebook.TeamsTest do
|
|||
assert {:ok, id} = Teams.create_deployment_group(team, deployment_group)
|
||||
|
||||
update_deployment_group = %{deployment_group | id: id, mode: ""}
|
||||
assert {:error, changeset} = Teams.update_deployment_group(team, update_deployment_group)
|
||||
|
||||
assert {:error, changeset} =
|
||||
Teams.update_deployment_group(team, update_deployment_group)
|
||||
|
||||
assert "can't be blank" in errors_on(changeset).mode
|
||||
|
||||
update_deployment_group = %{deployment_group | id: id, mode: "invalid"}
|
||||
assert {:error, changeset} = Teams.update_deployment_group(team, update_deployment_group)
|
||||
|
||||
assert {:error, changeset} =
|
||||
Teams.update_deployment_group(team, update_deployment_group)
|
||||
|
||||
assert "is invalid" in errors_on(changeset).mode
|
||||
end
|
||||
end
|
||||
|
|
|
@ -35,14 +35,14 @@ defmodule LivebookWeb.Hub.NewLiveTest do
|
|||
render_submit(form, attrs)
|
||||
|
||||
# gets the org request by name
|
||||
org_request = :erpc.call(node, Hub.Integration, :get_org_request_by!, [[name: name]])
|
||||
org_request = :erpc.call(node, TeamsRPC, :get_org_request_by!, [[name: name]])
|
||||
|
||||
# check if the form has the url to confirm
|
||||
link_element = element(view, "#new-org-form a")
|
||||
assert render(link_element) =~ "/org-request/#{org_request.id}/confirm"
|
||||
|
||||
# force org request confirmation
|
||||
:erpc.call(node, Hub.Integration, :confirm_org_request, [org_request, user])
|
||||
:erpc.call(node, TeamsRPC, :confirm_org_request, [org_request, user])
|
||||
|
||||
# wait for the c:handle_info/2 cycle
|
||||
# check if the page redirected to edit hub page
|
||||
|
@ -76,10 +76,10 @@ defmodule LivebookWeb.Hub.NewLiveTest do
|
|||
{:ok, view, _html} = live(conn, ~p"/hub")
|
||||
|
||||
# previously create the org and associate user with org
|
||||
org = :erpc.call(node, Hub.Integration, :create_org, [[name: name]])
|
||||
:erpc.call(node, Hub.Integration, :create_org_key, [[org: org, key_hash: key_hash]])
|
||||
:erpc.call(node, Hub.Integration, :create_org_key_pair, [[org: org]])
|
||||
:erpc.call(node, Hub.Integration, :create_user_org, [[org: org, user: user]])
|
||||
org = :erpc.call(node, TeamsRPC, :create_org, [[name: name]])
|
||||
:erpc.call(node, TeamsRPC, :create_org_key, [[org: org, key_hash: key_hash]])
|
||||
:erpc.call(node, TeamsRPC, :create_org_key_pair, [[org: org]])
|
||||
:erpc.call(node, TeamsRPC, :create_user_org, [[org: org, user: user]])
|
||||
|
||||
# select the new org option
|
||||
view
|
||||
|
@ -98,7 +98,7 @@ defmodule LivebookWeb.Hub.NewLiveTest do
|
|||
|
||||
# gets the org request by name and key hash
|
||||
org_request =
|
||||
:erpc.call(node, Hub.Integration, :get_org_request_by!, [
|
||||
:erpc.call(node, TeamsRPC, :get_org_request_by!, [
|
||||
[name: name, key_hash: key_hash]
|
||||
])
|
||||
|
||||
|
@ -107,7 +107,7 @@ defmodule LivebookWeb.Hub.NewLiveTest do
|
|||
assert render(link_element) =~ "/org-request/#{org_request.id}/confirm"
|
||||
|
||||
# force org request confirmation
|
||||
:erpc.call(node, Hub.Integration, :confirm_org_request, [org_request, user])
|
||||
:erpc.call(node, TeamsRPC, :confirm_org_request, [org_request, user])
|
||||
|
||||
# wait for the c:handle_info/2 cycle
|
||||
# check if the page redirected to edit hub page
|
||||
|
|
|
@ -217,6 +217,6 @@ defmodule Livebook.HubHelpers do
|
|||
defp hub_element_id(id), do: "#hubs #hub-#{id}"
|
||||
|
||||
defp erpc_call(node, fun, args) do
|
||||
:erpc.call(node, Hub.Integration, fun, args)
|
||||
:erpc.call(node, TeamsRPC, fun, args)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ defmodule Livebook.TeamsServer do
|
|||
|
||||
@name __MODULE__
|
||||
@timeout 10_000
|
||||
@default_teams_dir "../hub"
|
||||
@default_teams_dir "../teams"
|
||||
|
||||
def available?() do
|
||||
System.get_env("TEAMS_PATH") != nil or File.exists?(@default_teams_dir)
|
||||
|
@ -105,7 +105,7 @@ defmodule Livebook.TeamsServer do
|
|||
# Private
|
||||
|
||||
defp call_erpc_function(node, function, args \\ []) do
|
||||
:erpc.call(node, Hub.Integration, function, args)
|
||||
:erpc.call(node, TeamsRPC, function, args)
|
||||
end
|
||||
|
||||
defp ensure_session_token(state) do
|
||||
|
|
Loading…
Add table
Reference in a new issue