"""Printedparts plugin smoke tests.

Asserts the plugin loads cleanly and satisfies the framework contract.
Replace and extend with domain tests as you build the plugin out.
"""

from plugins.printedparts.plugin import PrintedpartsPlugin


def test_printedparts_plugin_meta_is_valid():
    """PrintedpartsPlugin.meta returns a PluginMeta with the expected name."""
    plugin = PrintedpartsPlugin()
    assert plugin.meta.name == 'printedparts'
    assert plugin.meta.api_prefix == '/api/printedparts'


def test_printedparts_plugin_get_blueprint_returns_blueprint():
    """get_blueprint returns a Flask Blueprint, not None."""
    from flask import Blueprint
    plugin = PrintedpartsPlugin()
    assert isinstance(plugin.get_blueprint(), Blueprint)


def test_printedparts_plugin_get_models_returns_a_model():
    """get_models returns a list with at least one SQLAlchemy model."""
    plugin = PrintedpartsPlugin()
    models = plugin.get_models()
    assert len(models) >= 1
    for model in models:
        assert hasattr(model, '__tablename__')
