Fix: Teams integration tests (#2352)

This commit is contained in:
Cristine Guadelupe 2023-11-15 18:56:12 -03:00 committed by GitHub
parent 56734420a0
commit 04eaab448b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 25 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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