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