Skip to content
This repository has been archived by the owner on May 10, 2024. It is now read-only.

Commit

Permalink
Adding tests for test subcription period retry case for grace dates
Browse files Browse the repository at this point in the history
  • Loading branch information
soner-yuksel committed Sep 21, 2023
1 parent b11f0ea commit c8ea40f
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions Tests/BraveVPNTests/BraveVPNTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import Foundation
import BraveShared
import XCTest
import GuardianConnect
import Preferences

class BraveVPNTests: XCTestCase {

Expand Down Expand Up @@ -71,11 +72,24 @@ class BraveVPNTests: XCTestCase {
"auto_renew_status": "0",
"is_in_billing_retry_period": "true"]

let gracePeriod = 16 // days
let modifiedDateWithGracePeriod = Calendar.current.date(byAdding: .day, value: gracePeriod, to: Date())!
let gracePeriodExpiryInMs = Int(modifiedDateWithGracePeriod.timeIntervalSince1970 * 1000)

let lineItemMetaDataIsInRetryPeriodWithGraceExpiry: NSDictionary = [
"product_id": "bravevpn.yearly",
"original_transaction_id": "2000000159090000",
"auto_renew_product_id": "bravevpn.yearly",
"auto_renew_status": "0",
"grace_period_expires_date_ms": String(gracePeriodExpiryInMs),
"is_in_billing_retry_period": "true"]


subjectActivePeriodRenewableNotInTrial = generateReceiptResponse(using: lineItemPurchasedNotInTrial, metaData: lineItemMetaDataAutoRenewEnabled)
subjectActivePeriodRenewableInTrial = generateReceiptResponse(using: lineItemPurchasedInTrial, metaData: lineItemMetaDataAutoRenewEnabled)
subjectActivePeriodNotRenewable = generateReceiptResponse(using: lineItemPurchasedNotInTrial, metaData: lineItemMetaDataAutoRenewCanceled)
subjectRetryPeriod = generateReceiptResponse(using: lineItemPurchasedNotInTrial, metaData: lineItemMetaDataIsInRetryPeriod)
subjectRetryPeriodNoMetaGraceExpiry = generateReceiptResponse(using: nil, metaData: lineItemMetaDataIsInRetryPeriodWithGraceExpiry)
subjectExpiredPeriod = generateReceiptResponse(using: nil, metaData: lineItemMetaDataAutoRenewCanceled)
}

Expand All @@ -87,6 +101,9 @@ class BraveVPNTests: XCTestCase {
subjectExpiredPeriod = nil

super.tearDown()

Preferences.VPN.expirationDate.reset()
Preferences.VPN.gracePeriodExpirationDate.reset()
}

func testSubscriptionActiveAutoRenewEnabledNotInTrial() {
Expand Down Expand Up @@ -120,6 +137,14 @@ class BraveVPNTests: XCTestCase {
XCTAssertFalse(processedLineItem.isInTrialPeriod)
}

func testSubscriptionIsInNoMetaGraceExpiry() {
let processedLineItem = BraveVPN.processReceiptResponse(receiptResponseItem: subjectRetryPeriodNoMetaGraceExpiry)

XCTAssertTrue(processedLineItem.status == .retryPeriod)
XCTAssertFalse(processedLineItem.autoRenewEnabled)
XCTAssertFalse(processedLineItem.isInTrialPeriod)
}

func testSubscriptionExpiredPeriod() {
let processedLineItem = BraveVPN.processReceiptResponse(receiptResponseItem: subjectExpiredPeriod)

Expand Down Expand Up @@ -153,5 +178,6 @@ class BraveVPNTests: XCTestCase {
private var subjectActivePeriodRenewableInTrial: GRDIAPReceiptResponse!
private var subjectActivePeriodNotRenewable: GRDIAPReceiptResponse!
private var subjectRetryPeriod: GRDIAPReceiptResponse!
private var subjectRetryPeriodNoMetaGraceExpiry: GRDIAPReceiptResponse!
private var subjectExpiredPeriod: GRDIAPReceiptResponse!
}

0 comments on commit c8ea40f

Please sign in to comment.