main
sha 70a732c
| File | Line Cov | Branch Cov | Uncovered | Churn (90d) | Risk |
|---|---|---|---|---|---|
|
29.2%
|
0.0% | 17 | 11 | 779 | |
|
60.0%
|
35.7% | 10 | 6 | 240 | |
|
71.4%
|
33.3% | 8 | 6 | 172 | |
|
78.6%
|
37.5% | 6 | 6 | 128 | |
|
100.0%
|
โ | 0 | 1 | 0 | |
|
100.0%
|
โ | 0 | 1 | 0 | |
|
100.0%
|
100.0% | 0 | 1 | 0 | |
|
100.0%
|
โ | 0 | 1 | 0 | |
|
100.0%
|
โ | 0 | 2 | 0 | |
|
100.0%
|
โ | 0 | 1 | 0 | |
|
100.0%
|
100.0% | 0 | 1 | 0 | |
|
100.0%
|
81.8% | 0 | 1 | 0 | |
| Example | File | Duration | Status |
|---|---|---|---|
| OrderItem#subtotal_cents multiplies quantity by unit price | spec/models/order_item_spec.rb :5 | 0.03s | pass |
| ShippingCalculator#calculate adds weight surcharge for large orders | spec/services/shipping_calculator_spec.rb :26 | 0.03s | pass |
|
Test Source
26
it "adds weight surcharge for large orders" do
27
small_order = create(:order, total_cents: 2000)
28
7.times { create(:order_item, order: small_order, quantity: 1, unit_price_cents: 200) }
29
small_order.update_column(:total_cents, 2000) # keep below free threshold
30
result = described_class.new(small_order).calculate(method: :standard)
31
expect(result[:cost]).to be > 499
32
end
|
|||
| InventorySyncJob#perform syncs products for active pharmacy | spec/jobs/inventory_sync_job_spec.rb :13 | 0.03s | pass |
|
Test Source
|
|||
| PaymentService#capture! captures confirmed orders | spec/services/payment_service_spec.rb :18 | 0.01s | pass |
| Order#recalculate_total! sums order item subtotals | spec/models/order_spec.rb :51 | 0.01s | pass |
|
Test Source
|
|||
| InventorySyncJob#perform skips inactive pharmacies | spec/jobs/inventory_sync_job_spec.rb :17 | 0.01s | pass |
| CartOptimizer#optimize returns the cheapest pharmacy | spec/services/cart_optimizer_spec.rb :6 | 0.01s | pass |
|
Test Source
6
it "returns the cheapest pharmacy" do
7
# Heavy factory usage
8
products = create_list(:product, 3)
9
pharmacies = create_list(:pharmacy, 2)
11
result = described_class.new(products, pharmacies).optimize
12
expect(result[:pharmacy]).to be_a(Pharmacy)
13
expect(result[:items]).to be_an(Array)
14
end
|
|||
| OrderItem callback recalculates order total on save | spec/models/order_item_spec.rb :13 | 0.01s | pass |
| CartOptimizer#optimize raises when no pharmacies available | spec/services/cart_optimizer_spec.rb :16 | 0.01s | pass |
|
Test Source
|
|||
| Order#ship! ships confirmed orders | spec/models/order_spec.rb :26 | 0.01s | pass |
| Product#reserve! decrements stock | spec/models/product_spec.rb :69 | 0.01s | pass |
| Product scopes .in_stock returns products with stock > 0 | spec/models/product_spec.rb :38 | 0.01s | pass |
| Product scopes .active returns only active products | spec/models/product_spec.rb :32 | 0.01s | pass |
| Product scopes .by_category filters by category | spec/models/product_spec.rb :44 | 0.01s | pass |
| Order#deliver! delivers shipped orders | spec/models/order_spec.rb :40 | 0.0s | pass |
| ShippingCalculator#calculate returns express shipping cost | spec/services/shipping_calculator_spec.rb :13 | 0.0s | pass |
| Order#confirm! sets status to confirmed | spec/models/order_spec.rb :18 | 0.0s | pass |
| ShippingCalculator#calculate returns standard shipping cost | spec/services/shipping_calculator_spec.rb :7 | 0.0s | pass |
| Product validations requires unique minsan_code | spec/models/product_spec.rb :19 | 0.0s | pass |
| Pharmacy validations requires unique code | spec/models/pharmacy_spec.rb :14 | 0.0s | pass |
| File | Coverage | Churn | Risk Score |
|---|---|---|---|
| app/services/pricing_engine.rb | 29.2% | 11 commits | 779 |
| app/services/payment_service.rb | 60.0% | 6 commits | 240 |