Running 'testthat.R' [201s]
Running the tests in 'tests/testthat.R' failed.
Complete output:
  > # This file is part of the standard devtools workflow.
  > # See `?devtools::test()` for more information.
  > 
  > library(testthat)
  > library(shiny)
  > library(shinyOAuth)
  > helper_otel <- file.path("testthat", "helper-otel.R")
  > if (file.exists(helper_otel)) {
  +   source(helper_otel, local = TRUE)
  + }
  > 
  > test_check("shinyOAuth")
  [ FAIL 1 | WARN 0 | SKIP 127 | PASS 3980 ]
  
  ══ Skipped tests (127) ═════════════════════════════════════════════════════════
  • Ed25519 key generation not supported on this platform (2):
    'test-jwt-at-hash.R:455:3', 'test-userinfo-jwt.R:166:5'
  • On CRAN (125): 'test-async-serialization.R:105:3',
    'test-async-serialization.R:176:3', 'test-audit-async-options.R:2:3',
    'test-audit-async-options.R:476:3', 'test-audit-async-options.R:535:3',
    'test-audit-async-options.R:596:3', 'test-audit-async-options.R:662:3',
    'test-audit-async-options.R:774:3', 'test-audit-async-options.R:834:3',
    'test-audit-async-options.R:909:3', 'test-audit-async-options.R:973:3',
    'test-audit-async-options.R:1053:3',
    'test-audit-async-session-context.R:2:3',
    'test-constant-time-compare.R:65:3', 'test-discovery-auth-methods.R:3:3',
    'test-discovery-auth-methods.R:34:3', 'test-discovery-auth-methods.R:61:3',
    'test-discovery-auth-methods.R:102:3', 'test-discovery-auth-methods.R:147:3',
    'test-discovery-auth-methods.R:187:3', 'test-discovery-auth-methods.R:227:3',
    'test-discovery-auth-methods.R:255:3', 'test-discovery-auth-methods.R:285:3',
    'test-discovery-auth-methods.R:312:3', 'test-discovery-auth-methods.R:377:3',
    'test-discovery-auth-methods.R:422:3', 'test-discovery-auth-methods.R:457:3',
    'test-discovery-auth-methods.R:494:3', 'test-discovery-auth-methods.R:529:3',
    'test-discovery-auth-methods.R:565:3', 'test-discovery-auth-methods.R:596:3',
    'test-discovery-auth-methods.R:622:3', 'test-discovery-auth-methods.R:670:3',
    'test-discovery-auth-methods.R:699:3', 'test-discovery-auth-methods.R:748:3',
    'test-discovery-hardened.R:3:3', 'test-discovery-hardened.R:79:3',
    'test-discovery-hardened.R:185:3', 'test-discovery-hardened.R:275:3',
    'test-discovery-hardened.R:420:3', 'test-discovery-hardened.R:436:3',
    'test-discovery-hardened.R:462:3', 'test-discovery-hardened.R:490:3',
    'test-discovery-hardened.R:519:3', 'test-discovery-hardened.R:552:3',
    'test-discovery-hardened.R:583:3', 'test-discovery-hardened.R:612:3',
    'test-discovery-hardened.R:639:3', 'test-discovery-hardened.R:665:3',
    'test-introspect-token.R:204:3', 'test-jwks-cache-host-policy.R:198:3',
    'test-jwks-cache-host-policy.R:239:3', 'test-jwks-cache-host-policy.R:277:3',
    'test-jwks-cache-host-policy.R:323:3',
    'test-jwks-malformed-and-pinning.R:3:3',
    'test-jwks-malformed-and-pinning.R:40:3',
    'test-jwks-malformed-and-pinning.R:76:3',
    'test-jwks-malformed-and-pinning.R:171:3', 'test-mirai-utils.R:10:3',
    'test-mirai-utils.R:20:3', 'test-mirai-utils.R:29:3',
    'test-mirai-utils.R:44:3', 'test-mirai-utils.R:56:3',
    'test-mirai-utils.R:69:3', 'test-mirai-utils.R:174:3',
    'test-mirai-utils.R:191:3', 'test-mirai-utils.R:207:3',
    'test-mirai-utils.R:228:3', 'test-mirai-utils.R:246:3',
    'test-mirai-utils.R:256:3', 'test-mirai-utils.R:281:3',
    'test-mirai-utils.R:297:3', 'test-module-server-async.R:2:3',
    'test-module-server-async.R:69:3', 'test-module-server-async.R:178:3',
    'test-module-server-async.R:245:3', 'test-module-server-async.R:322:3',
    'test-module-server-async.R:347:3', 'test-module-server-async.R:381:3',
    'test-module-server.R:599:3', 'test-module-server.R:649:3',
    'test-no-retry-token-exchange-refresh.R:186:3',
    'test-no-retry-token-exchange-refresh.R:235:3', 'test-otel-e2e-async.R:37:5',
    'test-otel-e2e-async.R:37:5', 'test-otel-e2e-async.R:37:5',
    'test-otel-e2e-async.R:37:5', 'test-otel-e2e-async.R:37:5',
    'test-otel-e2e-async.R:37:5', 'test-otel-e2e-async.R:37:5',
    'test-otel-e2e-async.R:37:5', 'test-otel-e2e-async.R:37:5',
    'test-otel-e2e-async.R:37:5', 'test-redirect-following-disabled.R:50:3',
    'test-redirect-following-disabled.R:126:3',
    'test-redirect-following-disabled.R:195:3',
    'test-redirect-following-disabled.R:249:3',
    'test-redirect-following-disabled.R:312:3',
    'test-redirect-following-disabled.R:377:3',
    'test-redirect-following-disabled.R:414:3',
    'test-redirect-following-disabled.R:479:3', 'test-refresh-races.R:2:3',
    'test-refresh-races.R:109:3', 'test-revoke-on-session-end.R:85:3',
    'test-revoke-token.R:78:3', 'test-state-fail-delay.R:3:3',
    'test-state-store-concurrent-replay.R:54:3',
    'test-state-store-concurrent-replay.R:117:3',
    'test-state-store-concurrent-replay.R:172:3',
    'test-state-store-concurrent-replay.R:206:3',
    'test-state-store-concurrent-replay.R:243:3',
    'test-state-store-concurrent-replay.R:309:3',
    'test-state-store-concurrent-replay.R:356:3',
    'test-state-store-concurrent-replay.R:404:3',
    'test-utils-http-helpers.R:288:3', 'test-utils-http-helpers.R:330:3',
    'test-utils-http-helpers.R:367:3', 'test-utils-http-helpers.R:411:3',
    'test_chromote_cookie.R:207:3', 'test_chromote_cookie.R:257:3',
    'test_chromote_cookie.R:277:3', 'test_chromote_cookie.R:297:3',
    'test_chromote_cookie.R:330:3', 'test_state_store_single_use.R:2:3',
    'test_state_store_single_use.R:38:3'
  
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Error ('test-jwt-auth-time.R:173:5'): validate_id_token accepts auth_time at exact boundary (max_age + leeway) ──
  <shinyOAuth_id_token_error/shinyOAuth_error/rlang_error/error/condition>
  Error in `err_abort(msg, class = "shinyOAuth_id_token_error", context = context)`: [shinyOAuth] - ID token error
  x Authentication too old (auth_time exceeded max_age)
  i auth_time=1781545175, now=1781545481, elapsed=306s, max_age=300s, leeway=5s
  i Trace ID: ydGIi7GaWpqo
  Backtrace:
       ▆
    1. ├─withr::with_options(...) at test-jwt-auth-time.R:172:3
    2. │ └─base::force(code)
    3. ├─testthat::expect_silent(...) at test-jwt-auth-time.R:173:5
    4. │ └─testthat:::quasi_capture(enquo(object), NULL, evaluate_promise)
    5. │   ├─testthat (local) .capture(...)
    6. │   │ ├─withr::with_output_sink(...)
    7. │   │ │ └─base::force(code)
    8. │   │ ├─base::withCallingHandlers(...)
    9. │   │ └─base::withVisible(code)
   10. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
   11. └─shinyOAuth:::validate_id_token(client, jwt, max_age = 300)
   12.   └─shinyOAuth:::err_id_token(...)
   13.     └─shinyOAuth:::err_abort(msg, class = "shinyOAuth_id_token_error", context = context)
   14.       └─rlang::abort(...)
  
  [ FAIL 1 | WARN 0 | SKIP 127 | PASS 3980 ]
  Error:
  ! Test failures.
  Execution halted