Skip to content

Commit

Permalink
Pass Session ID to Link popup (stripe#3256)
Browse files Browse the repository at this point in the history
## Summary
Pass the analytics session ID to the Link popup

## Testing
Updated URL generator test
  • Loading branch information
davidme-stripe authored Feb 12, 2024
1 parent 1ac6a10 commit e83423a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ struct LinkURLParams: Encodable {
var paymentInfo: PaymentInfo?
var experiments: [String: Bool]
var flags: [String: Bool]
var loggerMetadata: [String: Bool]
var loggerMetadata: [String: String]
var locale: String
}

Expand Down Expand Up @@ -68,6 +68,11 @@ class LinkURLGenerator {
return nil
}()

var loggerMetadata: [String: String] = [:]
if let sessionID = AnalyticsHelper.shared.sessionID {
loggerMetadata = ["mobile_session_id": sessionID]
}

let paymentObjectType: LinkURLParams.PaymentObjectMode = intent.linkPassthroughModeEnabled ? .card_payment_method : .link_payment_method

return LinkURLParams(paymentObject: paymentObjectType,
Expand All @@ -78,7 +83,7 @@ class LinkURLGenerator {
paymentInfo: paymentInfo,
experiments: [:],
flags: intent.linkFlags,
loggerMetadata: [:],
loggerMetadata: loggerMetadata,
locale: Locale.current.toLanguageTag())
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ class LinkURLGeneratorTests: XCTestCase {
experiments: [:],
flags: [:],
loggerMetadata: [:],
locale: Locale.init(identifier: "en_US").toLanguageTag())
locale: Locale.init(identifier: "en_US").toLanguageTag()
)

func testURLCreation() {
let url = try! LinkURLGenerator.url(params: testParams)
Expand Down Expand Up @@ -56,6 +57,11 @@ class LinkURLGeneratorTests: XCTestCase {
}
config.apiClient.publishableKey = "pk_123"
let intent = Intent.deferredIntent(elementsSession: STPElementsSession.emptyElementsSession, intentConfig: intentConfig)

// Create a session ID
AnalyticsHelper.shared.generateSessionID()
let sessionID = AnalyticsHelper.shared.sessionID!

let params = try! LinkURLGenerator.linkParams(configuration: config, intent: intent)

let expectedParams = LinkURLParams(paymentObject: .link_payment_method,
Expand All @@ -66,7 +72,7 @@ class LinkURLGeneratorTests: XCTestCase {
paymentInfo: LinkURLParams.PaymentInfo(currency: "USD", amount: 100),
experiments: [:],
flags: [:],
loggerMetadata: [:],
loggerMetadata: ["mobile_session_id": sessionID],
locale: Locale.init(identifier: "en_US").toLanguageTag())

XCTAssertEqual(params, expectedParams)
Expand Down

0 comments on commit e83423a

Please sign in to comment.