feat: Phase 1 Group 10 — create global content tables and platform account
Creates template_trees and platform_steps (no account_id, no RLS). Migrates is_default=TRUE trees and public steps into them. Creates sentinel platform account (00000000-...-0001) for global tree_categories, tree_tags, step_categories, step_library, and is_default trees — clearing all NULL account_id rows in those tables as prerequisite for Group 9 SET NOT NULL. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -478,3 +478,31 @@ async def test_target_list_account_id_from_team_admin(test_db: AsyncSession):
|
||||
)
|
||||
row = result.scalar_one()
|
||||
assert row.account_id == account.id
|
||||
|
||||
|
||||
# ── Group 10 (runs first): Global content tables ──────────────────────────────
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_template_trees_table_exists_and_has_no_account_id(test_db: AsyncSession):
|
||||
"""template_trees must exist and must NOT have an account_id column."""
|
||||
result = await test_db.execute(text("""
|
||||
SELECT column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'template_trees'
|
||||
"""))
|
||||
columns = {row[0] for row in result.fetchall()}
|
||||
assert 'id' in columns, "template_trees.id must exist"
|
||||
assert 'account_id' not in columns, "template_trees must not have account_id (global content)"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_platform_steps_table_exists_and_has_no_account_id(test_db: AsyncSession):
|
||||
"""platform_steps must exist and must NOT have an account_id column."""
|
||||
result = await test_db.execute(text("""
|
||||
SELECT column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'platform_steps'
|
||||
"""))
|
||||
columns = {row[0] for row in result.fetchall()}
|
||||
assert 'id' in columns, "platform_steps.id must exist"
|
||||
assert 'account_id' not in columns, "platform_steps must not have account_id (global content)"
|
||||
|
||||
Reference in New Issue
Block a user