mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-26 14:26:06 +00:00
fix(cloud): surface runtime and workspace plan status
This commit is contained in:
@@ -42,6 +42,9 @@ async def box_security_api():
|
||||
side_effect=lambda account_uuid, _workspace_uuid: _access(account_uuid)
|
||||
)
|
||||
application.box_service.get_status = AsyncMock(return_value={'enabled': True})
|
||||
application.box_service.get_backend_status = AsyncMock(
|
||||
return_value={'available': True, 'enabled': True, 'backend': {'name': 'nsjail'}}
|
||||
)
|
||||
application.box_service.get_sessions = AsyncMock(return_value=[{'session_id': 'private-session'}])
|
||||
application.box_service.get_recent_errors = Mock(return_value=[{'error': 'private error'}])
|
||||
application.box_service.managed_admission_required = False
|
||||
@@ -99,3 +102,18 @@ async def test_box_status_returns_explicit_403_when_workspace_has_no_managed_san
|
||||
assert response.status_code == 403
|
||||
payload = await response.get_json()
|
||||
assert payload['code'] == 'managed_sandbox_unavailable'
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_runtime_status_reports_connector_health_without_consuming_workspace_entitlement(box_security_api):
|
||||
application, client = box_security_api
|
||||
application.box_service.get_status.side_effect = EntitlementUnavailableError(
|
||||
'Workspace entitlement does not grant managed_sandbox'
|
||||
)
|
||||
|
||||
response = await client.get('/api/v1/box/runtime-status', headers=_headers('viewer-token'))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert (await response.get_json())['data']['available'] is True
|
||||
application.box_service.get_backend_status.assert_awaited_once()
|
||||
application.box_service.get_status.assert_not_awaited()
|
||||
|
||||
@@ -484,6 +484,12 @@ async def test_cloud_projection_is_selected_explicitly_and_directory_writes_use_
|
||||
)
|
||||
|
||||
application.entitlement_resolver = PlanResolver()
|
||||
bootstrap_with_plans = await client.get('/api/v1/workspaces/bootstrap', headers=_auth(owner_token))
|
||||
bootstrap_by_uuid = {
|
||||
item['workspace']['uuid']: item for item in (await bootstrap_with_plans.get_json())['data']['workspaces']
|
||||
}
|
||||
assert bootstrap_by_uuid[cloud_workspace_uuid]['plan_name'] == 'free'
|
||||
assert bootstrap_by_uuid[singleton_uuid]['plan_name'] is None
|
||||
current_response = await client.get(
|
||||
'/api/v1/workspaces/current',
|
||||
headers=_auth(owner_token, cloud_workspace_uuid),
|
||||
|
||||
Reference in New Issue
Block a user