fix(defter): haftalar ayın günlerine göre (1–8, 9–15, 16–22, 23–son), defter bugünün haftasıyla açılır

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-13 20:31:15 +03:00
parent 233907e3d9
commit 6e1000afd2
15 changed files with 144 additions and 130 deletions
+9 -12
View File
@@ -495,11 +495,11 @@ async fn actual_spending_in_summary_and_budget() {
)
.await;
// Aralık 2026 haftaları: 1–6 · 7–13 · 14–20 · 21–27 · 28–31
// Aralık 2026 haftaları: 1–8 · 9–15 · 16–22 · 23–31
for (date, amount, cat) in [
("2026-12-01", 1_000, &needs),
("2026-12-06", 2_000, &needs), // 1. haftanın son günü
("2026-12-07", 500, &needs), // 2. haftanın ilk günü
("2026-12-08", 2_000, &needs), // 1. haftanın son günü
("2026-12-09", 500, &needs), // 2. haftanın ilk günü
("2026-12-31", 300, &wants), // dönemin son günü
] {
let (st, b) = add(
@@ -516,7 +516,7 @@ async fn actual_spending_in_summary_and_budget() {
&app,
&s,
&pid,
json!({ "date": "2026-12-08", "amount": 400, "category_id": needs }),
json!({ "date": "2026-12-10", "amount": 400, "category_id": needs }),
)
.await;
app.patch(
@@ -530,7 +530,7 @@ async fn actual_spending_in_summary_and_budget() {
&app,
&s,
&pid,
json!({ "date": "2026-12-15", "amount": 700, "category_id": culture }),
json!({ "date": "2026-12-16", "amount": 700, "category_id": culture }),
)
.await;
let gone_id = gone["id"].as_str().unwrap();
@@ -546,18 +546,15 @@ async fn actual_spending_in_summary_and_budget() {
let (st, b) = app.get(&format!("/periods/{pid}/budget"), &s).await;
assert_eq!(st, StatusCode::OK);
assert_eq!(
spent_by_week(&b, "needs"),
(3_500, vec![3_000, 500, 0, 0, 0])
);
assert_eq!(spent_by_week(&b, "wants"), (700, vec![0, 400, 0, 0, 300]));
assert_eq!(spent_by_week(&b, "culture"), (0, vec![0; 5]));
assert_eq!(spent_by_week(&b, "needs"), (3_500, vec![3_000, 500, 0, 0]));
assert_eq!(spent_by_week(&b, "wants"), (700, vec![0, 400, 0, 300]));
assert_eq!(spent_by_week(&b, "culture"), (0, vec![0; 4]));
// Geri al → yeniden sayılır
app.post(&format!("/entries/{gone_id}/restore"), &s, json!({}))
.await;
let (_, b) = app.get(&format!("/periods/{pid}/budget"), &s).await;
assert_eq!(spent_by_week(&b, "culture"), (700, vec![0, 0, 700, 0, 0]));
assert_eq!(spent_by_week(&b, "culture"), (700, vec![0, 0, 700, 0]));
// Harcanabilir aşılırsa kalan negatif
add(