From 04eaab448b4eab139382cb5917646ffec9528e24 Mon Sep 17 00:00:00 2001 From: Cristine Guadelupe Date: Wed, 15 Nov 2023 18:56:12 -0300 Subject: [PATCH] Fix: Teams integration tests (#2352) --- test/livebook_teams/teams_test.exs | 47 +++++++++++++------ test/livebook_teams/web/hub/new_live_test.exs | 16 +++---- test/support/hub_helpers.ex | 2 +- test/support/integration/teams_server.ex | 4 +- 4 files changed, 44 insertions(+), 25 deletions(-) diff --git a/test/livebook_teams/teams_test.exs b/test/livebook_teams/teams_test.exs index 0fa841218..8540368c4 100644 --- a/test/livebook_teams/teams_test.exs +++ b/test/livebook_teams/teams_test.exs @@ -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 diff --git a/test/livebook_teams/web/hub/new_live_test.exs b/test/livebook_teams/web/hub/new_live_test.exs index 3d9b5e28e..741547b10 100644 --- a/test/livebook_teams/web/hub/new_live_test.exs +++ b/test/livebook_teams/web/hub/new_live_test.exs @@ -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 diff --git a/test/support/hub_helpers.ex b/test/support/hub_helpers.ex index 5bfdbc7e6..1c31ebf38 100644 --- a/test/support/hub_helpers.ex +++ b/test/support/hub_helpers.ex @@ -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 diff --git a/test/support/integration/teams_server.ex b/test/support/integration/teams_server.ex index 7042869e7..be4c26138 100644 --- a/test/support/integration/teams_server.ex +++ b/test/support/integration/teams_server.ex @@ -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