Files
gh-christianlouis-docuelevate/tests/test_views_onedrive.py
T
copilot-swe-agent[bot] cfc52fd355 feat(auth): make OAuth credentials user-specific via UserIntegration records
Setup pages now accept an integration_id query param to save OAuth
credentials to the user's personal UserIntegration record instead
of global settings. The integrations dashboard shows an "Authorize"
button for OAuth types (Dropbox, Google Drive, OneDrive) that need
credentials.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-08 18:48:11 +00:00

45 lines
1.8 KiB
Python

"""Tests for app/views/onedrive.py module."""
import pytest
@pytest.mark.integration
class TestOnedriveViews:
"""Tests for OneDrive view routes."""
def test_onedrive_setup_page(self, client):
"""Test the OneDrive setup page."""
response = client.get("/onedrive-setup")
assert response.status_code == 200
def test_onedrive_callback_no_code(self, client):
"""Test the OneDrive OAuth callback without code."""
response = client.get("/onedrive-callback", follow_redirects=False)
assert response.status_code == 200
def test_onedrive_callback_with_error(self, client):
"""Test the OneDrive OAuth callback with error."""
response = client.get("/onedrive-callback?error=access_denied")
assert response.status_code == 200
def test_onedrive_callback_with_code(self, client):
"""Test the OneDrive OAuth callback with auth code."""
response = client.get("/onedrive-callback?code=test_code")
assert response.status_code == 200
def test_onedrive_setup_page_with_integration_id(self, client):
"""Test the OneDrive setup page accepts integration_id query param."""
response = client.get("/onedrive-setup?integration_id=77")
assert response.status_code == 200
# The template should store the integration_id for per-user OAuth flow
assert b"oauth_integration_id" in response.content
assert b"77" in response.content
def test_onedrive_setup_page_without_integration_id(self, client):
"""Test the OneDrive setup page works without integration_id (global flow)."""
response = client.get("/onedrive-setup")
assert response.status_code == 200
body = response.text
assert "oauth_integration_id" in body
assert 'const integrationId = ""' in body