diff --git a/tests/api/v2/handlers/test_health_api.py b/tests/api/v2/handlers/test_health_api.py new file mode 100644 index 000000000..1cad409bf --- /dev/null +++ b/tests/api/v2/handlers/test_health_api.py @@ -0,0 +1,40 @@ +import pytest +import app + +from http import HTTPStatus + + +@pytest.fixture +def expected_caldera_info(): + return { + 'application': 'CALDERA', + 'plugins': [ + { + 'address': '/plugin/sandcat/gui', + 'description': 'A custom multi-platform RAT', + 'enabled': True, + 'name': 'sandcat' + }, + { + 'address': 'plugin/ssl/gui', + 'description': 'Run an SSL proxy in front of the server', + 'enabled': False, + 'name': 'ssl' + } + ], + 'version': app.get_version() + } + + +class TestHealthApi: + async def test_get_health(self, api_v2_client, api_cookies, expected_caldera_info): + resp = await api_v2_client.get('/api/v2/health', cookies=api_cookies) + assert resp.status == HTTPStatus.OK + output_info = await resp.json() + assert output_info == expected_caldera_info + + async def test_unauthorized_get_health(self, api_v2_client, expected_caldera_info): + resp = await api_v2_client.get('/api/v2/health') + assert resp.status == HTTPStatus.OK + output_info = await resp.json() + assert output_info == expected_caldera_info diff --git a/tests/conftest.py b/tests/conftest.py index 0b9c19662..1d142b75b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -18,6 +18,7 @@ from app.api.v2.handlers.operation_api import OperationApi from app.api.v2.handlers.contact_api import ContactApi from app.api.v2.handlers.obfuscator_api import ObfuscatorApi +from app.api.v2.handlers.health_api import HealthApi from app.objects.c_obfuscator import Obfuscator from app.utility.base_world import BaseWorld from app.service.app_svc import AppService @@ -322,6 +323,7 @@ def make_app(svcs): AdversaryApi(svcs).add_routes(app) ContactApi(svcs).add_routes(app) ObfuscatorApi(svcs).add_routes(app) + HealthApi(svcs).add_routes(app) return app async def initialize():