"""Smoke test for the Phase 11.J module kit."""

from __future__ import annotations

from simorgh.core.module_kit import PlatformEntityModel


def test_platform_entity_model_combines_all_mixins():
    # Pull the field names off the abstract model's _meta. Because it's
    # abstract we inspect the class directly.
    field_names = {f.name for f in PlatformEntityModel._meta.get_fields()}
    # tenant scoping
    assert "tenant" in field_names
    assert "organization_node" in field_names
    # uuid identity
    assert "public_id" in field_names
    # timestamps
    assert "created_at" in field_names
    assert "updated_at" in field_names
    # soft delete
    assert "is_deleted" in field_names
    assert "deleted_at" in field_names
    # optimistic lock
    assert "version" in field_names


def test_platform_entity_model_is_abstract():
    assert PlatformEntityModel._meta.abstract is True
