from __future__ import annotations

from types import SimpleNamespace
import asyncio

import pytest

from langbot.pkg.telemetry.telemetry import TelemetryManager


@pytest.mark.asyncio
async def test_send_tasks_are_scoped_to_manager_instance(monkeypatch):
    async def fake_send(self, payload):
        return payload

    monkeypatch.setattr(TelemetryManager, 'send', fake_send)

    first = TelemetryManager(SimpleNamespace())
    second = TelemetryManager(SimpleNamespace())

    assert first.send_tasks is not second.send_tasks

    await first.start_send_task({'event': 'first'})
    task = first.send_tasks[0]
    await task
    await asyncio.sleep(0)

    assert first.send_tasks == []
    assert second.send_tasks == []
