def test_get_all_alliances(graphql_request): alliances = graphql_request("allAlliances") assert len(alliances) >= 1 def test_get_alliance(graphql_request, alliance_schema, email): alliance = graphql_request("alliance", {"allianceId": alliance_schema}) assert alliance["id"] == alliance_schema assert alliance["name"] is not None assert alliance["createdBy"] is not None assert alliance["createdBy"]["email"] == email assert alliance["createdBy"]["me"] is True def test_get_alliance_total_profiles(graphql_request, alliance_schema): total_profiles = graphql_request( "totalProfiles", {"allianceId": alliance_schema}, type_name="Alliance" ) assert isinstance(total_profiles, int) assert total_profiles > 0 def test_get_alliance_members(graphql_request, alliance_schema, email): members = graphql_request( "members", {"allianceId": alliance_schema}, type_name="Alliance" ) assert len(members) > 0 assert any(m["email"] == email for m in members) def test_get_alliance_segments(graphql_request, alliance_schema): segments = graphql_request( "segments", {"allianceId": alliance_schema}, type_name="Alliance" ) assert len(segments) > 0 assert all(s["id"].startswith(alliance_schema) for s in segments) def test_get_alliance_collections(graphql_request, alliance_schema): collections = graphql_request( "collections", {"allianceId": alliance_schema}, type_name="Alliance" ) assert len(collections) > 0 assert all(c["id"].startswith(alliance_schema) for c in collections) def test_update_alliance(graphql_request, alliance_schema, random_string): random_name = f"TestAlliance-{random_string}" random_description = f"TestAlliance-Description-{random_string}" alliance = graphql_request( "updateAlliance", { "allianceId": alliance_schema, "name": random_name, "description": random_description, }, ) assert alliance["id"] == alliance_schema assert alliance["name"] == random_name assert alliance["description"] == random_description def test_create_and_delete_alliance(graphql_request, random_string): random_name = f"TestAlliance-{random_string}" random_description = f"TestAlliance-Description-{random_string}" alliance = graphql_request( "createAlliance", {"name": random_name, "description": random_description} ) alliance_id = alliance["id"] assert alliance["name"] == random_name assert alliance["description"] == random_description # TODO Alliance deletion triggers SetAllianceUpdatedMetaTrigger which tries to write into deleted meta_data table consequences = graphql_request("tryDeleteAlliance", {"allianceId": alliance_id}) assert ( len(consequences) == 1 ) # Deleting an alliance will delete a single member from the alliance accepted_consequences = [] for consequence in consequences: accepted_consequences.extend(consequence["items"]) deleted_alliance = graphql_request( "deleteAlliance", {"allianceId": alliance_id, "acceptedConsequences": accepted_consequences,}, ) assert deleted_alliance["id"] == alliance_id assert deleted_alliance["status"] == "deleting" def test_try_delete_alliance_collections( graphql_request, alliance_schema, alliance_merch_collection_id ): consequences = graphql_request( "tryDeleteAllianceCollections", { "allianceId": alliance_schema, "collectionIds": [alliance_merch_collection_id], }, ) assert len(consequences) == 0 def test_alliance_event_log(graphql_request, alliance_schema): log = graphql_request("eventLog", {"allianceId": alliance_schema}) assert len(log["items"]) > 0 assert len(log["items"]) <= log["length"] def test_alliance_event_log_limit_offset(graphql_request, alliance_schema): offset = 3 limit = 10 log = graphql_request( "eventLog", {"allianceId": alliance_schema, "offset": offset, "limit": limit} ) assert len(log["items"]) <= limit assert log["offset"] == offset # TODO inviteAllianceMember - not yet possible to mock SES SendEmail calls