@@ -79,6 +79,50 @@ defmodule GroupherServer.Test.Query.PagedRepos do
7979 end
8080 end
8181
82+ describe "[query paged_repos filter has_xxx]" do
83+ @ query """
84+ query($filter: PagedReposFilter!) {
85+ pagedRepos(filter: $filter) {
86+ entries {
87+ id
88+ viewerHasCollected
89+ viewerHasUpvoted
90+ viewerHasViewed
91+ }
92+ totalCount
93+ }
94+ }
95+ """
96+ @ tag :wip2
97+ test "has_xxx state should work" , ~m( user) a do
98+ user_conn = simu_conn ( :user , user )
99+ { :ok , community } = db_insert ( :community )
100+
101+ { :ok , repo } = CMS . create_content ( community , :repo , mock_attrs ( :repo ) , user )
102+ { :ok , _repo } = CMS . create_content ( community , :repo , mock_attrs ( :repo ) , user )
103+ { :ok , _repo3 } = CMS . create_content ( community , :repo , mock_attrs ( :repo ) , user )
104+
105+ variables = % { filter: % { community: community . raw } }
106+ results = user_conn |> query_result ( @ query , variables , "pagedRepos" )
107+ assert results [ "totalCount" ] == 3
108+
109+ the_repo = Enum . find ( results [ "entries" ] , & ( & 1 [ "id" ] == to_string ( repo . id ) ) )
110+ assert not the_repo [ "viewerHasViewed" ]
111+ assert not the_repo [ "viewerHasUpvoted" ]
112+ assert not the_repo [ "viewerHasCollected" ]
113+
114+ { :ok , _ } = CMS . read_article ( :repo , repo . id , user )
115+ { :ok , _ } = CMS . upvote_article ( :repo , repo . id , user )
116+ { :ok , _ } = CMS . collect_article ( :repo , repo . id , user )
117+
118+ results = user_conn |> query_result ( @ query , variables , "pagedRepos" )
119+ the_repo = Enum . find ( results [ "entries" ] , & ( & 1 [ "id" ] == to_string ( repo . id ) ) )
120+ assert the_repo [ "viewerHasViewed" ]
121+ assert the_repo [ "viewerHasUpvoted" ]
122+ assert the_repo [ "viewerHasCollected" ]
123+ end
124+ end
125+
82126 describe "[query paged_repos filter sort]" do
83127 @ query """
84128 query($filter: PagedReposFilter!) {
0 commit comments