@@ -2,14 +2,28 @@ defmodule Tilex.MCP.NewPostTest do
22 use Tilex.DataCase , async: false
33
44 alias Anubis.Server.Response
5+ alias Tilex.Blog.Developer
56 alias Tilex.Blog.Post
67 alias Tilex.Factory
78 alias Tilex.MCP.NewPost
89 alias Tilex.Repo
910
1011 describe "execute/2" do
11- test "creates post successfully with valid data and authenticated user" do
12- developer = Factory . insert! ( :developer )
12+ setup do
13+ % {
14+ mcp_api_key: mcp_api_key ,
15+ signed_token: signed_token
16+ } = Developer . generate_mcp_api_key ( TilexWeb.Endpoint )
17+
18+ developer = Factory . insert! ( :developer , mcp_api_key: mcp_api_key )
19+
20+ [ developer: developer , signed_token: signed_token ]
21+ end
22+
23+ test "creates post successfully with valid data and authenticated user" , % {
24+ developer: developer ,
25+ signed_token: signed_token
26+ } do
1327 channel = Factory . insert! ( :channel , name: "elixir" )
1428
1529 title = "My First TIL"
@@ -23,7 +37,7 @@ defmodule Tilex.MCP.NewPostTest do
2337 body: body
2438 }
2539
26- frame = % { assigns : % { current_user: developer } }
40+ frame = % { transport : % { req_headers: % { "x-api-key" => signed_token } } }
2741
2842 assert { :reply , response , returned_frame } = NewPost . execute ( input , frame )
2943
@@ -64,7 +78,7 @@ defmodule Tilex.MCP.NewPostTest do
6478 body: body
6579 }
6680
67- frame = % { assigns : % { } }
81+ frame = % { transport : % { req_headers: % { } } }
6882
6983 assert { :reply , response , returned_frame } = NewPost . execute ( input , frame )
7084
@@ -82,9 +96,7 @@ defmodule Tilex.MCP.NewPostTest do
8296 } = response
8397 end
8498
85- test "raises error when channel does not exist" do
86- developer = Factory . insert! ( :developer )
87-
99+ test "raises error when channel does not exist" , % { signed_token: signed_token } do
88100 title = "My First TIL"
89101 body = "Today I learned something amazing about Elixir."
90102
@@ -94,7 +106,7 @@ defmodule Tilex.MCP.NewPostTest do
94106 body: body
95107 }
96108
97- frame = % { assigns : % { current_user: developer } }
109+ frame = % { transport : % { req_headers: % { "x-api-key" => signed_token } } }
98110
99111 assert { :reply , response , returned_frame } = NewPost . execute ( input , frame )
100112
@@ -112,8 +124,7 @@ defmodule Tilex.MCP.NewPostTest do
112124 } = response
113125 end
114126
115- test "returns validation error" do
116- developer = Factory . insert! ( :developer )
127+ test "returns validation error" , % { signed_token: signed_token } do
117128 channel = Factory . insert! ( :channel , name: "elixir" )
118129
119130 title = String . duplicate ( "a" , 51 )
@@ -125,7 +136,7 @@ defmodule Tilex.MCP.NewPostTest do
125136 body: body
126137 }
127138
128- frame = % { assigns : % { current_user: developer } }
139+ frame = % { transport : % { req_headers: % { "x-api-key" => signed_token } } }
129140
130141 assert { :reply , response , returned_frame } = NewPost . execute ( input , frame )
131142
0 commit comments