Skip to content

Commit 449f875

Browse files
committed
Add E2E test using the GitHub API via Tentacat
1 parent 054bd89 commit 449f875

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

.github/workflows/examples.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,16 @@ jobs:
9595
9696
- name: Get result
9797
run: echo "${{steps.script.outputs.result}}"
98+
99+
can-use-the-github-api-via-tentacat:
100+
runs-on: ubuntu-latest
101+
steps:
102+
- uses: gaggle/elixir_script@v0
103+
id: script
104+
with:
105+
script: |
106+
{200, user, _resp} = Tentacat.Users.find(client, "gaggle")
107+
user["login"]
108+
109+
- name: Get result
110+
run: echo "${{steps.script.outputs.result}}"

test/e2e_data.exs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,13 @@
4444
Greeter.greet("Mark")
4545
""",
4646
expected: "Oh hi Mark!"
47+
},
48+
%{
49+
name: "Can use the GitHub API via Tentacat",
50+
script: """
51+
{200, user, _resp} = Tentacat.Users.find(client, "gaggle")
52+
user["login"]
53+
""",
54+
expected: "gaggle"
4755
}
4856
]

test/e2e_test.exs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,27 @@ defmodule ElixirScript.E2eTest.EndToEndTest do
7676

7777
setup :verify_on_exit!
7878

79+
setup do
80+
bypass = Bypass.open()
81+
{:ok, bypass: bypass}
82+
end
83+
7984
describe "end-to-end tests" do
80-
test "run e2e tests" do
85+
test "run e2e tests", %{bypass: bypass} do
86+
ElixirScript.CustomLogger.configure(level: :debug)
87+
8188
stub(SystemEnvMock, :get_env, fn varname, default ->
8289
GitHubWorkflowRun.env()[varname] || default
8390
end)
8491

85-
stub(TentacatMock.ClientMock, :new, fn -> %{auth: nil, endpoint: "github"} end)
92+
Bypass.expect(bypass, "GET", "/users/gaggle", fn conn ->
93+
fixture_path = Path.join(__DIR__, "fixtures/api.github.com/users/gaggle/GET.200.json")
94+
Plug.Conn.resp(conn, 200, File.read!(fixture_path))
95+
end)
96+
97+
stub(TentacatMock.ClientMock, :new, fn ->
98+
Tentacat.Client.new("http://localhost:#{bypass.port}")
99+
end)
86100

87101
E2e.read_test_file()
88102
|> Enum.each(&EndToEndUtils.run_test/1)

0 commit comments

Comments
 (0)