feat: ensure board group deletion also removes associated board group memory

This commit is contained in:
Abhimanyu Saharan
2026-02-09 00:17:25 +05:30
parent 05c0f851f6
commit fd01320f1b
2 changed files with 47 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
from __future__ import annotations
from dataclasses import dataclass, field
from types import SimpleNamespace
from typing import Any
from uuid import uuid4
import pytest
from app.api import board_groups
@dataclass
class _FakeSession:
executed: list[Any] = field(default_factory=list)
committed: int = 0
async def execute(self, statement: Any) -> None:
self.executed.append(statement)
async def commit(self) -> None:
self.committed += 1
@pytest.mark.asyncio
async def test_delete_board_group_cleans_group_memory_first(
monkeypatch: pytest.MonkeyPatch,
) -> None:
group_id = uuid4()
async def _fake_require_group_access(*_args: Any, **_kwargs: Any) -> None:
return None
monkeypatch.setattr(board_groups, "_require_group_access", _fake_require_group_access)
session = _FakeSession()
ctx = SimpleNamespace(member=object())
await board_groups.delete_board_group(group_id=group_id, session=session, ctx=ctx)
statement_tables = [statement.table.name for statement in session.executed]
assert statement_tables == ["boards", "board_group_memory", "board_groups"]
assert session.committed == 1