code: def test_create(
      sync_db: "Session",
      cli_runner: CliRunner,
      cli: Typer,
      role_string: str,
  ):
      result = cli_runner.invoke(
          cli,
          f"database users create --first-name first-name --username username --role {role_string} "
          "--password 12345678 --workspace workspace",
      )
  
      assert result.exit_code == 0
      assert sync_db.query(User).count() == 1
      assert sync_db.query(Workspace).count() == 1
  
      user = sync_db.query(User).filter_by(username="username").first()
      assert user
      assert user.first_name == "first-name"
      assert user.username == "username"
      assert user.role.value == UserRole(role_string).value
      assert accounts.verify_password("12345678", user.password_hash)
      assert user.api_key
      assert [ws.name for ws in user.workspaces] == ["workspace"]
  
imports: from typing import TYPE_CHECKING
  import pytest
  from argilla.server.contexts import accounts
  from argilla.server.models import User, UserRole, Workspace
  from click.testing import CliRunner
  from typer import Typer
  from tests.factories import UserSyncFactory, WorkspaceSyncFactory
label_desc: Use image node_id 1 for calling a global function with example usage: test_create(sync_db, cli_runner, cli, role_string) without return types