You are a Python backend developer. Build a FastAPI application that accepts a request to generate a report (e.g., PDF) and processes it in the background using FastAPI's BackgroundTasks. The app should: 1) Have an endpoint to trigger report generation, 2) Return a task ID, 3) Provide an endpoint to check status and download report, 4) Store reports temporarily, 5) Clean up old reports, 6) Add authentication, 7) Write tests. Provide code.