Skip to content

Commit

Permalink
Add test for StripeConnectSubscriptionService.find_or_create
Browse files Browse the repository at this point in the history
  • Loading branch information
begedin committed Nov 29, 2016
1 parent 1c5bf5f commit 6e4b598
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 5 deletions.
4 changes: 2 additions & 2 deletions lib/code_corps/stripe_testing/subscription.ex
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ defmodule CodeCorps.StripeTesting.Subscription do
{:ok, do_retrieve(map)}
end

defp do_create(_) do
defp do_create(%{quantity: quantity}) do
{:ok, date} = DateTime.from_unix(1479472835)

{:ok, plan} = CodeCorps.StripeTesting.Plan.create(%{}, [])
Expand All @@ -25,7 +25,7 @@ defmodule CodeCorps.StripeTesting.Subscription do
livemode: false,
metadata: %{},
plan: plan,
quantity: 1000,
quantity: quantity,
source: nil,
start: date,
status: "active",
Expand Down
2 changes: 0 additions & 2 deletions test/lib/code_corps/services/donation_goals_test.exs
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
defmodule CodeCorps.Services.DonationGoalsServiceTest do
use ExUnit.Case, async: true

use CodeCorps.ModelCase

import CodeCorps.Project, only: [update_total_changeset: 2]
Expand Down
1 change: 0 additions & 1 deletion test/lib/code_corps/services/project_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
defmodule CodeCorps.Services.ProjectServiceTest do
use ExUnit.Case, async: true
use CodeCorps.ModelCase

alias CodeCorps.Project
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
defmodule CodeCorps.StripeService.StripeConnectSubscriptionServiceTest do
use CodeCorps.ModelCase

alias CodeCorps.StripeService.StripeConnectSubscriptionService

setup do
organization = insert(:organization)
insert(:stripe_connect_account, organization: organization)

stripe_connect_plan = insert(:stripe_connect_plan)
project = insert(:project, stripe_connect_plan: stripe_connect_plan, organization: organization)

user = insert(:user)
insert(:stripe_platform_customer, user: user)
insert(:stripe_platform_card, user: user)

{:ok, project: project, user: user}
end

describe "find_or_create/1" do
test "retrieves and returns a subscription if one is already present", %{project: project, user: user} do
insert(:stripe_connect_subscription, user: user, stripe_connect_plan: project.stripe_connect_plan, quantity: 300)

{:ok, subscription} =
StripeConnectSubscriptionService.find_or_create(%{"project_id" => project.id, "user_id" => user.id, "quantity" => 200})

assert subscription.quantity == 300
end

test "creates and returns a subscription if none is present", %{project: project, user: user} do
{:ok, subscription} =
StripeConnectSubscriptionService.find_or_create(%{"project_id" => project.id, "user_id" => user.id, "quantity" => 200})

assert subscription.quantity == 200
end
end
end

0 comments on commit 6e4b598

Please sign in to comment.