「削除済み customer の name を落とす」テストが、その主張を検証していない
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 86/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- backend-api-design, testing
Direzione di ricerca
Inizia con il test drops the name for a deleted (expanded) customer in packages/api/src/payments/payments.test.ts e con la logica readCustomer in packages/api/src/payments/normalize.ts. Esegui npx vitest run packages/api/src/payments/payments.test.ts, quindi verifica che il test fallisca quando viene rimossa la verifica dei clienti eliminati e passi con il fixture previsto. Il lavoro è concluso quando il test distingue effettivamente i clienti eliminati dai clienti il cui nome è assente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
症状
packages/api/src/payments/payments.test.ts の drops the name for a deleted (expanded) customer は、invoiceToRow が削除済みの customer から name を落とすことを主張している。しかし渡しているフィクスチャが { id: 'cus_del', deleted: true, object: 'customer' } で name を持たないため、packages/api/src/payments/normalize.ts の customer の読み取りが customer.name ?? null である限り、削除済みかどうかを見ない実装に変えても結果は null のままになる。2026-09-18 に feat/merge-auth-collection の d8feaca で、normalize.ts の readCustomer にある削除済みの判定を外し、const name = customer.name ?? null に置き換えたうえで npx vitest run packages/api/src/payments/payments.test.ts を実行したところ、22 件すべてが通った。
誰が何を誤るか
このテストが通っていることを根拠に、削除済み customer の名前が出力に載らないと判断する人が出る。実際にはその保証は無い。
直す方向
フィクスチャに name を持たせる(たとえば { id: 'cus_del', deleted: true, object: 'customer', name: '退会した人' })。そうすると、削除済みを見ない実装では name がそのまま出て、テストが失敗するようになる。
直さずに残した理由
テストの主張が成り立たなくなる変異を複数用意して、どの変異でも失敗することを確かめる作業を伴うので、独立した変更として行うほうが確認しやすい。
- Lingua principale
- TypeScript
- Stelle
- 0
- Fork
- 0
- Merge medio
- 1h 9m
- PR unite (30g)
- 13
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di traPtitech/Checkin
-
bug documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
traPtitech/Checkin#87 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
traPtitech/Checkin#64 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
traPtitech/Checkin#95 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
traPtitech/Checkin#92 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
traPtitech/Checkin#91 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di traPtitech/Checkin
Issue simili
-
a10y a10y-audit ai-driven-qa claude
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
linagora/twake-directory-manager#219 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
I maintainer di solito rispondono entro 1 giorno
-
0️⃣ phase/new
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Pulse v7: buildPreferencesFromTelos() bypasses telosSectionOrFile(), renders empty on unified-TELOS installsForse già presa @zephyr91 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
danielmiessler/LifeOS#2393 ·
I maintainer di solito rispondono entro 4 giorni