defmodule SimpleshopTheme.OrdersFixtures do @moduledoc """ Test helpers for creating orders. """ alias SimpleshopTheme.Orders def order_fixture(attrs \\ %{}) do attrs = Enum.into(attrs, %{}) items = [ %{ variant_id: "var_#{System.unique_integer([:positive])}", name: Map.get(attrs, :product_name, "Test product"), variant: Map.get(attrs, :variant_title, "Red / Large"), price: Map.get(attrs, :unit_price, 1999), quantity: Map.get(attrs, :quantity, 1) } ] order_attrs = %{ items: items, customer_email: Map.get(attrs, :customer_email, "customer@example.com"), currency: Map.get(attrs, :currency, "gbp") } {:ok, order} = Orders.create_order(order_attrs) case attrs[:payment_status] do "paid" -> {:ok, order} = Orders.mark_paid(order, "pi_test_#{System.unique_integer([:positive])}") order "failed" -> {:ok, order} = Orders.mark_failed(order) order _ -> order end end end