<?php
require_once __DIR__ . '/../bootstrap.php';
use Gestoreasy\Core\Kernel;
use Gestoreasy\Core\Http\Request;
use Gestoreasy\Core\Auth\Jwt;

$kernel = new Kernel();
$payload = [ 'sub' => 1, 'email' => 'admin@local', 'name' => 'Admin', 'tenant' => 'default', 'roles' => ['admin'] ];
$token = Jwt::sign($payload);
$authHeaders = [ 'x-tenant-id' => 'default', 'authorization' => 'Bearer ' . $token ];

// Render página de Ordens de Compra
$req = new Request($authHeaders, [], [], [], 'GET', '/compras/ordens');
$res = $kernel->handle($req);
$status = ($res->status ?? $res->statusCode ?? 500);
if ($status !== 200) {
    echo "FAIL: Página /compras/ordens deve responder 200, got $status\n";
    exit(1);
}

$html = is_string($res->body ?? null) ? $res->body : '';
// Título e elementos principais
if (strpos($html, 'Ordens de Compra') === false) { echo "FAIL: Título 'Ordens de Compra' deve estar presente\n"; exit(1); }
if (strpos($html, 'Nova Ordem de Compra') === false) { echo "FAIL: Cabeçalho 'Nova Ordem de Compra' deve estar presente\n"; exit(1); }
// Tabela de itens e resumo
if (strpos($html, 'id=\"tblItems\"') === false) { echo "FAIL: Tabela de itens (tblItems) deve existir\n"; exit(1); }
if (strpos($html, 'id=\"summaryTotal\"') === false) { echo "FAIL: Resumo de totais (summaryTotal) deve existir\n"; exit(1); }
// Controles adicionados: seletor de cotações, importação e limpar itens
if (strpos($html, 'id=\"quoteSelect\"') === false) { echo "FAIL: Seletor de cotações (quoteSelect) deve existir\n"; exit(1); }
if (strpos($html, 'id=\"btnImportSelectedQuote\"') === false) { echo "FAIL: Botão 'Importar selecionada' deve existir\n"; exit(1); }
if (strpos($html, 'id=\"btnClearItems\"') === false) { echo "FAIL: Botão 'Limpar itens' deve existir\n"; exit(1); }
// Badge de cotação no cabeçalho
if (strpos($html, 'id=\"modalCotacaoBadge\"') === false) { echo "FAIL: Badge de cotação (modalCotacaoBadge) deve existir\n"; exit(1); }
// Botão Criar inicial desabilitado
if (strpos($html, 'id=\"btnCreate\"') === false) { echo "FAIL: Botão Criar (btnCreate) deve existir\n"; exit(1); }

echo "PASS: PurchasesOrdersViewTest (/compras/ordens render e elementos principais).\n";
exit(0);
?>