def METHOD_NAME() -> Callable[[TestClient, TaskId, TaskContext], Awaitable[None]]:
    async def _waiter(
        client: TestClient,
        task_id: TaskId,
        task_context: TaskContext,
    ) -> None:
        assert client.app
        status_url = (
            client.app.router["get_task_status"]
            .url_for(task_id=task_id)
            .with_query(task_context)
        )
        async for attempt in AsyncRetrying(
            wait=wait_fixed(0.1),
            stop=stop_after_delay(60),
            reraise=True,
            retry=retry_if_exception_type(AssertionError),
        ):
            with attempt:
                result = await client.get(f"{status_url}")
                data, error = await assert_status(result, web.HTTPOk)
                assert data
                assert not error
                task_status = long_running_tasks.server.TaskStatus.parse_obj(data)
                assert task_status
                assert task_status.done
    return _waiter