Files
RDO/dist/assets/js/DatabaseTest-BA9LjsoE.js
2026-02-20 07:25:32 -03:00

2 lines
6.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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};