tests/testthat/test-prices.R

test_that("paddle_list_prices() returns a list with filters", {
  skip_on_cran()
  set_paddle_mode("sandbox")

  res <- paddle_list_prices(
    status = c("active"),
    per_page = 5,
    include = "product",
    order_by = "id[ASC]",
    recurring = TRUE,
    type = "standard"
  )

  expect_type(res, "list")
  expect_true("data" %in% names(res))
})

test_that("paddle_list_prices() returns errors with wrong inputs", {
  skip_on_cran()
  set_paddle_mode("sandbox")

  expect_error(
    paddle_list_prices(
      order_by = "worng input"
  ))

  expect_error(
    paddle_list_prices(
    type = "worng input"
  ))

  expect_error(
    paddle_list_prices(
    status = "worng input"
  ))

})

test_that("paddle_create_price() errors with invalid tax_mode", {
  skip_on_cran()
  expect_error(
    paddle_create_price(
      description = "Test Invalid Tax Mode",
      product_id = "pro_01jvpnemqfw4fh3nypjhxzpxwh",  # Replace with valid ID for live test
      unit_price = list(amount = "1000", currency_code = "USD"),
      tax_mode = "illegal_value"
    ),
    "`tax_mode` must be one of"
  )
})


# test_that("paddle_create_price() works with valid inputs", {
#   skip_on_cran()
#   expect_type(
#     paddle_create_price(
#       description = "paddleR unit test",
#       name = "paddleR unit test price",
#       product_id = "pro_01jvpnemqfw4fh3nypjhxzpxwh",  # Replace with valid ID for live test
#       unit_price = list(amount = "1000", currency_code = "USD"),
#       billing_cycle = list(frequency = 12, interval = "month"),
#       trial_period = list(frequency = 14, interval = "day"),
#       quantity = list(minimum = 1, maximum = 5),
#       tax_mode = "account_setting",
#       type = "standard",
#       custom_data = list(modified_by = "unit_test")
#     ),
#     "list"
#   )
# })

test_that("paddle_update_price() errors with invalid tax_mode", {
  skip_on_cran()
  expect_error(
    paddle_update_price(
      id = "pro_01jvpnemqfw4fh3nypjhxzpxwh",  # Replace with valid ID if testing live
      tax_mode = "bad_value"
    ),
    "`tax_mode` must be one of"
  )
})

test_that("paddle_update_price() errors with invalid type", {
  skip_on_cran()
  expect_error(
    paddle_update_price(
      id = "pro_01jvpnemqfw4fh3nypjhxzpxwh",  # Replace with valid ID if testing live
      type = "bad_value"
    )
  )
})

test_that("paddle_update_price() errors with invalid status", {
  skip_on_cran()
  expect_error(
    paddle_update_price(
      id = "pro_01jvpnemqfw4fh3nypjhxzpxwh",  # Replace with valid ID if testing live
      status = "bad_value")
  )
})

test_that("paddle_update_price() works with all optional fields", {
  skip_on_cran()
  expect_type(paddle_update_price(
    id = "pri_01jvpq30eqev9nmyt50rpe1zvz",  # Replace with valid sandbox ID to test
    description = "Updated price description",
    name = "Test Annual Plan",
    type = "standard",
    billing_cycle = list(frequency = 12, interval = "month"),
    trial_period = list(frequency = 14, interval = "day"),
    tax_mode = "account_setting",
    unit_price = list(amount = "11500", currency_code = "USD"),
    quantity = list(minimum = 1, maximum = 5),
    status = "active",
    custom_data = list(modified_by = "unit_test")
  ), "list")
})

Try the paddleR package in your browser

Any scripts or data that you put into this service are public.

paddleR documentation built on June 24, 2025, 9:07 a.m.