fix(ci): [FECHADO/OBSOLETO] resolve regressões de typecheck pós #154–#176#180
fix(ci): [FECHADO/OBSOLETO] resolve regressões de typecheck pós #154–#176#180adm01-debug wants to merge 4 commits into
Conversation
…dRouteNotice (lote 1/4)
…ortadas (lote 3/4)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Your plan currently allows 2 reviews/hour. Refill in 1 minute and 48 seconds. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more review capacity refills, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (10)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
There was a problem hiding this comment.
Pull request overview
Este PR tem como objetivo eliminar regressões de TypeScript no gate de typecheck (pós #154–#176) com ajustes pontuais de tipagem/props inválidas, mantendo o comportamento de runtime inalterado.
Changes:
- Restaura tipos dos matchers do
@testing-library/jest-domno escoposrc/via novosrc/types/jest-dom.d.ts. - Corrige usos incompatíveis de props/assinaturas (ex.:
SalesOverviewChart,ProductRiskDetail,copyToClipboard, mocks de hooks eisTesting). - Ajusta pontos de narrowing/TS strictness em seletores e testes de integração.
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/types/jest-dom.d.ts | Reintroduz tipos do jest-dom para testes dentro de src/** sem depender do setup em tests/. |
| src/pages/quotes/QuoteViewPage.tsx | Remove cast no .update() e ajusta quoteId do histórico para satisfazer TS. |
| src/pages/bi/CommercialIntelligencePage.tsx | Remove prop não suportada e aplica refactor/formatting para alinhar com tipos atuais. |
| src/lib/personalization/selectors.ts | Hoist de valores de criteria para evitar erros de narrowing em closures (filter/sort). |
| src/hooks/products/useStockAlerts.integration.test.tsx | Evita .split em select possivelmente undefined via coalesce. |
| src/components/layout/sidebar/RestrictedRouteNotice.tsx | Troca Button size="xs" (inexistente) por size="sm" e ajustes de formatação. |
| src/components/inventory/SupplierRiskPanel.tsx | Remove prop não suportada em ProductRiskDetail e ajustes de formatação. |
| src/components/admin/connections/SecretsManagerHealthPanel.tsx | Narrowing adicional para boot.requestId antes de copyToClipboard. |
| src/components/admin/connections/tests/ConnectionUI.test.tsx | Ajusta mocks para isTesting e altera tipagem dos mocks para destravar TS. |
| src/components/admin/connections/tests/ConnectionsOverviewTable.test.tsx | Ajusta mocks para isTesting e altera tipagem dos mocks para destravar TS. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| await supabase | ||
| // rls-allow: lookup por id; RLS valida ownership | ||
| .from('quotes') | ||
| .update({ status: 'pending' } as Record<string, unknown>) | ||
| .update({ status: 'pending' }) | ||
| .eq('id', quote.id); | ||
| await logQuoteHistory( | ||
| quote.id, |
| </SheetHeader> | ||
| <div className="mt-6"> | ||
| <QuoteHistoryPanel quoteId={quote.id} /> | ||
| <QuoteHistoryPanel quoteId={quote.id ?? ''} /> |
| const useAuthMock = vi.mocked(useAuth) as unknown as ReturnType<typeof vi.fn>; | ||
| const useConnectionsOverviewMock = vi.mocked(useConnectionsOverview) as unknown as ReturnType< | ||
| typeof vi.fn | ||
| >; | ||
| const useConnectionTesterMock = vi.mocked(useConnectionTester) as unknown as ReturnType< | ||
| typeof vi.fn | ||
| >; |
| const useAuthMock = vi.mocked(useAuth) as unknown as ReturnType<typeof vi.fn>; | ||
| const useConnectionsOverviewMock = vi.mocked(useConnectionsOverview) as unknown as ReturnType< | ||
| typeof vi.fn | ||
| >; | ||
| const useConnectionTesterMock = vi.mocked(useConnectionTester) as unknown as ReturnType< | ||
| typeof vi.fn | ||
| >; | ||
| const useConsecutiveFailuresMock = vi.mocked(useConsecutiveFailures) as unknown as ReturnType< | ||
| typeof vi.fn | ||
| >; | ||
| const useSecretsManagerMock = vi.mocked(useSecretsManager) as unknown as ReturnType<typeof vi.fn>; |
Objetivo
Deixar o gate de typecheck verde. A sequência de commits Lovable (test-drift, RLS, vários harden lint #166–#171, #174 e #176) introduziu pares
file:rulede erros TS acima do baseline. Este PR aplica 10 correções cirúrgicas, todas validadas localmente contra o baseline atual.Resultado do gate (local, Node 20.20.2):
TS baseline gate — atual: 1041 erros · baseline: 1060 erros · ✅ Nenhuma regressão · drift positivo +19Os testes de runtime dos arquivos afetados continuam passando (esbuild remove tipos; nenhuma mudança de comportamento).
Correções por área
connections / sidebar
RestrictedRouteNotice.tsx—Button size="xs"(variante inexistente) →size="sm"(3×); a altura já é controlada viaclassName.SecretsManagerHealthPanel.tsx— narrowing deboot.requestId(string | undefined) antes decopyToClipboard.__tests__/ConnectionUI.test.tsxe__tests__/ConnectionsOverviewTable.test.tsx— mocks alinhados ao tipo dos hooks (testing→isTesting, castsas unknown as ReturnType<typeof vi.fn>).quotes
QuoteViewPage.tsx— remove o castas Record<string, unknown>nosupabase.from('quotes').update(...)(era a regressão de tipo) e coalescequote.idem<QuoteHistoryPanel quoteId={quote.id ?? ''} />. O comentáriorls-allowfoi mantido na posição introduzida pelo fix(ci): reposiciona rls-allow em QuoteViewPage — desbloqueia seller-scope gate na main #176.personalization (#165)
lib/personalization/selectors.ts— hoist dos valoresnarroweddecriteria.*para fora dos closures defilter/sort(resolve 7× TS18048).inventory / bi (#166–#171)
inventory/SupplierRiskPanel.tsx— remove propproductSkunão suportada porProductRiskDetail(props:productId+productName?).pages/bi/CommercialIntelligencePage.tsx— remove propproductIdnão suportada porSalesOverviewChart(props:days?).hooks/products/useStockAlerts.integration.test.tsx— coalescecallArgs.select(?? '') antes do.split.types — causa-raiz do #174
src/types/jest-dom.d.ts(novo) — restaura os tipos dos matchers do@testing-library/jest-dompara o escoposrc/.O refactor(tsc): elimina top-5 do baseline TSC (Etapas 9-13) — -235 erros #174 deletou
src/test/setup.ts(que continhaimport "@testing-library/jest-dom"). O setup de runtime (tests/setup.ts) ainda importa os matchers, mastests/fica fora doincludedotsconfig.app.json, então 27 arquivos.test.tsxpassaram a regredir comTS2339(toBeInTheDocument,toHaveTextContent,toBeDisabled,toHaveAttribute). Este.d.ts(import '@testing-library/jest-dom/vitest') reintroduz esses tipos no escoposrc/— sem efeito em runtime.Notas
maindiretamente (evita redeploy Lovable indevido).main= exatamente esses 10.Summary by cubic
Resolve regressões de TypeScript e deixa o gate de typecheck verde sem alterar comportamento. 10 correções pequenas em componentes, testes e declarações de tipo.
@testing-library/jest-domrestaurados no escoposrcviasrc/types/jest-dom.d.ts(import '@testing-library/jest-dom/vitest'), corrigindo TS2339 após remoção do antigo setup (refactor(tsc): elimina top-5 do baseline TSC (Etapas 9-13) — -235 erros #174).requestIdemSecretsManagerHealthPanel; ajuste deButtonparasize="sm"e classes emRestrictedRouteNotice; testes (ConnectionUI/ConnectionsOverviewTable) com mocks alinhados (testing→isTestinge casts tipados).QuoteViewPageremove cast desnecessário noupdate()e usaquote.id ?? ''ao montarQuoteHistoryPanel.selectors.tsfaz hoist de valores estreitados fora dos closures para evitar TS18048.SupplierRiskPanelremove prop não suportada emProductRiskDetaile pequenos ajustes de UI;CommercialIntelligencePagenão passaproductIdparaSalesOverviewChart;useStockAlerts.integration.testcoalesceselectantes dosplit.Written for commit b305c3a. Summary will update on new commits. Review in cubic