import pytest import tempfile import os from backend.db import get_connection, init_db EXPECTED_TABLES = { "slabs", "slab_photos", "pricing_rules", "woo_categories", "woo_attributes", "woo_attribute_terms", "woo_tags", "settings", "schema_version", "prompts", "prompt_revisions", "sync_log", "inference_log", } def test_init_db_creates_all_13_tables(tmp_path): db_path = str(tmp_path / "test_schema.db") init_db(db_path) conn = get_connection(db_path) rows = conn.execute("SELECT name FROM sqlite_master WHERE type='table'").fetchall() names = {r["name"] for r in rows} assert names >= EXPECTED_TABLES assert len(EXPECTED_TABLES) == 13 def test_slab_insert_read_roundtrip(tmp_path): db_path = str(tmp_path / "test_slab.db") init_db(db_path) conn = get_connection(db_path) now = "2026-01-01T00:00:00+00:00" conn.execute( """INSERT INTO slabs (id, status, sku, length_in, thickness_in, sqft, bdft, client_rev, server_rev, created_at, updated_at) VALUES ('slab-1', 'draft', 'SLAB-001', 10.0, 2.0, 5.0, 40.0, 1, 1, ?, ?)""", (now, now), ) conn.commit() row = conn.execute("SELECT id, sku, status FROM slabs WHERE id=?", ("slab-1",)).fetchone() assert row["id"] == "slab-1" assert row["sku"] == "SLAB-001" assert row["status"] == "draft"