Condition Coverage

blib/lib/Net/Async/Zitadel/OIDC.pm
Criterion Covered Total %
condition 34 52 65.3


and 3 conditions

line !l l&&!r l&&r condition
76 15 2 7 $self->_discovery_cache and time < $self->_discovery_expires
102 3 8 2 not $force and $self->_jwks_cache
11 0 2 not $force and $self->_jwks_cache and time < $self->_jwks_expires
108 3 8 0 not $force and $self->_jwks_inflight
168 0 1 2 $@ and not $args{'no_retry'}
238 1 0 1 $args{'client_id'} and $args{'client_secret'}
331 0 1 1 defined $refresh_token and length $refresh_token

or 2 conditions

line l !l condition
100 3 10 $args{'force_refresh'} // 0
115 10 1 $doc->{'jwks_uri'} // (return "Future"->fail("Net::Async::Zitadel::Error::Validation"->new("message", "No jwks_uri in discovery document")))
165 0 3 $args{'verify_exp'} // 1
0 3 $args{'verify_iat'} // 0
0 3 $args{'verify_nbf'} // 0
0 3 $args{'accepted_key_alg'} // ["RS256", "RS384", "RS512"]
180 0 2 $args{'verify_exp'} // 1
0 2 $args{'verify_iat'} // 0
0 2 $args{'verify_nbf'} // 0
0 2 $args{'accepted_key_alg'} // ["RS256", "RS384", "RS512"]
210 1 0 $doc->{'userinfo_endpoint'} // (return "Future"->fail("Net::Async::Zitadel::Error::Validation"->new("message", "No userinfo_endpoint in discovery document")))
243 1 0 $doc->{'introspection_endpoint'} // (return "Future"->fail("Net::Async::Zitadel::Error::Validation"->new("message", "No introspection_endpoint in discovery document")))
252 0 1 $args{'token_type_hint'} // "access_token"
284 3 0 $doc->{'token_endpoint'} // (return "Future"->fail("Net::Async::Zitadel::Error::Validation"->new("message", "No token_endpoint in discovery document")))

or 3 conditions

line l !l&&r !l&&!r condition
139 3 8 0 $force or $f->is_ready