Describe the feature request?
I have a wrapper class that encapsulates Okta SDK functionality & facilitates okta login/auth for the rest of my app.
I'd like to write tests for that wrapper class, replacing the key parts of the Okta SDK with stubs/fakes, but the SDK types' visibility makes that difficult. How can I stub out WebAuthentication().login(...)?
I'm able to provide my own WebAuthentication instance in my tests, which is good. WebAuthentication.authorizationCodeFlow is a public var (also good!). If AuthorizationCodeFlow was an interface I could implement myself (or if AuthFoundationDefaults exposes an AuthorizationCodeFlow factory lambda I could override), I think I could stub authorizationCodeFlow.resume(uri, flowContext) and be able to write the tests I want.
Alternatively, if WebAuthentication itself was an interface I could implement, I could stub the entire login call; I think that would suffice as well.
New or Affected Resource(s)
Affected resources.... web authentication? Not sure how to answer this.
Provide a documentation link
N/A
Additional Information?
If there's an additional path forward you can come up with that I've missed, please let me know!
Describe the feature request?
I have a wrapper class that encapsulates Okta SDK functionality & facilitates okta login/auth for the rest of my app.
I'd like to write tests for that wrapper class, replacing the key parts of the Okta SDK with stubs/fakes, but the SDK types' visibility makes that difficult. How can I stub out
WebAuthentication().login(...)?I'm able to provide my own
WebAuthenticationinstance in my tests, which is good.WebAuthentication.authorizationCodeFlowis a publicvar(also good!). IfAuthorizationCodeFlowwas an interface I could implement myself (or ifAuthFoundationDefaultsexposes anAuthorizationCodeFlowfactory lambda I could override), I think I could stubauthorizationCodeFlow.resume(uri, flowContext)and be able to write the tests I want.Alternatively, if
WebAuthenticationitself was an interface I could implement, I could stub the entirelogincall; I think that would suffice as well.New or Affected Resource(s)
Affected resources.... web authentication? Not sure how to answer this.
Provide a documentation link
N/A
Additional Information?
If there's an additional path forward you can come up with that I've missed, please let me know!