From 51784069db2102fa893ce4fd63f3fa220b45dd2f Mon Sep 17 00:00:00 2001 From: Aryan Iyappan Date: Sat, 29 Jun 2024 11:24:56 +0530 Subject: [PATCH] don't use magic numbers in tests --- .../tests/integration/todos/test_mutation.py | 2 +- server/tests/integration/todos/test_query.py | 47 ++++++++++--------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/server/tests/integration/todos/test_mutation.py b/server/tests/integration/todos/test_mutation.py index 783ae5c..3b39cc3 100644 --- a/server/tests/integration/todos/test_mutation.py +++ b/server/tests/integration/todos/test_mutation.py @@ -6,7 +6,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from strawberry.relay import to_base64 -from server.tests.integration.graphql_client import GraphQLClient +from tests.integration.graphql_client import GraphQLClient pytestmark = pytest.mark.usefixtures("session") diff --git a/server/tests/integration/todos/test_query.py b/server/tests/integration/todos/test_query.py index eac29cf..e733bc1 100644 --- a/server/tests/integration/todos/test_query.py +++ b/server/tests/integration/todos/test_query.py @@ -5,7 +5,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from strawberry.relay import to_base64 -from server.tests.integration.graphql_client import GraphQLClient +from tests.integration.graphql_client import GraphQLClient pytestmark = pytest.mark.usefixtures("session") @@ -110,6 +110,9 @@ async def test_get_todos(graphql_client: GraphQLClient) -> None: """Ensure that we can get all todos.""" pagination_limit = 10 + expected_start_cursor = to_base64(TodoType, 50) + expected_end_cursor = to_base64(TodoType, 41) + # Test fetching the first 10 todos response = await graphql_client( GET_TODOS_QUERY, @@ -121,12 +124,13 @@ async def test_get_todos(graphql_client: GraphQLClient) -> None: assert len(response["data"]["todos"]["edges"]) == pagination_limit assert response["data"]["todos"]["pageInfo"]["hasNextPage"] is True assert response["data"]["todos"]["pageInfo"]["hasPreviousPage"] is False - assert response["data"]["todos"]["pageInfo"]["startCursor"] == to_base64( - TodoType, 50 - ) - assert response["data"]["todos"]["pageInfo"]["endCursor"] == to_base64(TodoType, 41) + assert response["data"]["todos"]["pageInfo"]["startCursor"] == expected_start_cursor + assert response["data"]["todos"]["pageInfo"]["endCursor"] == expected_end_cursor # Test fetching the next 10 todos + expected_start_cursor = to_base64(TodoType, 48) + expected_end_cursor = to_base64(TodoType, 39) + response = await graphql_client( GET_TODOS_QUERY, variables={ @@ -137,12 +141,13 @@ async def test_get_todos(graphql_client: GraphQLClient) -> None: assert len(response["data"]["todos"]["edges"]) == pagination_limit assert response["data"]["todos"]["pageInfo"]["hasNextPage"] is True assert response["data"]["todos"]["pageInfo"]["hasPreviousPage"] is True - assert response["data"]["todos"]["pageInfo"]["startCursor"] == to_base64( - TodoType, 48 - ) - assert response["data"]["todos"]["pageInfo"]["endCursor"] == to_base64(TodoType, 39) + assert response["data"]["todos"]["pageInfo"]["startCursor"] == expected_start_cursor + assert response["data"]["todos"]["pageInfo"]["endCursor"] == expected_end_cursor # Test fetching the last 10 todos + expected_start_cursor = to_base64(TodoType, 10) + expected_end_cursor = to_base64(TodoType, 1) + response = await graphql_client( GET_TODOS_QUERY, variables={"last": pagination_limit}, @@ -150,12 +155,13 @@ async def test_get_todos(graphql_client: GraphQLClient) -> None: assert len(response["data"]["todos"]["edges"]) == pagination_limit assert response["data"]["todos"]["pageInfo"]["hasNextPage"] is False assert response["data"]["todos"]["pageInfo"]["hasPreviousPage"] is True - assert response["data"]["todos"]["pageInfo"]["startCursor"] == to_base64( - TodoType, 10 - ) - assert response["data"]["todos"]["pageInfo"]["endCursor"] == to_base64(TodoType, 1) + assert response["data"]["todos"]["pageInfo"]["startCursor"] == expected_start_cursor + assert response["data"]["todos"]["pageInfo"]["endCursor"] == expected_end_cursor # Test fetching 10 todos before the last one + expected_start_cursor = to_base64(TodoType, 11) + expected_end_cursor = to_base64(TodoType, 2) + response = await graphql_client( GET_TODOS_QUERY, variables={ @@ -166,14 +172,15 @@ async def test_get_todos(graphql_client: GraphQLClient) -> None: assert len(response["data"]["todos"]["edges"]) == pagination_limit assert response["data"]["todos"]["pageInfo"]["hasNextPage"] is True assert response["data"]["todos"]["pageInfo"]["hasPreviousPage"] is True - assert response["data"]["todos"]["pageInfo"]["startCursor"] == to_base64( - TodoType, 11 - ) - assert response["data"]["todos"]["pageInfo"]["endCursor"] == to_base64(TodoType, 2) + assert response["data"]["todos"]["pageInfo"]["startCursor"] == expected_start_cursor + assert response["data"]["todos"]["pageInfo"]["endCursor"] == expected_end_cursor # Test fetching all todos with a limit higher than the total count pagination_limit = 75 + expected_start_cursor = to_base64(TodoType, 50) + expected_end_cursor = to_base64(TodoType, 1) + response = await graphql_client( GET_TODOS_QUERY, variables={ @@ -183,7 +190,5 @@ async def test_get_todos(graphql_client: GraphQLClient) -> None: assert len(response["data"]["todos"]["edges"]) < pagination_limit assert response["data"]["todos"]["pageInfo"]["hasNextPage"] is False assert response["data"]["todos"]["pageInfo"]["hasPreviousPage"] is False - assert response["data"]["todos"]["pageInfo"]["startCursor"] == to_base64( - TodoType, 50 - ) - assert response["data"]["todos"]["pageInfo"]["endCursor"] == to_base64(TodoType, 1) + assert response["data"]["todos"]["pageInfo"]["startCursor"] == expected_start_cursor + assert response["data"]["todos"]["pageInfo"]["endCursor"] == expected_end_cursor