Skip to content

How can I stub out parts of the web authentication flow for unit testing purposes? #318

Description

@erawhctim

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions