Skip to content

Bling ERP: minors não bloqueantes das reviews da #802 #817

Description

@vitorrgg

Follow-up da review de 19/08 na #802 — minors 🟢 não bloqueantes que sobraram (dois já caíram na própria PR: a guarda morta stockBalances && e o contador de testes do corpo da PR; o do EVENT_SKIP_FLAG ficou obsoleto com a remoção do skip-event-headers.ts).

Em packages/apps/bling-erp:

  • src/integration/export-product-to-bling.ts — dois GET /produtos/{blingProductId} idênticos na mesma execução (blocos de variações com preço divergente e de releitura pós-POST não são exclusivos), num app que economiza cota diária.
  • src/integration/export-product-to-bling.tsisDetailLoaded é derivável de blingProducts, que segue em escopo e inalterado.
  • src/bling-auth/client.ts:12-15 — comentário afirma que "um campo de instância nunca espaçaria nada", o que é falso (o checkTime antigo espaçava chamadas sequenciais da mesma instância; o que não cobria era concorrência). O trade-off real do escopo de módulo — todo tráfego Bling do processo serializado a 1 req/s entre handlers independentes — fica escondido.
  • src/bling-auth/check-enable-api.tsRATE_LIMIT_WINDOW_MS mora no consumidor e é importado por quem implementa a política (create-access.ts), enquanto EXPIRES_IN_GAP_SEC foi para o módulo neutro (tokens-doc.ts): duas convenções para o mesmo problema. E o bloco de doc do checkEnableApi ficou colado na constante inserida entre ele e a função.
  • src/integration/parsers/order-to-bling.ts:16hasWarnedHolidays é estado mutável de módulo num arquivo documentado como parser puro (scripts/tests.sh); a ordem dos testes passa a importar.
  • src/integration/import-product-from-bling.tsisStockOnly virou parâmetro morto (implica !update_product, primeiro disjunto do guard nunca muda o resultado) e o isQuantityOnly é a terceira cópia do mesmo predicado.
  • src/integration/integration-handler.tsexport default de um tipo, sem consumidor; precedente do repo é export type { ... } no módulo dono (pubsub.ts).
  • turbo.json — a aresta test → build cobre o bling-erp, mas test:apps segue sem dependsOn: as duas definições divergem (encosta na Add apps tests to release script #237).

Da review de 13/08 (Optional, seguem válidos): preço não exportado em loja multiloja, estoque de variação sempre relançado sem comparação, /estoques/saldos sem paginação (>100 variações), feriados hardcoded até 2027, datas em UTC (off-by-one de fuso; tiny-erp subtrai 3h), numeroLoja numérico na busca do import, fallback de forma de pagamento pegando data[0] de qualquer tipo, recursão de categoria sem guarda de ciclo, pictureId podendo apontar imagem de outra variação.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions