2 lines
6.0 KiB
JavaScript
2 lines
6.0 KiB
JavaScript
import{j as t}from"./query-vendor-BLVqILA6.js";import{r as i}from"./router-vendor-D4by-_6Z.js";import{s as a}from"./index-doec96Hx.js";import"./react-vendor-CqRd3GwO.js";import"./ui-vendor-CyRvbSfR.js";import"./supabase-vendor-CnnNSQLo.js";import"./state-vendor-DHadhBU5.js";const U=()=>{const[m,d]=i.useState([{name:"Conexão com Supabase",status:"pending"},{name:"Leitura da tabela usuarios",status:"pending"},{name:"Leitura da tabela obras",status:"pending"},{name:"Leitura da tabela rdos",status:"pending"},{name:"Inserção de dados de teste",status:"pending"},{name:"Teste de autenticação",status:"pending"},{name:"Teste de políticas RLS",status:"pending"}]),[r,u]=i.useState(!1),[g,n]=i.useState(-1),o=(e,s)=>{d(f=>f.map((l,y)=>y===e?{...l,...s}:l))},c=[{name:"Conexão com Supabase",icon:"🗄️",test:async()=>{try{const{data:e,error:s}=await a.from("usuarios").select("count",{count:"exact",head:!0});if(s)throw s;return{success:!0,message:"Conexão estabelecida com sucesso",data:"Tabela usuarios acessível"}}catch(e){return{success:!1,message:e.message}}}},{name:"Leitura da tabela usuarios",icon:"👥",test:async()=>{try{const{data:e,error:s}=await a.from("usuarios").select("*").limit(5);if(s)throw s;return{success:!0,message:`${e?.length||0} registros encontrados`,data:e}}catch(e){return{success:!1,message:e.message}}}},{name:"Leitura da tabela obras",icon:"🏗️",test:async()=>{try{const{data:e,error:s}=await a.from("obras").select("*").limit(5);if(s)throw s;return{success:!0,message:`${e?.length||0} registros encontrados`,data:e}}catch(e){return{success:!1,message:e.message}}}},{name:"Leitura da tabela rdos",icon:"📄",test:async()=>{try{const{data:e,error:s}=await a.from("rdos").select("*").limit(5);if(s)throw s;return{success:!0,message:`${e?.length||0} registros encontrados`,data:e}}catch(e){return{success:!1,message:e.message}}}},{name:"Inserção de dados de teste",icon:"➕",test:async()=>{try{const{data:e,error:s}=await a.from("usuarios").select("id").limit(1);if(s)throw s;return{success:!0,message:"Permissões de leitura funcionando",data:"Teste de inserção simulado"}}catch(e){return{success:!1,message:e.message}}}},{name:"Teste de autenticação",icon:"🔐",test:async()=>{try{const{data:{user:e}}=await a.auth.getUser();return{success:!0,message:e?`Usuário autenticado: ${e.email}`:"Usuário não autenticado (modo anônimo)",data:e?{id:e.id,email:e.email}:null}}catch(e){return{success:!1,message:e.message}}}},{name:"Teste de políticas RLS",icon:"🛡️",test:async()=>{try{const{data:e,error:s}=await a.from("usuarios").select("*").limit(1);if(s&&s.code==="PGRST116")return{success:!0,message:"RLS ativo - acesso negado conforme esperado",data:"Políticas funcionando"};if(s)throw s;return{success:!0,message:"RLS configurado - dados acessíveis",data:`${e?.length||0} registros`}}catch(e){return{success:!1,message:e.message}}}}],x=async()=>{u(!0);for(let e=0;e<c.length;e++){n(e),o(e,{status:"running"});try{const s=await c[e].test();o(e,{status:s.success?"success":"error",message:s.message,data:s.data})}catch(s){o(e,{status:"error",message:s.message})}await new Promise(s=>setTimeout(s,500))}n(-1),u(!1)},p=()=>{d(e=>e.map(s=>({...s,status:"pending",message:void 0,data:void 0}))),n(-1)},h=e=>{switch(e){case"running":return t.jsx("span",{className:"inline-block w-4 h-4 border-2 border-blue-500 border-t-transparent rounded-full animate-spin"});case"success":return t.jsx("span",{className:"text-green-500 text-xl",children:"✓"});case"error":return t.jsx("span",{className:"text-red-500 text-xl",children:"✗"});default:return t.jsx("span",{className:"inline-block w-4 h-4 border-2 border-gray-300 rounded-full"})}},b=e=>{const s="px-2 py-1 rounded text-sm font-medium";switch(e){case"running":return t.jsx("span",{className:`${s} bg-blue-100 text-blue-800`,children:"Executando"});case"success":return t.jsx("span",{className:`${s} bg-green-100 text-green-800`,children:"Sucesso"});case"error":return t.jsx("span",{className:`${s} bg-red-100 text-red-800`,children:"Erro"});default:return t.jsx("span",{className:`${s} bg-gray-100 text-gray-800`,children:"Pendente"})}};return t.jsxs("div",{className:"container mx-auto p-6 space-y-6",children:[t.jsxs("div",{className:"text-center",children:[t.jsx("h1",{className:"text-3xl font-bold mb-2",children:"Teste de Conexão do Banco de Dados"}),t.jsx("p",{className:"text-gray-600",children:"Verificação completa da integração com Supabase"})]}),t.jsxs("div",{className:"flex justify-center space-x-4",children:[t.jsxs("button",{onClick:x,disabled:r,className:"flex items-center space-x-2 px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",children:[r?t.jsx("span",{className:"inline-block w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"}):t.jsx("span",{children:"🗄️"}),t.jsx("span",{children:r?"Executando Testes...":"Executar Todos os Testes"})]}),t.jsx("button",{onClick:p,disabled:r,className:"px-4 py-2 border border-gray-300 text-gray-700 rounded hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed",children:"Resetar Testes"})]}),t.jsx("div",{className:"grid gap-4",children:m.map((e,s)=>t.jsxs("div",{className:`border border-gray-200 rounded-lg p-6 transition-all duration-200 hover:shadow-md bg-white ${g===s?"ring-2 ring-blue-500 shadow-lg":""}`,children:[t.jsx("div",{className:"pb-3",children:t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[h(e.status),t.jsxs("h3",{className:"text-lg font-semibold flex items-center gap-2",children:[t.jsx("span",{children:c[s]?.icon}),e.name]})]}),b(e.status)]})}),(e.message||e.data!==void 0)&&t.jsxs("div",{className:"pt-0",children:[e.message&&t.jsx("p",{className:`text-sm ${e.status==="error"?"text-red-600":"text-gray-600"}`,children:e.message}),e.data!==void 0&&t.jsx("div",{className:"mt-3 p-3 bg-gray-50 rounded-md",children:t.jsx("pre",{className:"text-xs text-gray-700 whitespace-pre-wrap",children:JSON.stringify(e.data,null,2)})})]})]},s))})]})};export{U as default};
|