defmodule Mobilizon.GraphQL.Resolvers.StatisticsTest do use Mobilizon.Web.ConnCase import Mobilizon.Factory alias Mobilizon.GraphQL.AbsintheHelpers describe "statistics resolver" do @statistics_query """ query { statistics { numberOfUsers numberOfEvents numberOfLocalEvents numberOfComments numberOfLocalComments numberOfGroups numberOfLocalGroups numberOfInstanceFollowings numberOfInstanceFollowers } } """ test "get statistics", %{conn: conn} do Cachex.clear(:statistics) insert(:event) insert(:comment) insert(:group) actor = insert(:actor, user: nil, domain: "toto.tld") insert(:event, organizer_actor: actor, local: false) res = AbsintheHelpers.graphql_query(conn, query: @statistics_query) assert res["data"]["statistics"]["numberOfUsers"] == 6 assert res["data"]["statistics"]["numberOfLocalEvents"] == 2 assert res["data"]["statistics"]["numberOfEvents"] == 3 assert res["data"]["statistics"]["numberOfLocalComments"] == 1 assert res["data"]["statistics"]["numberOfLocalGroups"] == 1 insert(:event) # We keep the value in cache assert res["data"]["statistics"]["numberOfLocalEvents"] == 2 end end end