From eb65b11e4d2a1ede97037b34ed3d0caa00409fbe Mon Sep 17 00:00:00 2001 From: jamey Date: Fri, 20 Feb 2026 22:54:12 +0000 Subject: [PATCH] fix flaky sqlite test contention Increase DBConnection queue tolerance to stop requests being dropped under load, and flip 3 write-heavy test files to async: false since SQLite's single-writer model doesn't play well with concurrent writes. Co-Authored-By: Claude Opus 4.6 --- config/test.exs | 4 +++- test/berrypod/media_test.exs | 2 +- test/berrypod/orders/order_notifier_test.exs | 2 +- test/berrypod/products/product_test.exs | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/config/test.exs b/config/test.exs index dd76644..57ab11b 100644 --- a/config/test.exs +++ b/config/test.exs @@ -13,7 +13,9 @@ config :berrypod, Berrypod.Repo, pool_size: 1, pool: Ecto.Adapters.SQL.Sandbox, journal_mode: :wal, - busy_timeout: 10_000 + busy_timeout: 15_000, + queue_target: 5_000, + queue_interval: 10_000 # We don't run a server during test. If one is required, # you can enable the server option below. diff --git a/test/berrypod/media_test.exs b/test/berrypod/media_test.exs index 5bbcd93..11ed5e5 100644 --- a/test/berrypod/media_test.exs +++ b/test/berrypod/media_test.exs @@ -1,5 +1,5 @@ defmodule Berrypod.MediaTest do - use Berrypod.DataCase, async: true + use Berrypod.DataCase, async: false alias Berrypod.Media diff --git a/test/berrypod/orders/order_notifier_test.exs b/test/berrypod/orders/order_notifier_test.exs index f4a49b9..5ee61de 100644 --- a/test/berrypod/orders/order_notifier_test.exs +++ b/test/berrypod/orders/order_notifier_test.exs @@ -1,5 +1,5 @@ defmodule Berrypod.Orders.OrderNotifierTest do - use Berrypod.DataCase, async: true + use Berrypod.DataCase, async: false import Swoosh.TestAssertions import Berrypod.OrdersFixtures diff --git a/test/berrypod/products/product_test.exs b/test/berrypod/products/product_test.exs index c46cd52..13c575a 100644 --- a/test/berrypod/products/product_test.exs +++ b/test/berrypod/products/product_test.exs @@ -1,5 +1,5 @@ defmodule Berrypod.Products.ProductTest do - use Berrypod.DataCase, async: true + use Berrypod.DataCase, async: false alias Berrypod.Products.Product