UNPKG

supertokens-node

Version:
25,396 lines 1.3 MB
{
  "stats": {
    "suites": 306,
    "tests": 1585,
    "passes": 1576,
    "pending": 8,
    "failures": 1,
    "start": "2026-03-22T14:10:08.618Z",
    "end": "2026-03-22T15:30:07.636Z",
    "duration": 4799018
  },
  "tests": [
    {
      "title": "should default to header based session w/ no auth-mode header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with default getTokenTransferMethod should default to header based session w/ no auth-mode header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 575,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should default to header based session w/ bad auth-mode header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with default getTokenTransferMethod should default to header based session w/ bad auth-mode header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 507,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use headers if auth-mode specifies it",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with default getTokenTransferMethod should use headers if auth-mode specifies it",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 395,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use cookies if auth-mode specifies it",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with default getTokenTransferMethod should use cookies if auth-mode specifies it",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 291,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use headers if getTokenTransferMethod returns any and there is no st-auth-mode header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use headers if getTokenTransferMethod returns any and there is no st-auth-mode header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 332,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use cookies if getTokenTransferMethod returns any and st-auth-mode is set to cookie",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use cookies if getTokenTransferMethod returns any and st-auth-mode is set to cookie",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 326,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use headers if getTokenTransferMethod returns any and st-auth-mode is set to header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use headers if getTokenTransferMethod returns any and st-auth-mode is set to header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 283,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use headers if getTokenTransferMethod returns header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use headers if getTokenTransferMethod returns header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 368,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use clear cookies (if present) if getTokenTransferMethod returns header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use clear cookies (if present) if getTokenTransferMethod returns header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 429,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use cookies if getTokenTransferMethod returns cookie",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use cookies if getTokenTransferMethod returns cookie",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 659,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear headers (if present) if getTokenTransferMethod returns cookie",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should clear headers (if present) if getTokenTransferMethod returns cookie",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 491,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject requests with sIdRefreshToken",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession should reject requests with sIdRefreshToken",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 217,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 1 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 1 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 1 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 1 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3261,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 2 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 2 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 479,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 2 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 2 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3283,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 3 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 3 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 381,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 3 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 3 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3207,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 4 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 4 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 402,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 4 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 4 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3347,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 5 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 5 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 735,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 5 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 5 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3317,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 6 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 6 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 294,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 6 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 6 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3357,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 7 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 7 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 7 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 7 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3362,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 8 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 8 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 292,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 8 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 8 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3298,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 9 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 9 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 216,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 9 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 9 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3218,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 10 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 10 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 259,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 10 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 10 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3269,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 11 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 11 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 337,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 11 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 11 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3249,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 12 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 12 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 254,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 12 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 12 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3308,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 13 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 13 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 371,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 13 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 13 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3359,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 14 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 14 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 14 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 14 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3227,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 15 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 15 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 296,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 15 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 15 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3323,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 16 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 16 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 344,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 16 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 16 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3458,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 17 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 17 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 257,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 17 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 17 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3488,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 18 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 18 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 420,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 18 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 18 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3441,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 19 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 19 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 327,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 19 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 19 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3411,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 20 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 20 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 354,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 20 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 20 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3439,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 21 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 21 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 348,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 21 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 21 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3475,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 22 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 22 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 407,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 22 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 22 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3215,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 23 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 23 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 253,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 23 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 23 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3307,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 24 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 24 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 303,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 24 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 24 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3469,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use the value from headers if getTokenTransferMethod returns any",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with access tokens in both headers and cookies should use the value from headers if getTokenTransferMethod returns any",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 407,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use the value from headers if getTokenTransferMethod returns header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with access tokens in both headers and cookies should use the value from headers if getTokenTransferMethod returns header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 321,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use the value from cookies if getTokenTransferMethod returns cookie",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with access tokens in both headers and cookies should use the value from cookies if getTokenTransferMethod returns cookie",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 344,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use the value from cookies if present and getTokenTransferMethod returns any",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with non ST in Authorize header should use the value from cookies if present and getTokenTransferMethod returns any",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 444,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with UNAUTHORISED if getTokenTransferMethod returns header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with non ST in Authorize header should reject with UNAUTHORISED if getTokenTransferMethod returns header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 331,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with UNAUTHORISED if cookies are not present",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with non ST in Authorize header should reject with UNAUTHORISED if cookies are not present",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 207,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update cookies if the session was cookie based",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod mergeIntoAccessTokenPayload should update cookies if the session was cookie based",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 662,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow headers if the session was header based",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod mergeIntoAccessTokenPayload should allow headers if the session was header based",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 292,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 1 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 1 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 299,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 2 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 2 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 506,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 3 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 3 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 292,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 4 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 4 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 412,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 5 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 5 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 315,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 6 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 6 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 420,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 7 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 7 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 295,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 8 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 8 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 298,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 9 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 9 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 332,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 10 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 10 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 433,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 11 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 11 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 353,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 12 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 12 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 338,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 1 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 1 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 455,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 2 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 2 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 548,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 3 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 3 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 317,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 4 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 4 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 386,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 5 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 5 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 403,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 6 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 6 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 354,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 7 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 7 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 222,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 8 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 8 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 394,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 9 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 9 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 289,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 10 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 10 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 179,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 11 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 11 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 316,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 12 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 12 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 263,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test values for optional inputs for appInfo",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m test values for optional inputs for appInfo",
      "file": "/workspace/test/config.test.js",
      "duration": 301,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing .local tld",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing .local tld",
      "file": "/workspace/test/config.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test values for compulsory inputs for appInfo",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m test values for compulsory inputs for appInfo",
      "file": "/workspace/test/config.test.js",
      "duration": 255,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test using zero, one and two recipe modules",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m test using zero, one and two recipe modules",
      "file": "/workspace/test/config.test.js",
      "duration": 264,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test config for session module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m test config for session module",
      "file": "/workspace/test/config.test.js",
      "duration": 521,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "various sameSite values",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m various sameSite values",
      "file": "/workspace/test/config.test.js",
      "duration": 364,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sameSite none invalid domain values",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m sameSite none invalid domain values",
      "file": "/workspace/test/config.test.js",
      "duration": 428,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sameSite none valid domain values",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m sameSite none valid domain values",
      "file": "/workspace/test/config.test.js",
      "duration": 2,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing sessionScope normalisation",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing sessionScope normalisation",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing URL domain normalisation",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL domain normalisation",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "various config values",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m various config values",
      "file": "/workspace/test/config.test.js",
      "duration": 366,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing that the debug mode is set",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing that the debug mode is set",
      "file": "/workspace/test/config.test.js",
      "duration": 246,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing that the debug mode is set via env var",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing that the debug mode is set via env var",
      "file": "/workspace/test/config.test.js",
      "duration": 337,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "checking for default cookie config",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m checking for default cookie config",
      "file": "/workspace/test/config.test.js",
      "duration": 242,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the JWKS and OpenId endpoints are exposed by default",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that the JWKS and OpenId endpoints are exposed by default",
      "file": "/workspace/test/config.test.js",
      "duration": 321,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing getTopLevelDomainForSameSiteResolution function",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing getTopLevelDomainForSameSiteResolution function",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work well with ec2 public urls",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m should work well with ec2 public urls",
      "file": "/workspace/test/config.test.js",
      "duration": 525,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "apiGatewayPath test",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m apiGatewayPath test",
      "file": "/workspace/test/config.test.js",
      "duration": 314,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "checking for empty item in recipeList config",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m checking for empty item in recipeList config",
      "file": "/workspace/test/config.test.js",
      "duration": 337,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Check that telemetry is set to true properly",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Check that telemetry is set to true properly",
      "file": "/workspace/test/config.test.js",
      "duration": 211,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Check that telemetry is set to false by default",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Check that telemetry is set to false by default",
      "file": "/workspace/test/config.test.js",
      "duration": 296,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Check that telemetry is set to false properly",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Check that telemetry is set to false properly",
      "file": "/workspace/test/config.test.js",
      "duration": 333,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that init throws if both website domain and origin is undefined",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that init throws if both website domain and origin is undefined",
      "file": "/workspace/test/config.test.js",
      "duration": 635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that init works fine when using origin",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that init works fine when using origin",
      "file": "/workspace/test/config.test.js",
      "duration": 306,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that init works fine when using a function for origin",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that init works fine when using a function for origin",
      "file": "/workspace/test/config.test.js",
      "duration": 301,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that origin function returns correctly",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that origin function returns correctly",
      "file": "/workspace/test/config.test.js",
      "duration": 273,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that if both website domain and origin are provided, origin is used",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that if both website domain and origin are provided, origin is used",
      "file": "/workspace/test/config.test.js",
      "duration": 440,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'exists?email=john.doe%40gmail.com' -> '/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'exists?email=john.doe%40gmail.com' -> '/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/auth/email/exists?email=john.doe%40gmail.com' -> '/auth/email/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/auth/email/exists?email=john.doe%40gmail.com' -> '/auth/email/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'exists' -> '/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'exists' -> '/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'eXiStS' -> '/eXiStS'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'eXiStS' -> '/eXiStS'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/exists' -> '/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/exists' -> '/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/eXiStS' -> '/eXiStS'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/eXiStS' -> '/eXiStS'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/exists?email=john.doe%40gmail.com' -> '/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/exists?email=john.doe%40gmail.com' -> '/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'https://api.example.com' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'https://api.example.com' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com?hello=1' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com?hello=1' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/hello' -> '/hello'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/hello' -> '/hello'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/HellO' -> '/HellO'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/HellO' -> '/HellO'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com:8080' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com:8080' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com#random2' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com#random2' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com#random' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com#random' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'.example.com' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '.example.com' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/?hello=1&bye=2' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/?hello=1&bye=2' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://1.2.3.4/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://1.2.3.4/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'1.2.3.4/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '1.2.3.4/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'https://api.example.com/one/two/' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'https://api.example.com/one/two/' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/one/two?hello=1' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/one/two?hello=1' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/hello/' -> '/hello'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/hello/' -> '/hello'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/one/two/' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/one/two/' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com:8080/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com:8080/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/one/two#random2' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/one/two#random2' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/one/two/#random' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/one/two/#random' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'.example.com/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '.example.com/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/one/two?hello=1&bye=2' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/one/two?hello=1&bye=2' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/two/' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/two/' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one' -> '/one'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one' -> '/one'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one' -> '/one'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one' -> '/one'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/' -> '/one'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/' -> '/one'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one/two/' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one/two/' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one/two?hello=1' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one/two?hello=1' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/two?hello=1' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/two?hello=1' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one/two/#random' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one/two/#random' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/two#random' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/two#random' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'localhost:4000/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'localhost:4000/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'127.0.0.1:4000/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '127.0.0.1:4000/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'127.0.0.1/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '127.0.0.1/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'https://127.0.0.1:80/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'https://127.0.0.1:80/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/.netlify/functions/api' -> '/.netlify/functions/api'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/.netlify/functions/api' -> '/.netlify/functions/api'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/netlify/.functions/api' -> '/netlify/.functions/api'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/netlify/.functions/api' -> '/netlify/.functions/api'",
      "file": "/workspace/test/config.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'app.example.com/.netlify/functions/api' -> '/.netlify/functions/api'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'app.example.com/.netlify/functions/api' -> '/.netlify/functions/api'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'app.example.com/netlify/.functions/api' -> '/netlify/.functions/api'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'app.example.com/netlify/.functions/api' -> '/netlify/.functions/api'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/app.example.com' -> '/app.example.com'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/app.example.com' -> '/app.example.com'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should sign-up successfully",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should sign-up successfully",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 79,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should sign-in successfully",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should sign-in successfully",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 63,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withSession should create a session properly",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m withSession should create a session properly",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 65,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withSession should pass error when session fails",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m withSession should pass error when session fails",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 52,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return 404 for unhandled routes",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should return 404 for unhandled routes",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "getSessionForSSR should return session for valid token",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m getSessionForSSR should return session for valid token",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 55,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined accessTokenPayload and hasToken as false when no token is present",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should return undefined accessTokenPayload and hasToken as false when no token is present",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return an error for an invalid token",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should return an error for an invalid token",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that normalised config is generated correctly",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m Test that normalised config is generated correctly",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 1561,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get user info with first&last names",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should get user info with first&last names",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 1039,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reset password of linked user",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should reset password of linked user",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 1131,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should link accounts after verification",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should link accounts after verification",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 721,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should delete all linked users if removeAllLinkedAccounts is true",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should delete all linked users if removeAllLinkedAccounts is true",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 897,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not delete all linked users if removeAllLinkedAccounts is false when deleting the primary user",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should not delete all linked users if removeAllLinkedAccounts is false when deleting the primary user",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 823,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not delete all linked users if removeAllLinkedAccounts is false when deleting the recipe user",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should not delete all linked users if removeAllLinkedAccounts is false when deleting the recipe user",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 832,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should respond with error if userId is missing",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m deleteUser should respond with error if userId is missing",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 848,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should respond with error if userId is empty",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m deleteUser should respond with error if userId is empty",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 702,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should respond with error if another user exists with the same email",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m userPut should respond with error if another user exists with the same email",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 844,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should serialize with the proper message",
      "fullTitle": "SuperTokensError should serialize with the proper message",
      "file": "/workspace/test/error.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test humanise milliseconds",
      "fullTitle": "Humanise: \u001b[33;3;2m[test/humanise.test.js]\u001b[0m test humanise milliseconds",
      "file": "/workspace/test/humanise.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that importing all build files independently does not cause errors",
      "fullTitle": "importTests: \u001b[33;3;2m[test/import.test.js]\u001b[0m Test that importing all build files independently does not cause errors",
      "file": "/workspace/test/import.test.js",
      "duration": 21840,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "network interceptor sanity",
      "fullTitle": "interceptor: \u001b[33;3;2m[test/interceptor.test.js]\u001b[0m network interceptor sanity",
      "file": "/workspace/test/interceptor.test.js",
      "duration": 371,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "network interceptor - incorrect core url",
      "fullTitle": "interceptor: \u001b[33;3;2m[test/interceptor.test.js]\u001b[0m network interceptor - incorrect core url",
      "file": "/workspace/test/interceptor.test.js",
      "duration": 283,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "network interceptor - incorrect query params",
      "fullTitle": "interceptor: \u001b[33;3;2m[test/interceptor.test.js]\u001b[0m network interceptor - incorrect query params",
      "file": "/workspace/test/interceptor.test.js",
      "duration": 321,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "network interceptor - incorrect request body",
      "fullTitle": "interceptor: \u001b[33;3;2m[test/interceptor.test.js]\u001b[0m network interceptor - incorrect request body",
      "file": "/workspace/test/interceptor.test.js",
      "duration": 311,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test disabling default API actually disables it",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test disabling default API actually disables it",
      "file": "/workspace/test/middleware.test.js",
      "duration": 485,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware",
      "file": "/workspace/test/middleware.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with auto refresh",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with auto refresh",
      "file": "/workspace/test/middleware.test.js",
      "duration": 2385,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with driver config",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with driver config",
      "file": "/workspace/test/middleware.test.js",
      "duration": 2420,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with driver config with auto refresh",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with driver config with auto refresh",
      "file": "/workspace/test/middleware.test.js",
      "duration": 2335,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with expired access token and session required false",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with expired access token and session required false",
      "file": "/workspace/test/middleware.test.js",
      "duration": 5353,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with old access token and session required false",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with old access token and session required false",
      "file": "/workspace/test/middleware.test.js",
      "duration": 404,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with no session and session required false",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with no session and session required false",
      "file": "/workspace/test/middleware.test.js",
      "duration": 447,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware without error handler added",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware without error handler added",
      "file": "/workspace/test/middleware.test.js",
      "duration": 2515,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test rid with session and non existant API in session recipe still works if the other recipe is initialized",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test rid with session and non existant API in session recipe still works if the other recipe is initialized",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 428,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test no rid with existent API does not give 404",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test no rid with existent API does not give 404",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 319,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test wrong rid with existent API works",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test wrong rid with existent API works",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 573,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test random rid with existent API works",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test random rid with existent API works",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 316,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test wrong rid returns 404 if recipe missing",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test wrong rid returns 404 if recipe missing",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 353,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test rid as anti-csrf with existent API does not give 404",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test rid as anti-csrf with existent API does not give 404",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 297,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test random rid with existent API still works",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test random rid with existent API still works",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 363,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "custom response express",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m custom response express",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 302,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test APIs work with tenantId in the request",
      "fullTitle": "middleware3: \u001b[33;3;2m[test/middleware3.test.js]\u001b[0m test APIs work with tenantId in the request",
      "file": "/workspace/test/middleware3.test.js",
      "duration": 404,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test Dashboard APIs match with tenantId",
      "fullTitle": "middleware3: \u001b[33;3;2m[test/middleware3.test.js]\u001b[0m test Dashboard APIs match with tenantId",
      "file": "/workspace/test/middleware3.test.js",
      "duration": 508,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign Up",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Sign Up",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 42,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign In",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Sign In",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 64,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Reset Password - Send Email",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Reset Password - Send Email",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 53,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Reset Password - Create new password",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Reset Password - Create new password",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 35,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "does Email Exist with existing email",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper does Email Exist with existing email",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 35,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "does Email Exist with unknown email",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper does Email Exist with unknown email",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 32,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Verify session successfully when session is present (check if it continues after)",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Verify session successfully when session is present (check if it continues after)",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 26,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Create new session",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Create new session",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 36,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing JSON body",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper, body parser tests testing JSON body",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 28,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing apple redirect (form data body)",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper, body parser tests testing apple redirect (form data body)",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 30,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign Up",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper, overriding throws error Sign Up",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 26,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign Up",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m Sign Up",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 37,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign In",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m Sign In",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 73,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "getSSRSession",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m getSSRSession",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 3042,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withSession",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m withSession",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 3041,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withSession with updated access token payload should be correctly returned",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m withSession with updated access token payload should be correctly returned",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 40,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withPreParsedRequestResponse",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m withPreParsedRequestResponse",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 33,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should go to next error handler when withSession is called without core",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m should go to next error handler when withSession is called without core",
      "file": "/workspace/test/nextjs.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should successfully refresh session",
      "fullTitle": "session refresh test should successfully refresh session",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 29,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return hasToken value correctly",
      "fullTitle": "getSSRSession:hasToken tokenTransferMethod = any should return hasToken value correctly",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 26,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return hasToken value correctly",
      "fullTitle": "getSSRSession:hasToken tokenTransferMethod = cookie should return hasToken value correctly",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 27,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw st-ev claim has expired for unverified email",
      "fullTitle": "with email verification should throw st-ev claim has expired should throw st-ev claim has expired for unverified email",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 31,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if that once API version is there, it doesn't need to query again",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that if that once API version is there, it doesn't need to query again",
      "file": "/workspace/test/querier.test.js",
      "duration": 2015,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that rid is added to the header if it's a recipe request",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that rid is added to the header if it's a recipe request",
      "file": "/workspace/test/querier.test.js",
      "duration": 16,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "core not available",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m core not available",
      "file": "/workspace/test/querier.test.js",
      "duration": 4,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "three cores and round robin",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m three cores and round robin",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "three cores, one dead and round robin",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m three cores, one dead and round robin",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that no connectionURI given, but recipe used throws an error",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that no connectionURI given, but recipe used throws an error",
      "file": "/workspace/test/querier.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that no connectionURI given, recipe override and used doesn't thrown an error",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that no connectionURI given, recipe override and used doesn't thrown an error",
      "file": "/workspace/test/querier.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with core base path",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test with core base path",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with incorrect core base path should fail",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test with incorrect core base path should fail",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with multiple core base path",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test with multiple core base path",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that no-cache header is added when querying the core",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that no-cache header is added when querying the core",
      "file": "/workspace/test/querier.test.js",
      "duration": 4,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that network call is retried properly",
      "fullTitle": "Querier rate limiting: \u001b[33;3;2m[test/ratelimiting.test.js]\u001b[0m Test that network call is retried properly",
      "file": "/workspace/test/ratelimiting.test.js",
      "duration": 2874,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that rate limiting errors are thrown back to the user",
      "fullTitle": "Querier rate limiting: \u001b[33;3;2m[test/ratelimiting.test.js]\u001b[0m Test that rate limiting errors are thrown back to the user",
      "file": "/workspace/test/ratelimiting.test.js",
      "duration": 2593,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that parallel calls have independent retry counters",
      "fullTitle": "Querier rate limiting: \u001b[33;3;2m[test/ratelimiting.test.js]\u001b[0m Test that parallel calls have independent retry counters",
      "file": "/workspace/test/ratelimiting.test.js",
      "duration": 2604,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "calling init multiple times",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m calling init multiple times",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that querier has been initiated when we call supertokens.init",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test that querier has been initiated when we call supertokens.init",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that modules have been initiated when we call supertokens.init",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test that modules have been initiated when we call supertokens.init",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test various inputs to routing with default base path",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test various inputs to routing with default base path",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 11,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test various inputs to routing when base path is /",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test various inputs to routing when base path is /",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 7,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test routing with multiple recipes",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test routing with multiple recipes",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 4,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test various inputs to errorHandler",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test various inputs to errorHandler",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 3,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that error thrown from APIs implemented by recipes must not go unhandled",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test that error thrown from APIs implemented by recipes must not go unhandled",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 2,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test if you diable a default route, and then implement your own API, your own api is called",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test if you diable a default route, and then implement your own API, your own api is called",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 536,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test if the error handler in a recipe throws an error, it goes to the user's error handler",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test if the error handler in a recipe throws an error, it goes to the user's error handler",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 3,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the getAllCORSHeaders function",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test the getAllCORSHeaders function",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that output headers and set cookie for create session is fine",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that output headers and set cookie for create session is fine",
      "file": "/workspace/test/session.test.js",
      "duration": 411,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that output headers and set cookie for refresh session is fine",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that output headers and set cookie for refresh session is fine",
      "file": "/workspace/test/session.test.js",
      "duration": 459,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that session tokens are cleared if refresh token api is called without the refresh token but with access token",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that session tokens are cleared if refresh token api is called without the refresh token but with access token",
      "file": "/workspace/test/session.test.js",
      "duration": 479,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that custom cookie format does nto throw an error during cookie parsing",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that custom cookie format does nto throw an error during cookie parsing",
      "file": "/workspace/test/session.test.js",
      "duration": 506,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that session tokens are cleared if refresh token api is called without the refresh token but with an expired access token",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that session tokens are cleared if refresh token api is called without the refresh token but with an expired access token",
      "file": "/workspace/test/session.test.js",
      "duration": 2510,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that access and refresh token for olderCookieDomain is cleared if multiple tokens are passed to the refresh endpoint",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that access and refresh token for olderCookieDomain is cleared if multiple tokens are passed to the refresh endpoint",
      "file": "/workspace/test/session.test.js",
      "duration": 431,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that refresh endpoint throws a 500 if multiple tokens are passed and olderCookieDomain is undefined",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that refresh endpoint throws a 500 if multiple tokens are passed and olderCookieDomain is undefined",
      "file": "/workspace/test/session.test.js",
      "duration": 439,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that verifySession returns 401 if multiple tokens are passed in the request",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that verifySession returns 401 if multiple tokens are passed in the request",
      "file": "/workspace/test/session.test.js",
      "duration": 441,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verifySession returns 200 in header based auth even if multiple tokens are present in the cookie",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test verifySession returns 200 in header based auth even if multiple tokens are present in the cookie",
      "file": "/workspace/test/session.test.js",
      "duration": 655,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that refresh endpoint refreshes the token in header based auth even if multiple tokens are present in the cookie",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that refresh endpoint refreshes the token in header based auth even if multiple tokens are present in the cookie",
      "file": "/workspace/test/session.test.js",
      "duration": 463,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if input cookies are missing, an appropriate error is thrown",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that if input cookies are missing, an appropriate error is thrown",
      "file": "/workspace/test/session.test.js",
      "duration": 405,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if input cookies are there, no error is thrown",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that if input cookies are there, no error is thrown",
      "file": "/workspace/test/session.test.js",
      "duration": 453,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/session.test.js",
      "duration": 473,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with API key",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m token theft detection with API key",
      "file": "/workspace/test/session.test.js",
      "duration": 390,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "query without API key",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m query without API key",
      "file": "/workspace/test/session.test.js",
      "duration": 477,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/session.test.js",
      "duration": 3521,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/session.test.js",
      "duration": 401,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/session.test.js",
      "duration": 501,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking of sessions",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test revoking of sessions",
      "file": "/workspace/test/session.test.js",
      "duration": 668,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/session.test.js",
      "duration": 398,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data with new get session function",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test manipulating session data with new get session function",
      "file": "/workspace/test/session.test.js",
      "duration": 442,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test null and undefined values passed for session data",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test null and undefined values passed for session data",
      "file": "/workspace/test/session.test.js",
      "duration": 510,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test null and undefined values passed for session data with new get session method",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test null and undefined values passed for session data with new get session method",
      "file": "/workspace/test/session.test.js",
      "duration": 479,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/session.test.js",
      "duration": 443,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload with new get session method",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test manipulating jwt payload with new get session method",
      "file": "/workspace/test/session.test.js",
      "duration": 482,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test null and undefined values passed for jwt payload",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test null and undefined values passed for jwt payload",
      "file": "/workspace/test/session.test.js",
      "duration": 428,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test null and undefined values passed for jwt payload with new get session method",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test null and undefined values passed for jwt payload with new get session method",
      "file": "/workspace/test/session.test.js",
      "duration": 426,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that when anti-csrf is disabled from ST core not having that in input to verify session is fine",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that when anti-csrf is disabled from ST core not having that in input to verify session is fine",
      "file": "/workspace/test/session.test.js",
      "duration": 533,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that anti-csrf disabled and sameSite none does not throw an error",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that anti-csrf disabled and sameSite none does not throw an error",
      "file": "/workspace/test/session.test.js",
      "duration": 447,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that anti-csrf disabled and sameSite lax does now throw an error",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that anti-csrf disabled and sameSite lax does now throw an error",
      "file": "/workspace/test/session.test.js",
      "duration": 415,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that anti-csrf disabled and sameSite strict does now throw an error",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that anti-csrf disabled and sameSite strict does now throw an error",
      "file": "/workspace/test/session.test.js",
      "duration": 486,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that custom user id is returned correctly",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that custom user id is returned correctly",
      "file": "/workspace/test/session.test.js",
      "duration": 385,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that get session by session handle payload is correct",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that get session by session handle payload is correct",
      "file": "/workspace/test/session.test.js",
      "duration": 430,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that revoked session throws error when calling get session by session handle",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that revoked session throws error when calling get session by session handle",
      "file": "/workspace/test/session.test.js",
      "duration": 491,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use override functions in sessioncontainer methods",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m should use override functions in sessioncontainer methods",
      "file": "/workspace/test/session.test.js",
      "duration": 427,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "invalid connectionURI should not cause init to throw",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m invalid connectionURI should not cause init to throw",
      "file": "/workspace/test/session.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that if signing key changes, things are still fine",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m check that if signing key changes, things are still fine",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 12621,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that if signing key changes, after new key is fetched - via token query, old tokens don't query the core",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m check that if signing key changes, after new key is fetched - via token query, old tokens don't query the core",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 10605,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that if signing key changes, after new key is fetched - via creation of new token, old tokens don't query the core",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m check that if signing key changes, after new key is fetched - via creation of new token, old tokens don't query the core",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 10532,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that if signing key changes, after new key is fetched - via verification of old token, old tokens don't query the core",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m check that if signing key changes, after new key is fetched - via verification of old token, old tokens don't query the core",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 10630,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test reducing access token signing key update interval time",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m test reducing access token signing key update interval time",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "no access token signing key update",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m no access token signing key update",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 9615,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 559,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 513,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "express token theft detection",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m express token theft detection",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 416,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "express token theft detection with auto refresh middleware",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m express token theft detection with auto refresh middleware",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 480,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test basic usage of express sessions",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 3467,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions with headers",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test basic usage of express sessions with headers",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 3661,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if accessTokenPath is set to custom /access, then path of accessToken from session is equal to this",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that if accessTokenPath is set to custom /access, then path of accessToken from session is equal to this",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 439,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if default accessTokenPath is used, then path of accessToken from session is equal to slash",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that if default accessTokenPath is used, then path of accessToken from session is equal to slash",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 527,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 464,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works if even session is deleted on the backend after creation",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test signout API works if even session is deleted on the backend after creation",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 515,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions with auto refresh",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test basic usage of express sessions with auto refresh",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 3723,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test express session verify with anti-csrf present",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test express session verify with anti-csrf present",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 460,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present express",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test session verify without anti-csrf present express",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 634,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking express sessions",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking express sessions",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 682,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data with express",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test manipulating session data with express",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 629,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload with express",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test manipulating jwt payload with express",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 536,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that express appends to existing header params and does not override",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that express appends to existing header params and does not override",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 426,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that when anti-csrf is disabled from from ST core, not having to input in verify session is fine in express",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that when anti-csrf is disabled from from ST core, not having to input in verify session is fine in express",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 442,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that getSession does not clear cookies if a session does not exist in the first place",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that getSession does not clear cookies if a session does not exist in the first place",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 371,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that refreshSession does not clear cookies if a session does not exist in the first place",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that refreshSession does not clear cookies if a session does not exist in the first place",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 457,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that when anti-csrf is enabled with custom header, and we don't provide that in verifySession, we get try refresh token",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that when anti-csrf is enabled with custom header, and we don't provide that in verifySession, we get try refresh token",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 657,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test resfresh API when using CUSTOM HEADER anti-csrf",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test resfresh API when using CUSTOM HEADER anti-csrf",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 382,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that init can be called post route and middleware declaration",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that init can be called post route and middleware declaration",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 448,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test overriding of sessions functions",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test overriding of sessions functions",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 3631,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test overriding of sessions apis",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test overriding of sessions apis",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 472,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test overriding of sessions functions, error thrown",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test overriding of sessions functions, error thrown",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 466,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test overriding of sessions apis, error thrown",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test overriding of sessions apis, error thrown",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that refresh doesn't clear cookies if missing anti csrf via custom header",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m check that refresh doesn't clear cookies if missing anti csrf via custom header",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 468,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that refresh doesn't clear cookies if missing anti csrf via token",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m check that refresh doesn't clear cookies if missing anti csrf via token",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 572,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session error handler overriding",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test session error handler overriding",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 5399,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session during refresh with revokeSession function",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking a session during refresh with revokeSession function",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 513,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session during refresh with revokeSession function and sending 401",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking a session during refresh with revokeSession function and sending 401",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 556,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session during refresh with throwing unauthorised error",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking a session during refresh with throwing unauthorised error",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 441,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session during refresh fails if just sending 401",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking a session during refresh fails if just sending 401",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 524,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that token transfer method works correctly when using origin function",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m Test that token transfer method works correctly when using origin function",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 577,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing context across interface and recipe function",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m testing context across interface and recipe function",
      "file": "/workspace/test/userContext.test.js",
      "duration": 520,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing default context across interface and recipe function",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m testing default context across interface and recipe function",
      "file": "/workspace/test/userContext.test.js",
      "duration": 651,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that SuperTokens.getRequestFromUserContext works as expected",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m Test that SuperTokens.getRequestFromUserContext works as expected",
      "file": "/workspace/test/userContext.test.js",
      "duration": 434,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that makeDefaultUserContext is not used anywhere apart from frameworks and a few other places",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m test that makeDefaultUserContext is not used anywhere apart from frameworks and a few other places",
      "file": "/workspace/test/userContext.test.js",
      "duration": 93,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test user context type usage everywhere",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m test user context type usage everywhere",
      "file": "/workspace/test/userContext.test.js",
      "duration": 79,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test getFromObjectCaseInsensitive",
      "fullTitle": "SuperTokens utils test Test getFromObjectCaseInsensitive",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return \"localhost\" for localhost URLs",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should return \"localhost\" for localhost URLs",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return \"localhost\" for localhost.org URLs",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should return \"localhost\" for localhost.org URLs",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return \"localhost\" for IP addresses",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should return \"localhost\" for IP addresses",
      "file": "/workspace/test/utils.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return the correct domain for normal URLs",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should return the correct domain for normal URLs",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should handle .amazonaws.com domains correctly",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should handle .amazonaws.com domains correctly",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should handle .local domains correctly",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should handle .local domains correctly",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw an error for invalid domains",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should throw an error for invalid domains",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test connectionURI contains http protocol",
      "fullTitle": "User Dashboard get: \u001b[33;3;2m[test/dashboard/dashboardGet.test.js]\u001b[0m Test connectionURI Test connectionURI contains http protocol",
      "file": "/workspace/test/dashboard/dashboardGet.test.js",
      "duration": 859,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test connectionURI contains https protocol",
      "fullTitle": "User Dashboard get: \u001b[33;3;2m[test/dashboard/dashboardGet.test.js]\u001b[0m Test connectionURI Test connectionURI contains https protocol",
      "file": "/workspace/test/dashboard/dashboardGet.test.js",
      "duration": 550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test multiple connection URIs",
      "fullTitle": "User Dashboard get: \u001b[33;3;2m[test/dashboard/dashboardGet.test.js]\u001b[0m Test connectionURI Test multiple connection URIs",
      "file": "/workspace/test/dashboard/dashboardGet.test.js",
      "duration": 542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that api returns correct value for email verification",
      "fullTitle": "User Dashboard userEmailVerifyGet: \u001b[33;3;2m[test/dashboard/userEmailVerifyGet.test.js]\u001b[0m Test that api returns correct value for email verification",
      "file": "/workspace/test/dashboard/userEmailVerifyGet.test.js",
      "duration": 523,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default config for emailpassword module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test default config for emailpassword module",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 421,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test config for emailpassword module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test config for emailpassword module",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 583,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that no email/password validators given should add them",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test that no email/password validators given should add them",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 814,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that giving optional true in email / password field should be ignored",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test that giving optional true in email / password field should be ignored",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 637,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that default password and email validators work fine",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test that default password and email validators work fine",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 617,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test deleteUser",
      "fullTitle": "deleteUser: \u001b[33;3;2m[test/emailpassword/deleteUser.test.js]\u001b[0m test deleteUser",
      "file": "/workspace/test/emailpassword/deleteUser.test.js",
      "duration": 741,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2442,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2454,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test backward compatibility: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2655,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: reset password (non existent user)",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test backward compatibility: reset password (non existent user)",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 4485,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test custom override: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2760,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test smtp service: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test smtp service: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2530,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 595,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 500,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test backward compatibility: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2545,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test custom override: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2510,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test smtp service: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test smtp service: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2536,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test the reset password link",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m Test the reset password link",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 472,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test the reset password link for invalid input",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m Test the reset password link for invalid input",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 587,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sendResetPasswordEmail",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test sendResetPasswordEmail",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 659,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sendResetPasswordEmail: invalid input",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test sendResetPasswordEmail: invalid input",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 457,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email exists with new path",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email exists with new path",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 517,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default email exists API does not work",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test that if disabling api, the default email exists API does not work",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 438,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email exists",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email exists",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 450,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email does not exists",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email does not exists",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 508,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email exists a syntactically invalid email",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test email exists a syntactically invalid email",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 639,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sending an unnormalised email and you get exists is true",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test sending an unnormalised email and you get exists is true",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 591,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, do not pass email",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test bad input, do not pass email",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 487,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing an array instead of a string in the email",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test passing an array instead of a string in the email",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 564,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email exists, with bodyParser applied before",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email exists, with bodyParser applied before",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email exists, with bodyParser applied after",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email exists, with bodyParser applied after",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 756,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, email not verified",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, email not verified",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 989,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, email verified and test error",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, email verified and test error",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, no session and check output",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, no session and check output",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 459,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with an expired access token and see that try refresh token is returned",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with an expired access token and see that try refresh token is returned",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 6636,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that providing your own email callback and make sure it is called",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test that providing your own email callback and make sure it is called",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1026,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1027,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with invalid token and check error",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with invalid token and check error",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 476,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with token of not type string",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with token of not type string",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 540,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that the handlePostEmailVerification callback is called on successfull verification, if given",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test that the handlePostEmailVerification callback is called on successfull verification, if given",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1737,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify with valid input, using the get method",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify with valid input, using the get method",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1132,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify with no session, using the get method",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify with no session, using the get method",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 698,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify with an expired access token, using the get method",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify with an expired access token, using the get method",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 6164,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input, overriding apis",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input, overriding apis",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1207,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input, overriding functions",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input, overriding functions",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1124,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input, overriding apis throws error",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input, overriding apis throws error",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1031,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input, overriding functions throws error",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input, overriding functions throws error",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1099,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, and then remove token",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, and then remove token",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 581,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, verify and then unverify email",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, verify and then unverify email",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 687,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with deleted user",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with deleted user",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1001,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that generate email verification token API updates session claims",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test that generate email verification token API updates session claims",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 2779,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that generate email verification token API updates session claims",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test that generate email verification token API updates session claims",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 466,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "checking email validator",
      "fullTitle": "formFieldValidator: \u001b[33;3;2m[test/emailpassword/formFieldValidator.test.js]\u001b[0m checking email validator",
      "file": "/workspace/test/emailpassword/formFieldValidator.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "checking password validator",
      "fullTitle": "formFieldValidator: \u001b[33;3;2m[test/emailpassword/formFieldValidator.test.js]\u001b[0m checking password validator",
      "file": "/workspace/test/emailpassword/formFieldValidator.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test recipe functions",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/emailpassword/multitenancy.test.js]\u001b[0m test recipe functions",
      "file": "/workspace/test/emailpassword/multitenancy.test.js",
      "duration": 2636,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding functions tests",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/emailpassword/override.test.js]\u001b[0m overriding functions tests",
      "file": "/workspace/test/emailpassword/override.test.js",
      "duration": 529,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding api tests",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/emailpassword/override.test.js]\u001b[0m overriding api tests",
      "file": "/workspace/test/emailpassword/override.test.js",
      "duration": 645,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding functions tests, throws error",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/emailpassword/override.test.js]\u001b[0m overriding functions tests, throws error",
      "file": "/workspace/test/emailpassword/override.test.js",
      "duration": 618,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding api tests, throws error",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/emailpassword/override.test.js]\u001b[0m overriding api tests, throws error",
      "file": "/workspace/test/emailpassword/override.test.js",
      "duration": 559,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email validation checks in generate token API",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test email validation checks in generate token API",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 726,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid email type in generate token API",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test invalid email type in generate token API",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that generated password link is correct",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test that generated password link is correct",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 577,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test password validation",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test password validation",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 596,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid type of password",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test invalid type of password",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 514,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test token missing from input",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test token missing from input",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 463,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid token input",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test invalid token input",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 763,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid token input and passoword has changed with email verification",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test valid token input and passoword has changed with email verification",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 645,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid token input and passoword has changed without email verification",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test valid token input and passoword has changed without email verification",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 728,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that reset password link uses the correct origin",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m Test that reset password link uses the correct origin",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 679,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the reset password link",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test the reset password link",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 572,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the reset password link for invalid input",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test the reset password link for invalid input",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 501,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sendResetPasswordEmail",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test sendResetPasswordEmail",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 486,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sendResetPasswordEmail: invalid input",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test sendResetPasswordEmail: invalid input",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 492,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createPasswordResetToken with random user ID fails",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m createPasswordResetToken tests createPasswordResetToken with random user ID fails",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 554,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createPasswordResetToken with primary user, non email password succeeds",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m createPasswordResetToken tests createPasswordResetToken with primary user, non email password succeeds",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 608,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumePasswordResetToken works when token is valid",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m consumePasswordResetToken tests consumePasswordResetToken works when token is valid",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 626,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumePasswordResetToken returns RESET_PASSWORD_INVALID_TOKEN_ERROR error if the token does not exist",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m consumePasswordResetToken tests consumePasswordResetToken returns RESET_PASSWORD_INVALID_TOKEN_ERROR error if the token does not exist",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 628,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumePasswordResetToken with primary user, non email password succeeds",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m consumePasswordResetToken tests consumePasswordResetToken with primary user, non email password succeeds",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 652,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when rid is thirdpartyemailpassword",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when rid is thirdpartyemailpassword",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 601,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that disabling api, the default signin API does not work",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test that disabling api, the default signin API does not work",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 605,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test password must be of type string in input",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test password must be of type string in input",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 579,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email must be of type string in input",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test email must be of type string in input",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 507,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI throws an error when email does not match",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI throws an error when email does not match",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 793,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI throws an error if password is incorrect",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI throws an error if password is incorrect",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 676,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, not a JSON to /signin API",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test bad input, not a JSON to /signin API",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 534,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, no POST body to /signin API",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test bad input, no POST body to /signin API",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 574,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, input is Json but incorrect structure to /signin API",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test bad input, input is Json but incorrect structure to /signin API",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 535,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that a successfull signin yields a session",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test that a successfull signin yields a session",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 591,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom email validators to sign up and make sure they are applied to sign in",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test custom email validators to sign up and make sure they are applied to sign in",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 625,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom password validators to sign up and make sure they are applied to sign in",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test custom password validators to sign up and make sure they are applied to sign in",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 607,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test password field validation error",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test password field validation error",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 628,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email field validation error",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test email field validation error",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test formFields has no email field",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test formFields has no email field",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 503,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test formFields has no password field",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test formFields has no password field",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 477,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid email and wrong password",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test invalid email and wrong password",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 571,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserByEmail when user does not exist",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test getUserByEmail when user does not exist",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 505,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the handlePostSignIn function",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test the handlePostSignIn function",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 557,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added JSON middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added JSON middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 606,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 639,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added both JSON and urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added both JSON and urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 543,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added bodyParser JSON middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added bodyParser JSON middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 730,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added bodyParser urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added bodyParser urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 618,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added both bodyParser JSON and bodyParser urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added both bodyParser JSON and bodyParser urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty JSON and user has added JSON middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty JSON and user has added JSON middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 683,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty JSON and user has added urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty JSON and user has added urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 753,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty JSON and user has added both JSON and urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty JSON and user has added both JSON and urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 598,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty JSON and user has added both bodyParser JSON and bodyParser urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty JSON and user has added both bodyParser JSON and bodyParser urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 607,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty request body and user has added JSON middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty request body and user has added JSON middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 603,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty request body and user has added urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty request body and user has added urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 679,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty request body and user has added both JSON and urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty request body and user has added both JSON and urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 490,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI throws an error when email does not match",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI throws an error when email does not match",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 587,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the default route and it should revoke the session",
      "fullTitle": "signoutFeature: \u001b[33;3;2m[test/emailpassword/signoutFeature.test.js]\u001b[0m test the default route and it should revoke the session",
      "file": "/workspace/test/emailpassword/signoutFeature.test.js",
      "duration": 516,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that disabling default route and calling the API returns 404",
      "fullTitle": "signoutFeature: \u001b[33;3;2m[test/emailpassword/signoutFeature.test.js]\u001b[0m test that disabling default route and calling the API returns 404",
      "file": "/workspace/test/emailpassword/signoutFeature.test.js",
      "duration": 614,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that calling the API without a session should return 401",
      "fullTitle": "signoutFeature: \u001b[33;3;2m[test/emailpassword/signoutFeature.test.js]\u001b[0m test that calling the API without a session should return 401",
      "file": "/workspace/test/emailpassword/signoutFeature.test.js",
      "duration": 500,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that signout API reutrns try refresh token, refresh session and signout should return OK",
      "fullTitle": "signoutFeature: \u001b[33;3;2m[test/emailpassword/signoutFeature.test.js]\u001b[0m test that signout API reutrns try refresh token, refresh session and signout should return OK",
      "file": "/workspace/test/emailpassword/signoutFeature.test.js",
      "duration": 5648,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disable api, the default signup API does not work",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that if disable api, the default signup API does not work",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 592,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signUpAPI works when input is fine",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signUpAPI works when input is fine",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 579,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signUpAPI throws an error in case of a duplicate email",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signUpAPI throws an error in case of a duplicate email",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 881,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signUpAPI throws an error for email and password with invalid syntax",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signUpAPI throws an error for email and password with invalid syntax",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 521,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, not a JSON to /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, not a JSON to /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 657,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, no POST body to /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, no POST body to /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 573,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, Input is JSON, but wrong structure to /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, Input is JSON, but wrong structure to /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 531,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, invalid password type in /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, invalid password type in /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 573,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, invalid email type in /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, invalid email type in /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 703,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, formFields is not an array in /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, formFields is not an array in /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 632,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, formField elements have no id or no value field in /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, formField elements have no id or no value field in /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 614,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that a successful signup yields a session",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that a successful signup yields a session",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 642,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if not provided by the user, it should not result in an error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that if not provided by the user, it should not result in an error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if provided by the user, and custom fields are there, only those are sent, using handlePostSignUp",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that if provided by the user, and custom fields are there, only those are sent, using handlePostSignUp",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 632,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if provided by the user, and no custom fields are there, then formFields must be empty, using handlePostSignUp",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that if provided by the user, and no custom fields are there, then formFields must be empty, using handlePostSignUp",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 747,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test formFields added in config but not in input to signup, check error about it being missing",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test formFields added in config but not in input to signup, check error about it being missing",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 626,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid formFields without optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test valid formFields without optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 555,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid boolean formFields with optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test valid boolean formFields with optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 609,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid int formFields with optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test valid int formFields with optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 652,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad case input to signup without optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad case input to signup without optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 672,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good case input to signup with optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test good case input to signup with optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 699,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test input formFields has no email field",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test input formFields has no email field",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 556,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test inut formFields has no password field",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test inut formFields has no password field",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 555,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test input form field has a different number of custom fields than in config form fields",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test input form field has a different number of custom fields than in config form fields",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 656,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test input form field has the same number of custom fields than in config form fields, but ids mismatch",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test input form field has the same number of custom fields than in config form fields, but ids mismatch",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 679,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Custom optional field missing in the payload should not throw an error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m Custom optional field missing in the payload should not throw an error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 664,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom field validation error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test custom field validation error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 595,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signup password field validation error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signup password field validation error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 712,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signup email field validation error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signup email field validation error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 949,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that input email is trimmed",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that input email is trimmed",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 749,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that non string value in formFields array and it passes through the signup API and it is sent to the handlePostSignUp",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that non string value in formFields array and it passes through the signup API and it is sent to the handlePostSignUp",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 601,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signUpAPI validate function using userContext",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signUpAPI validate function using userContext",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 762,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test handlePostSignUp gets set correctly",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test handlePostSignUp gets set correctly",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 812,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "updateEmailOrPassword function test for third party login",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m updateEmailOrPassword function test for third party login",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 898,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad case when too many formFields are passed",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad case when too many formFields are passed",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 875,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updateEmailPass",
      "fullTitle": "updateEmailPassTest: \u001b[33;3;2m[test/emailpassword/updateEmailPass.test.js]\u001b[0m test updateEmailPass",
      "file": "/workspace/test/emailpassword/updateEmailPass.test.js",
      "duration": 864,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updateEmailPass with failing password validation",
      "fullTitle": "updateEmailPassTest: \u001b[33;3;2m[test/emailpassword/updateEmailPass.test.js]\u001b[0m test updateEmailPass with failing password validation",
      "file": "/workspace/test/emailpassword/updateEmailPass.test.js",
      "duration": 583,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updateEmailPass with passing password validation",
      "fullTitle": "updateEmailPassTest: \u001b[33;3;2m[test/emailpassword/updateEmailPass.test.js]\u001b[0m test updateEmailPass with passing password validation",
      "file": "/workspace/test/emailpassword/updateEmailPass.test.js",
      "duration": 709,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updateEmailPass with failing default password validation",
      "fullTitle": "updateEmailPassTest: \u001b[33;3;2m[test/emailpassword/updateEmailPass.test.js]\u001b[0m test updateEmailPass with failing default password validation",
      "file": "/workspace/test/emailpassword/updateEmailPass.test.js",
      "duration": 746,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersOldestFirst",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUsersOldestFirst",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 5996,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersOldestFirst with search queries",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUsersOldestFirst with search queries",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 878,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersNewestFirst",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUsersNewestFirst",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 5904,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersNewestFirst with search queries",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUsersNewestFirst with search queries",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 4906,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserCount",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUserCount",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 4895,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions for lambda proxy event v1",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test basic usage of sessions for lambda proxy event v1",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 673,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions for lambda proxy event v2",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test basic usage of sessions for lambda proxy event v2",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 828,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response awslambda",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m sending custom response awslambda",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 657,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 569,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 641,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'email: t",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 628,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 679,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'email: iresh",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 714,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'phone: +1",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 871,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1(",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'phone: 1(",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 715,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 767,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 759,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=header should clear all response cookies during refresh",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 609,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=header test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 818,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=cookie should clear all response cookies during refresh",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 690,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=cookie test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "AWSRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "AWSRequest AWSRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "AWSRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "AWSRequest AWSRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions for lambda proxy event v1",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test basic usage of sessions for lambda proxy event v1",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 646,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions for lambda proxy event v2",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test basic usage of sessions for lambda proxy event v2",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 569,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response awslambda",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m sending custom response awslambda",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 582,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 653,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 604,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 736,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 611,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 816,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1(",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1(",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 815,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 831,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 759,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=header should clear all response cookies during refresh",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 625,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=header test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 701,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=cookie should clear all response cookies during refresh",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 703,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=cookie test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 678,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "express w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 756,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "fastify w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 880,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "hapi w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 658,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "koa w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 745,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "loopback w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 1344,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "express w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 834,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "fastify w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 683,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "hapi w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 764,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "koa w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 748,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "loopback w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 670,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "express w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 763,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "express w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 829,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "fastify w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 616,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "fastify w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 675,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "hapi w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 684,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "hapi w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 622,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "koa w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 636,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "koa w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 753,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "loopback w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 751,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "loopback w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 595,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "express w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 751,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "express w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 678,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "fastify w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "fastify w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 658,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "hapi w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 972,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "hapi w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 722,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "koa w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 660,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "koa w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 718,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "loopback w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 685,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "loopback w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 620,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "express w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 705,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "fastify w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 811,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "hapi w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 861,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "koa w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 657,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "loopback w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 761,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware without error handler added",
      "fullTitle": "Custom framework: \u001b[33;3;2m[test/framework/custom.test.js]\u001b[0m test session verify middleware without error handler added",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 723,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Custom framework: \u001b[33;3;2m[test/framework/custom.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 3847,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "User's getJSONBody implementation should be called only once",
      "fullTitle": "PreParsedRequest User's getJSONBody implementation should be called only once",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "User's getFormData implementation should be called only once",
      "fullTitle": "PreParsedRequest User's getFormData implementation should be called only once",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sendJSONResponse should ignore subsequent calls after first call",
      "fullTitle": "CollectingResponse sendJSONResponse should ignore subsequent calls after first call",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sendHTMLResponse should ignore subsequent calls after first call",
      "fullTitle": "CollectingResponse sendHTMLResponse should ignore subsequent calls after first call",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "setStatusCode should ignore subsequent calls after response is set",
      "fullTitle": "CollectingResponse setStatusCode should ignore subsequent calls after response is set",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sendJSONResponse should not allow sendHTMLResponse to overwrite",
      "fullTitle": "CollectingResponse sendJSONResponse should not allow sendHTMLResponse to overwrite",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sendHTMLResponse should not allow sendJSONResponse to overwrite",
      "fullTitle": "CollectingResponse sendHTMLResponse should not allow sendJSONResponse to overwrite",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow setting status code before sending response",
      "fullTitle": "CollectingResponse should allow setting status code before sending response",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should simulate API override behavior - custom response should be preserved",
      "fullTitle": "CollectingResponse should simulate API override behavior - custom response should be preserved",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "ExpressRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "ExpressRequest ExpressRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/express.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "ExpressRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "ExpressRequest ExpressRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/express.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 821,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 687,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 783,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 871,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware without error handler",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m token theft detection with auto refresh middleware without error handler",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 826,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware without error handler added",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test session verify middleware without error handler added",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 905,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 3727,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 820,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions with auto refresh",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test basic usage of sessions with auto refresh",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 3800,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 884,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 727,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking sessions",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test revoking sessions",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 860,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 901,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 890,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response fastify",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m sending custom response fastify",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 741,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "generating email verification token without payload",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m generating email verification token without payload",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 905,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test same cookie is not getting set multiple times",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test same cookie is not getting set multiple times",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 726,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 887,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 682,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 923,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search terms",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for multiple search terms",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 786,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 708,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 867,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 690,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 836,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 1056,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "FastifyRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "FastifyRequest FastifyRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "FastifyRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "FastifyRequest FastifyRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 903,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 775,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 795,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 750,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware without error handler",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m token theft detection with auto refresh middleware without error handler",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 661,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware without error handler added",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test session verify middleware without error handler added",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 963,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 3935,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 733,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions with auto refresh",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test basic usage of sessions with auto refresh",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 3731,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 740,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 685,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking sessions",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test revoking sessions",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 833,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 826,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 762,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response fastify",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m sending custom response fastify",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 753,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "generating email verification token without payload",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m generating email verification token without payload",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 789,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test same cookie is not getting set multiple times",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test same cookie is not getting set multiple times",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 777,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 819,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 743,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 834,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search terms",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search terms",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 865,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 872,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 1206,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 782,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 1017,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 823,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 911,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 755,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 759,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 3755,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 717,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions with auto refresh",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test basic usage of sessions with auto refresh",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 3887,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 794,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 750,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking sessions",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test revoking sessions",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 814,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 844,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response hapi",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m sending custom response hapi",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 740,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 809,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verifySession/getSession without accessToken",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test verifySession/getSession without accessToken",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 951,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 795,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 861,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 822,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 790,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 890,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 953,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 1040,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 882,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "HapiRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "HapiRequest HapiRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "HapiRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "HapiRequest HapiRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 774,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 715,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 896,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 770,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 3769,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 827,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions with auto refresh",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test basic usage of sessions with auto refresh",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 4010,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 811,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 841,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking sessions",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test revoking sessions",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 911,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 853,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 801,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response hapi",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m sending custom response hapi",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 954,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verifySession/getSession without accessToken",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test verifySession/getSession without accessToken",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 822,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 768,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 942,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 781,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 926,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 953,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 1108,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 938,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 853,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 911,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 709,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "koa token theft detection",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m koa token theft detection",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 905,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "koa token theft detection with auto refresh middleware",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m koa token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 874,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test basic usage of express sessions",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 3974,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 840,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions with auto refresh",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test basic usage of express sessions with auto refresh",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 3780,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test express session verify with anti-csrf present",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test express session verify with anti-csrf present",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 876,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test session verify without anti-csrf present express",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1039,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking express sessions",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test revoking express sessions",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 808,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data with express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test manipulating session data with express",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 935,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload with express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test manipulating jwt payload with express",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1128,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response koa",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m sending custom response koa",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 752,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 979,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 768,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 903,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 871,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 987,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1030,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1088,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1050,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "KoaRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "KoaRequest KoaRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "KoaRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "KoaRequest KoaRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 805,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 775,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "koa token theft detection",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m koa token theft detection",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 978,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "koa token theft detection with auto refresh middleware",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m koa token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 912,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test basic usage of express sessions",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 3814,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 786,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions with auto refresh",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test basic usage of express sessions with auto refresh",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 4992,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test express session verify with anti-csrf present",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test express session verify with anti-csrf present",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 784,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test session verify without anti-csrf present express",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 765,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking express sessions",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test revoking express sessions",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 905,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data with express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test manipulating session data with express",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 817,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload with express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test manipulating jwt payload with express",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 1040,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response koa",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m sending custom response koa",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 813,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 990,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 998,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 921,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 869,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 920,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 1066,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 1065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 994,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 1086,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 816,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m sending custom response",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 2053,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 734,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 787,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 838,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 878,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 940,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 959,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 1048,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google', phone: 1",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'provider: google', phone: 1",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 1009,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 906,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "LoopbackRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "LoopbackRequest LoopbackRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "LoopbackRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "LoopbackRequest LoopbackRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 940,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m sending custom response",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 1793,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 955,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 823,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 802,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 1015,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 940,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 944,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 1009,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google', phone: 1",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google', phone: 1",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 1197,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 855,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the default config sets values correctly for JWT recipe",
      "fullTitle": "configTest: \u001b[33;3;2m[test/jwt/config.test.js]\u001b[0m Test that the default config sets values correctly for JWT recipe",
      "file": "/workspace/test/jwt/config.test.js",
      "duration": 806,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the config sets values correctly for JWT recipe when jwt validity is set",
      "fullTitle": "configTest: \u001b[33;3;2m[test/jwt/config.test.js]\u001b[0m Test that the config sets values correctly for JWT recipe when jwt validity is set",
      "file": "/workspace/test/jwt/config.test.js",
      "duration": 804,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that sending 0 validity throws an error",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that sending 0 validity throws an error",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 813,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that sending a invalid json throws an error",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that sending a invalid json throws an error",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 877,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that returned JWT uses 100 years for expiry for default config",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that returned JWT uses 100 years for expiry for default config",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 802,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that jwt validity is same as validity set in config",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that jwt validity is same as validity set in config",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 887,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that jwt validity is same as validity passed in createJWT function",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that jwt validity is same as validity passed in createJWT function",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 899,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that default getJWKS api does not work when disabled",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that default getJWKS api does not work when disabled",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 858,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that default getJWKS works fine",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that default getJWKS works fine",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 810,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that we can override the Cache-Control header through the function",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that we can override the Cache-Control header through the function",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 974,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that we can remove the Cache-Control header through the function",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that we can remove the Cache-Control header through the function",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 919,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that we can override the Cache-Control header through the api",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that we can override the Cache-Control header through the api",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 928,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test overriding functions",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/jwt/override.test.js]\u001b[0m Test overriding functions",
      "file": "/workspace/test/jwt/override.test.js",
      "duration": 874,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test overriding APIs",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/jwt/override.test.js]\u001b[0m Test overriding APIs",
      "file": "/workspace/test/jwt/override.test.js",
      "duration": 909,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return firstFactors based on enabled recipes if no other configuration is available",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa not enabled should return firstFactors based on enabled recipes if no other configuration is available",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1577,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return firstFactors based on enabled combination recipes if no other configuration is available",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa not enabled should return firstFactors based on enabled combination recipes if no other configuration is available",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1277,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return from core config when configured in core",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa not enabled should return from core config when configured in core",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 2120,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "static config is filtered with enabled recipes",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa enabled static config is filtered with enabled recipes",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1474,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "core config is prioritised over static config and is filtered with enabled recipes in SDK",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa enabled core config is prioritised over static config and is filtered with enabled recipes in SDK",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1653,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "static config is filtered with enabled recipes in core",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa enabled static config is filtered with enabled recipes in core",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1717,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "static config is filtered with enabled recipes, but custom is allowed",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa enabled static config is filtered with enabled recipes, but custom is allowed",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1314,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creation of tenants",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test creation of tenants",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 3435,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test get tenant",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test get tenant",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 3450,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test update tenant",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test update tenant",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 2979,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test delete tenant",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test delete tenant",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 3708,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creation of thirdParty config",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test creation of thirdParty config",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 2680,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creation of thirdParty config with nulls",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test creation of thirdParty config with nulls",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 2472,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test deletion of thirdparty id",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test deletion of thirdparty id",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 2857,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updation of thirdparty provider",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test updation of thirdparty provider",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 3014,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test user association and disassociation with tenants",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test user association and disassociation with tenants",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 4286,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the recipe initializes without a config obj",
      "fullTitle": "configTest: \u001b[33;3;2m[test/oauth2/config.test.js]\u001b[0m Test that the recipe initializes without a config obj",
      "file": "/workspace/test/oauth2/config.test.js",
      "duration": 1023,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create an OAuth2Client instance with empty input",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should create an OAuth2Client instance with empty input",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 967,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create an OAuth2Client instance with custom input",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should create an OAuth2Client instance with custom input",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 861,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update the OAuth2Client",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should update the OAuth2Client",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 877,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should delete the OAuth2Client",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should delete the OAuth2Client",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 896,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get OAuth2Clients with pagination",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should get OAuth2Clients with pagination",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 987,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get OAuth2Clients with filter",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should get OAuth2Clients with filter",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 937,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with default config calling discovery configuration endpoint works as expected",
      "fullTitle": "apiTest: \u001b[33;3;2m[test/openid/api.test.js]\u001b[0m Test that with default config calling discovery configuration endpoint works as expected",
      "file": "/workspace/test/openid/api.test.js",
      "duration": 908,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with apiBasePath calling discovery configuration endpoint works as expected",
      "fullTitle": "apiTest: \u001b[33;3;2m[test/openid/api.test.js]\u001b[0m Test that with apiBasePath calling discovery configuration endpoint works as expected",
      "file": "/workspace/test/openid/api.test.js",
      "duration": 1056,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that discovery endpoint does not work when disabled",
      "fullTitle": "apiTest: \u001b[33;3;2m[test/openid/api.test.js]\u001b[0m Test that discovery endpoint does not work when disabled",
      "file": "/workspace/test/openid/api.test.js",
      "duration": 1004,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the default config sets values correctly for OpenID recipe",
      "fullTitle": "configTest: \u001b[33;3;2m[test/openid/config.test.js]\u001b[0m Test that the default config sets values correctly for OpenID recipe",
      "file": "/workspace/test/openid/config.test.js",
      "duration": 852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the default config sets values correctly for OpenID recipe with apiBasePath",
      "fullTitle": "configTest: \u001b[33;3;2m[test/openid/config.test.js]\u001b[0m Test that the default config sets values correctly for OpenID recipe with apiBasePath",
      "file": "/workspace/test/openid/config.test.js",
      "duration": 837,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the config sets values correctly for OpenID recipe with issuer",
      "fullTitle": "configTest: \u001b[33;3;2m[test/openid/config.test.js]\u001b[0m Test that the config sets values correctly for OpenID recipe with issuer",
      "file": "/workspace/test/openid/config.test.js",
      "duration": 890,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that issuer with gateway path works fine",
      "fullTitle": "configTest: \u001b[33;3;2m[test/openid/config.test.js]\u001b[0m Test that issuer with gateway path works fine",
      "file": "/workspace/test/openid/config.test.js",
      "duration": 899,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with default config discovery configuration is as expected",
      "fullTitle": "openIdTest: \u001b[33;3;2m[test/openid/openid.test.js]\u001b[0m Test that with default config discovery configuration is as expected",
      "file": "/workspace/test/openid/openid.test.js",
      "duration": 1014,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with default config discovery configuration is as expected with api base path",
      "fullTitle": "openIdTest: \u001b[33;3;2m[test/openid/openid.test.js]\u001b[0m Test that with default config discovery configuration is as expected with api base path",
      "file": "/workspace/test/openid/openid.test.js",
      "duration": 1002,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with default config discovery configuration is as expected with custom issuer",
      "fullTitle": "openIdTest: \u001b[33;3;2m[test/openid/openid.test.js]\u001b[0m Test that with default config discovery configuration is as expected with custom issuer",
      "file": "/workspace/test/openid/openid.test.js",
      "duration": 862,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test overriding open id functions",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/openid/override.test.js]\u001b[0m Test overriding open id functions",
      "file": "/workspace/test/openid/override.test.js",
      "duration": 862,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test overriding open id apis",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/openid/override.test.js]\u001b[0m Test overriding open id apis",
      "file": "/workspace/test/openid/override.test.js",
      "duration": 971,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test emailExistsAPI on old path with email password conflicting path, but different rid",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test emailExistsAPI on old path with email password conflicting path, but different rid",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 820,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test emailExistsAPI conflicting with email password",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test emailExistsAPI conflicting with email password",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 973,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test APIs still work with thirdpartypasswordless recipe",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test APIs still work with thirdpartypasswordless recipe",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1165,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the sign up /in flow with email using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test the sign up /in flow with email using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 893,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the sign up /in flow with phoneNumber using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test the sign up /in flow with phoneNumber using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1063,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creating a code with email and then resending the code and check that the sending custom email function is called while using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test creating a code with email and then resending the code and check that the sending custom email function is called while using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1047,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creating a code with phone and then resending the code and check that the sending custom SMS function is called while using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test creating a code with phone and then resending the code and check that the sending custom SMS function is called while using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 956,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid input to createCodeAPI while using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test invalid input to createCodeAPI while using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 920,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test adding phoneNumber to a users info and signing in will sign in the same user, using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test adding phoneNumber to a users info and signing in will sign in the same user, using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1115,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test not passing any fields to consumeCodeAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test not passing any fields to consumeCodeAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 926,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test consumeCodeAPI with magic link",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test consumeCodeAPI with magic link",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 998,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test consumeCodeAPI with code",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test consumeCodeAPI with code",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1063,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test consumeCodeAPI with expired code",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test consumeCodeAPI with expired code",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 2971,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createCodeAPI with email",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test createCodeAPI with email",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1194,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createCodeAPI with phoneNumber",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test createCodeAPI with phoneNumber",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 916,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test magicLink format in createCodeAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test magicLink format in createCodeAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1004,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test emailExistsAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test emailExistsAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 904,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test emailExistsAPI with new path",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test emailExistsAPI with new path",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 910,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test phoneNumberExistsAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test phoneNumberExistsAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 923,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test phoneNumberExistsAPI with new path",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test phoneNumberExistsAPI with new path",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 956,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test resendCodeAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test resendCodeAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 855,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test resendCodeAPI when changing contact method",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test resendCodeAPI when changing contact method",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1238,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test resend code from different tenant throws error",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test resend code from different tenant throws error",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 3938,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config with EMAIL_OR_PHONE contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test minimum config with EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 903,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test adding custom validators for phone and email with EMAIL_OR_PHONE contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test adding custom validators for phone and email with EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1021,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom function to send email with EMAIL_OR_PHONE contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test custom function to send email with EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1071,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom function to send text SMS with EMAIL_OR_PHONE contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test custom function to send text SMS with EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 924,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config with phone contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test minimum config with phone contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 841,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test if validatePhoneNumber is called with phone contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test if validatePhoneNumber is called with phone contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 974,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE and phone contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE and phone contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1081,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage with flowType: MAGIC_LINK and phone contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage with flowType: MAGIC_LINK and phone contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 915,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE_AND_MAGIC_LINK and phone contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE_AND_MAGIC_LINK and phone contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 928,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage, if error is thrown, it should contain a general error in the response",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage, if error is thrown, it should contain a general error in the response",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1002,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config with email contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test minimum config with email contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 897,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test if validateEmailAddress is called with email contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test if validateEmailAddress is called with email contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 906,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomEmail with flowType: USER_INPUT_CODE and email contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomEmail with flowType: USER_INPUT_CODE and email contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 981,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomEmail with flowType: MAGIC_LINK and email contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomEmail with flowType: MAGIC_LINK and email contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 928,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE_AND_MAGIC_LINK and email contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE_AND_MAGIC_LINK and email contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 877,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomEmail, if error is thrown, the status in the response should be a general error",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomEmail, if error is thrown, the status in the response should be a general error",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1135,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test missing compulsory configs throws an error",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test missing compulsory configs throws an error",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 850,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing getCustomUserInputCode using different codes",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test passing getCustomUserInputCode using different codes",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1212,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing getCustomUserInputCode using the same code",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test passing getCustomUserInputCode using the same code",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1021,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic override usage in passwordless",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test basic override usage in passwordless",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 857,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 1018,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test backward compatibility: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 2877,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test custom override: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 2966,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test smtp service: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test smtp service: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 2966,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message sent back to user: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message sent back to user: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 948,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test backward compatibility: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 4993,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test custom override: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 3200,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test smtp service: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test smtp service: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 5081,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message sent back to user: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message sent back to user: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 1040,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that passwordless email uses correct origin",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m Test that passwordless email uses correct origin",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 1006,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test recipe functions",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/passwordless/multitenancy.test.js]\u001b[0m test recipe functions",
      "file": "/workspace/test/passwordless/multitenancy.test.js",
      "duration": 4204,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "getUser test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m getUser test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1200,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createCode test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m createCode test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 907,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createNewCodeForDevice test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m createNewCodeForDevice test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1044,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumeCode test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m consumeCode test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1299,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumeCode test with EXPIRED_USER_INPUT_CODE_ERROR",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m consumeCode test with EXPIRED_USER_INPUT_CODE_ERROR",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 2989,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "updateUser contactMethod email test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m updateUser contactMethod email test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 985,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "updateUser contactMethod phone test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m updateUser contactMethod phone test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1032,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "revokeAllCodes test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m revokeAllCodes test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 974,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "revokeCode test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m revokeCode test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1019,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "listCodesByEmail test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m listCodesByEmail test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 966,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "listCodesByPhoneNumber test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m listCodesByPhoneNumber test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 996,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "listCodesByDeviceId and listCodesByPreAuthSessionId test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m listCodesByDeviceId and listCodesByPreAuthSessionId test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1020,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createMagicLink test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m createMagicLink test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1051,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "signInUp test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m signInUp test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 927,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Passwordless user that isEmailVerified returns true for both email and phone",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m Passwordless user that isEmailVerified returns true for both email and phone",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1185,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1120,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test backward compatibility: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3086,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test custom override: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3139,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test twilio service: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test twilio service: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3102,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message sent back to user: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message sent back to user: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1200,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test supertokens service: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test supertokens service: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3013,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user if response code is 429: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user if response code is 429: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 968,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1034,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test backward compatibility: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 5121,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test custom override: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3176,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test twilio service: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test twilio service: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 5097,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message sent back to user: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message sent back to user: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1029,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test supertokens service: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test supertokens service: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 4998,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user if response code is 429: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user if response code is 429: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1123,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "0. fnOverride=false, apiOverride=false, configOverride=false, plugins=[]",
      "fullTitle": "Plugins Overrides 0. fnOverride=false, apiOverride=false, configOverride=false, plugins=[]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "1. fnOverride=true, apiOverride=false, configOverride=false, plugins=[]",
      "fullTitle": "Plugins Overrides 1. fnOverride=true, apiOverride=false, configOverride=false, plugins=[]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "2. fnOverride=false, apiOverride=true, configOverride=false, plugins=[]",
      "fullTitle": "Plugins Overrides 2. fnOverride=false, apiOverride=true, configOverride=false, plugins=[]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3. fnOverride=false, apiOverride=false, configOverride=true, plugins=[]",
      "fullTitle": "Plugins Overrides 3. fnOverride=false, apiOverride=false, configOverride=true, plugins=[]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "4. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1], plugin1=[fn]",
      "fullTitle": "Plugins Overrides 4. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1], plugin1=[fn]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "5. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1], plugin1=[api]",
      "fullTitle": "Plugins Overrides 5. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1], plugin1=[api]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "6. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1], plugin1=[fn]",
      "fullTitle": "Plugins Overrides 6. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1], plugin1=[fn]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "7. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1], plugin1=[api]",
      "fullTitle": "Plugins Overrides 7. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1], plugin1=[api]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "8. fnOverride=false, apiOverride=false, configOverride=true, plugins=[plugin1], plugin1=[api]",
      "fullTitle": "Plugins Overrides 8. fnOverride=false, apiOverride=false, configOverride=true, plugins=[plugin1], plugin1=[api]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "9. fnOverride=false, apiOverride=false, configOverride=true, plugins=[plugin1], plugin1=[api,config]",
      "fullTitle": "Plugins Overrides 9. fnOverride=false, apiOverride=false, configOverride=true, plugins=[plugin1], plugin1=[api,config]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "10. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1,plugin2], plugin1=[fn,config], plugin2=[fn]",
      "fullTitle": "Plugins Overrides 10. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1,plugin2], plugin1=[fn,config], plugin2=[fn]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "11. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1,plugin2], plugin1=[api], plugin2=[api,config]",
      "fullTitle": "Plugins Overrides 11. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1,plugin2], plugin1=[api], plugin2=[api,config]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "12. fnOverride=true, apiOverride=true, configOverride=true, plugins=[plugin1,plugin2], plugin1=[fn,api,config], plugin2=[fn,api,config]",
      "fullTitle": "Plugins Overrides 12. fnOverride=true, apiOverride=true, configOverride=true, plugins=[plugin1,plugin2], plugin1=[fn,api,config], plugin2=[fn,api,config]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "1,1 => 1",
      "fullTitle": "Plugins Dependencies and Init 1,1 => 1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "1,2 => 2,1",
      "fullTitle": "Plugins Dependencies and Init 1,2 => 2,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3->1 => 3,1",
      "fullTitle": "Plugins Dependencies and Init 3->1 => 3,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3->(2,1) => 3,2,1",
      "fullTitle": "Plugins Dependencies and Init 3->(2,1) => 3,2,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3->1,4->2 => 4,2,3,1",
      "fullTitle": "Plugins Dependencies and Init 3->1,4->2 => 4,2,3,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "4->3->(2,1) => 4,3,1,2",
      "fullTitle": "Plugins Dependencies and Init 4->3->(2,1) => 4,3,1,2",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3->1,4->1 => 4,3,1",
      "fullTitle": "Plugins Dependencies and Init 3->1,4->1 => 4,3,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "override public property should not be applied",
      "fullTitle": "Plugins Config Overrides override public property should not be applied",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "override non-public property",
      "fullTitle": "Plugins Config Overrides override non-public property",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "as list",
      "fullTitle": "Plugins Route Handlers as list",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "success",
      "fullTitle": "Plugins Route Handlers as function success",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "error",
      "fullTitle": "Plugins Route Handlers as function error",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create a V5 token",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should create a V5 token",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create a V5 token signed by a static key if set in session recipe config",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should create a V5 token signed by a static key if set in session recipe config",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 994,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should ignore protected props",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should ignore protected props",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1116,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should ignore protected props when creating from prev payload",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should ignore protected props when creating from prev payload",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1150,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should make sign in/up return a 500 when adding protected props",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should make sign in/up return a 500 when adding protected props",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1042,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should help migrating a v2 token using protected props",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m mergeIntoAccessTokenPayload should help migrating a v2 token using protected props",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1064,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should help migrating a v2 token using protected props when called using session handle",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m mergeIntoAccessTokenPayload should help migrating a v2 token using protected props when called using session handle",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1051,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v2 tokens",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v2 tokens",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1161,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v2 tokens with check database enabled",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v2 tokens with check database enabled",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1020,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v4 tokens",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v4 tokens",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1013,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v4 tokens with check database enabled",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v4 tokens with check database enabled",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1309,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v5 tokens with check database enabled",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v5 tokens with check database enabled",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1000,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate token signed by a static key if not set in session recipe config",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should not validate token signed by a static key if not set in session recipe config",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 995,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refresh legacy sessions to new version",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m refresh session should refresh legacy sessions to new version",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 958,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw when refreshing legacy session with protected prop in payload",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m refresh session should throw when refreshing legacy session with protected prop in payload",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1020,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should accept skipped nullable props (v3)",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m validateAccessTokenStructure should accept skipped nullable props (v3)",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not throw for empty array",
      "fullTitle": "sessionClaims/assertClaims: \u001b[33;3;2m[test/session/claims/assertClaims.test.js]\u001b[0m SessionClass.assertClaims should not throw for empty array",
      "file": "/workspace/test/session/claims/assertClaims.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should call validate with the same payload object",
      "fullTitle": "sessionClaims/assertClaims: \u001b[33;3;2m[test/session/claims/assertClaims.test.js]\u001b[0m SessionClass.assertClaims should call validate with the same payload object",
      "file": "/workspace/test/session/claims/assertClaims.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create access token payload w/ session claims",
      "fullTitle": "sessionClaims/createNewSession: \u001b[33;3;2m[test/session/claims/createNewSession.test.js]\u001b[0m createNewSession should create access token payload w/ session claims",
      "file": "/workspace/test/session/claims/createNewSession.test.js",
      "duration": 950,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create access token payload wo/ session claims with an undefined value",
      "fullTitle": "sessionClaims/createNewSession: \u001b[33;3;2m[test/session/claims/createNewSession.test.js]\u001b[0m createNewSession should create access token payload wo/ session claims with an undefined value",
      "file": "/workspace/test/session/claims/createNewSession.test.js",
      "duration": 1053,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should merge claims and the passed access token payload obj",
      "fullTitle": "sessionClaims/createNewSession: \u001b[33;3;2m[test/session/claims/createNewSession.test.js]\u001b[0m createNewSession should merge claims and the passed access token payload obj",
      "file": "/workspace/test/session/claims/createNewSession.test.js",
      "duration": 1079,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not change if claim fetchValue returns undefined",
      "fullTitle": "sessionClaims/fetchAndSetClaim: \u001b[33;3;2m[test/session/claims/fetchAndSetClaim.test.js]\u001b[0m SessionClass.fetchAndSetClaim should not change if claim fetchValue returns undefined",
      "file": "/workspace/test/session/claims/fetchAndSetClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update if claim fetchValue returns value",
      "fullTitle": "sessionClaims/fetchAndSetClaim: \u001b[33;3;2m[test/session/claims/fetchAndSetClaim.test.js]\u001b[0m SessionClass.fetchAndSetClaim should update if claim fetchValue returns value",
      "file": "/workspace/test/session/claims/fetchAndSetClaim.test.js",
      "duration": 2,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update using a handle if claim fetchValue returns a value",
      "fullTitle": "sessionClaims/fetchAndSetClaim: \u001b[33;3;2m[test/session/claims/fetchAndSetClaim.test.js]\u001b[0m SessionClass.fetchAndSetClaim should update using a handle if claim fetchValue returns a value",
      "file": "/workspace/test/session/claims/fetchAndSetClaim.test.js",
      "duration": 1059,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get the right value",
      "fullTitle": "sessionClaims/getClaimValue: \u001b[33;3;2m[test/session/claims/getClaimValue.test.js]\u001b[0m SessionClass.getClaimValue should get the right value",
      "file": "/workspace/test/session/claims/getClaimValue.test.js",
      "duration": 947,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get the right value using session handle",
      "fullTitle": "sessionClaims/getClaimValue: \u001b[33;3;2m[test/session/claims/getClaimValue.test.js]\u001b[0m SessionClass.getClaimValue should get the right value using session handle",
      "file": "/workspace/test/session/claims/getClaimValue.test.js",
      "duration": 1063,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for not existing handle",
      "fullTitle": "sessionClaims/getClaimValue: \u001b[33;3;2m[test/session/claims/getClaimValue.test.js]\u001b[0m SessionClass.getClaimValue should work for not existing handle",
      "file": "/workspace/test/session/claims/getClaimValue.test.js",
      "duration": 1107,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should build the right payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 2,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload w/ async fetch",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should build the right payload w/ async fetch",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload matching addToPayload_internal",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should build the right payload matching addToPayload_internal",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should call fetchValue with the right params",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should call fetchValue with the right params",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should leave payload empty if fetchValue returns undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should leave payload empty if fetchValue returns undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getValueFromPayload should return undefined for empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return value set by fetchAndSetClaim",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getValueFromPayload should return value set by fetchAndSetClaim",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return value set by addToPayload_internal",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getValueFromPayload should return value set by addToPayload_internal",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getLastRefetchTime should return undefined for empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return time matching the fetchAndSetClaim call",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getLastRefetchTime should return time matching the fetchAndSetClaim call",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not validate old values",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should validate old values if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not refetch if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate values older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not validate values older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values with default defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should validate old values with default defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should refetch if value is older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is overrides to infinite",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not refetch if maxAge is overrides to infinite",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not validate old values",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should validate old values if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not refetch if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate values older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not validate values older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values with default defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should validate old values with default defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should refetch if value is older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is overrides to infinite",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not refetch if maxAge is overrides to infinite",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate with requirement array",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should validate with requirement array",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not validate old values",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should validate old values if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not refetch if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate values older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not validate values older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch old values with default defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not refetch old values with default defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is overrides to infinite",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not refetch if maxAge is overrides to infinite",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate with empty array",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should validate with empty array",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not validate old values",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should validate old values if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not refetch if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate values older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not validate values older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values with default defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should validate old values with default defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should refetch if value is older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is overrides to infinite",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not refetch if maxAge is overrides to infinite",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should build the right payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload w/ async fetch",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should build the right payload w/ async fetch",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload matching addToPayload_internal",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should build the right payload matching addToPayload_internal",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should call fetchValue with the right params",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should call fetchValue with the right params",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should leave payload empty if fetchValue returns undefined",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should leave payload empty if fetchValue returns undefined",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for empty payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getValueFromPayload should return undefined for empty payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return value set by fetchAndSetClaim",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getValueFromPayload should return value set by fetchAndSetClaim",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return value set by addToPayload_internal",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getValueFromPayload should return value set by addToPayload_internal",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for empty payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getLastRefetchTime should return undefined for empty payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return time matching the fetchAndSetClaim call",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getLastRefetchTime should return time matching the fetchAndSetClaim call",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values as well",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should validate old values as well",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should not validate old values",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch with an overridden maxAgeInSeconds",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should not refetch with an overridden maxAgeInSeconds",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should validate old values",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch with an overridden maxAgeInSeconds",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should not refetch with an overridden maxAgeInSeconds",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should not validate old values",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attempt to set claim to null",
      "fullTitle": "sessionClaims/removeClaim: \u001b[33;3;2m[test/session/claims/removeClaim.test.js]\u001b[0m SessionClass.removeClaim should attempt to set claim to null",
      "file": "/workspace/test/session/claims/removeClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear previously set claim",
      "fullTitle": "sessionClaims/removeClaim: \u001b[33;3;2m[test/session/claims/removeClaim.test.js]\u001b[0m SessionClass.removeClaim should clear previously set claim",
      "file": "/workspace/test/session/claims/removeClaim.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear previously set claim using a handle",
      "fullTitle": "sessionClaims/removeClaim: \u001b[33;3;2m[test/session/claims/removeClaim.test.js]\u001b[0m SessionClass.removeClaim should clear previously set claim using a handle",
      "file": "/workspace/test/session/claims/removeClaim.test.js",
      "duration": 1048,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work ok for not existing handle",
      "fullTitle": "sessionClaims/removeClaim: \u001b[33;3;2m[test/session/claims/removeClaim.test.js]\u001b[0m SessionClass.removeClaim should work ok for not existing handle",
      "file": "/workspace/test/session/claims/removeClaim.test.js",
      "duration": 1069,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should merge the right value",
      "fullTitle": "sessionClaims/setClaimValue: \u001b[33;3;2m[test/session/claims/setClaimValue.test.js]\u001b[0m SessionClass.setClaimValue should merge the right value",
      "file": "/workspace/test/session/claims/setClaimValue.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should overwrite claim value",
      "fullTitle": "sessionClaims/setClaimValue: \u001b[33;3;2m[test/session/claims/setClaimValue.test.js]\u001b[0m SessionClass.setClaimValue should overwrite claim value",
      "file": "/workspace/test/session/claims/setClaimValue.test.js",
      "duration": 983,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should overwrite claim value using session handle",
      "fullTitle": "sessionClaims/setClaimValue: \u001b[33;3;2m[test/session/claims/setClaimValue.test.js]\u001b[0m SessionClass.setClaimValue should overwrite claim value using session handle",
      "file": "/workspace/test/session/claims/setClaimValue.test.js",
      "duration": 966,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work ok for not existing handle",
      "fullTitle": "sessionClaims/setClaimValue: \u001b[33;3;2m[test/session/claims/setClaimValue.test.js]\u001b[0m SessionClass.setClaimValue should work ok for not existing handle",
      "file": "/workspace/test/session/claims/setClaimValue.test.js",
      "duration": 1129,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return the right validation errors",
      "fullTitle": "sessionClaims/validateClaimsForSessionHandle: \u001b[33;3;2m[test/session/claims/validateClaimsForSessionHandle.test.js]\u001b[0m Session.validateClaimsForSessionHandle should return the right validation errors",
      "file": "/workspace/test/session/claims/validateClaimsForSessionHandle.test.js",
      "duration": 1053,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for not existing handle",
      "fullTitle": "sessionClaims/validateClaimsForSessionHandle: \u001b[33;3;2m[test/session/claims/validateClaimsForSessionHandle.test.js]\u001b[0m Session.validateClaimsForSessionHandle should work for not existing handle",
      "file": "/workspace/test/session/claims/validateClaimsForSessionHandle.test.js",
      "duration": 1007,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow without claims required or present",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should allow without claims required or present",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1169,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with claim valid after refetching",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should allow with claim valid after refetching",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 975,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with claim required but not added",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should reject with claim required but not added",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1014,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with custom validator returning true",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should allow with custom validator returning true",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1203,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with custom validator returning false",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should reject with custom validator returning false",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1049,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with validator returning false with reason",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should reject with validator returning false with reason",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1074,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject if assertClaims returns an error",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should reject if assertClaims returns an error",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1248,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow if assertClaims returns no errors",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should allow if assertClaims returns no errors",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1040,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with empty list as override",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should allow with empty list as override",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with refetched claim",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should allow with refetched claim",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1010,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with invalid refetched claim",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should reject with invalid refetched claim",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1087,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with custom claim returning false",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should reject with custom claim returning false",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1193,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with custom claim returning true",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should allow with custom claim returning true",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1144,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with custom claim returning false",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should reject with custom claim returning false",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1153,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should override session errorHandlers",
      "fullTitle": "errorHandlers: \u001b[33;3;2m[test/errorHandlers.test.js]\u001b[0m should override session errorHandlers",
      "file": "/workspace/test/session/errorHandlers.test.js",
      "duration": 960,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should default to false",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m should default to false",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=true createNewSession should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1066,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=true mergeIntoAccessTokenPayload should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1087,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens after refresh",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=true verifySession should attach the appropriate tokens after refresh",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1115,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=true refresh session should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=false createNewSession should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 996,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=false mergeIntoAccessTokenPayload should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1095,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens after refresh",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=false verifySession should attach the appropriate tokens after refresh",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1119,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=false refresh session should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1157,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should fetch the keys as expected",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should fetch the keys as expected",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 984,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not re-fetch if the cache is available",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should not re-fetch if the cache is available",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 978,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should re-fetch keys for unknown kid",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should re-fetch keys for unknown kid",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 7340,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw if jwks endpoint errors",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should throw if jwks endpoint errors",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1094,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should re-fetch after the cache expires",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should re-fetch after the cache expires",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1251,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "jwks multiple cores work ok",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m jwks multiple cores work ok",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1157,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "jwks endpoint throwing should fall back to next core if fetching throws",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m jwks endpoint throwing should fall back to next core if fetching throws",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1437,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "jwks endpoint throwing should fall back to next core if fetching returns the wrong status/shape",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m jwks endpoint throwing should fall back to next core if fetching returns the wrong status/shape",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create a new session",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m createNewSessionWithoutRequestResponse should create a new session",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1003,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create a new session w/ anti-csrf",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m createNewSessionWithoutRequestResponse should create a new session w/ anti-csrf",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1147,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate basic access token",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should validate basic access token",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1102,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate basic access token with anti-csrf",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should validate basic access token with anti-csrf",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 985,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate access tokens created by createJWT",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should validate access tokens created by createJWT",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1473,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate access tokens created by createJWT w/ checkDatabase",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should validate access tokens created by createJWT w/ checkDatabase",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1473,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return error for non-tokens",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should return error for non-tokens",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for non-tokens with requireSession false",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should return undefined for non-tokens with requireSession false",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return error for claim validation failures",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should return error for claim validation failures",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1025,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refresh session",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m refreshSessionWithoutRequestResponse should refresh session",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1141,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work with anti-csrf",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m refreshSessionWithoutRequestResponse should work with anti-csrf",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1226,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return error for non-tokens",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m refreshSessionWithoutRequestResponse should return error for non-tokens",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 2015,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw an error when scope is an empty string",
      "fullTitle": "normaliseSessionScopeOrThrowError should throw an error when scope is an empty string",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should retain the leading dot when original scope starts with a dot",
      "fullTitle": "normaliseSessionScopeOrThrowError should retain the leading dot when original scope starts with a dot",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return the normalised scope without a leading dot",
      "fullTitle": "normaliseSessionScopeOrThrowError should return the normalised scope without a leading dot",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should normalise scope with HTTP prefix",
      "fullTitle": "normaliseSessionScopeOrThrowError should normalise scope with HTTP prefix",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should normalise scope with HTTPS prefix",
      "fullTitle": "normaliseSessionScopeOrThrowError should normalise scope with HTTPS prefix",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return the IP address as-is",
      "fullTitle": "normaliseSessionScopeOrThrowError should return the IP address as-is",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return \"localhost\" if the scope is localhost",
      "fullTitle": "normaliseSessionScopeOrThrowError should return \"localhost\" if the scope is localhost",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should trim leading and trailing whitespace",
      "fullTitle": "normaliseSessionScopeOrThrowError should trim leading and trailing whitespace",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return correct scope for subdomains",
      "fullTitle": "normaliseSessionScopeOrThrowError should return correct scope for subdomains",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw when verifying",
      "fullTitle": "Switching useDynamicAccessTokenSigningKey after session creation: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m true to false should throw when verifying",
      "file": "/workspace/test/session/useDynamicSigningKeySwitching.test.js",
      "duration": 1255,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work after refresh",
      "fullTitle": "Switching useDynamicAccessTokenSigningKey after session creation: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m true to false should work after refresh",
      "file": "/workspace/test/session/useDynamicSigningKeySwitching.test.js",
      "duration": 1276,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that using development OAuth keys will use the development authorisation url",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test that using development OAuth keys will use the development authorisation url",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1162,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test calling authorisation url API with empty init",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test calling authorisation url API with empty init",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1424,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test calling authorisation url API with empty init with dynamic third party provider",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test calling authorisation url API with empty init with dynamic third party provider",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1780,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for thirdparty module",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test minimum config for thirdparty module",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1080,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test thirdparty provider doesn't exist",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test thirdparty provider doesn't exist",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1161,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid GET params for thirdparty module",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test invalid GET params for thirdparty module",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 997,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test config for thirdparty module, no provider passed",
      "fullTitle": "configTest: \u001b[33;3;2m[test/thirdparty/config.test.js]\u001b[0m test config for thirdparty module, no provider passed",
      "file": "/workspace/test/thirdparty/config.test.js",
      "duration": 1104,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for thirdparty module, custom provider",
      "fullTitle": "configTest: \u001b[33;3;2m[test/thirdparty/config.test.js]\u001b[0m test minimum config for thirdparty module, custom provider",
      "file": "/workspace/test/thirdparty/config.test.js",
      "duration": 1134,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: email verify",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/thirdparty/emailverify.test.js]\u001b[0m test default backward compatibility api being called: email verify",
      "file": "/workspace/test/thirdparty/emailverify.test.js",
      "duration": 1109,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user: email verify",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/thirdparty/emailverify.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user: email verify",
      "file": "/workspace/test/thirdparty/emailverify.test.js",
      "duration": 1356,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: email verify",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/thirdparty/emailverify.test.js]\u001b[0m test custom override: email verify",
      "file": "/workspace/test/thirdparty/emailverify.test.js",
      "duration": 3445,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that providing your own email callback and make sure it is called",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/thirdparty/emailverify.test.js]\u001b[0m test that providing your own email callback and make sure it is called",
      "file": "/workspace/test/thirdparty/emailverify.test.js",
      "duration": 1713,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test recipe functions",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/thirdparty/multitenancy.test.js]\u001b[0m test recipe functions",
      "file": "/workspace/test/thirdparty/multitenancy.test.js",
      "duration": 2873320,
      "currentRetry": 0,
      "err": {
        "stack": "Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)",
        "message": "Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)",
        "code": "ERR_MOCHA_TIMEOUT",
        "timeout": 40000,
        "file": "/workspace/test/thirdparty/multitenancy.test.js",
        "multiple": [
          {
            "code": "ERR_MOCHA_TIMEOUT",
            "timeout": 40000,
            "file": "/workspace/test/thirdparty/multitenancy.test.js",
            "multiple": "Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js),Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js),Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)"
          },
          "Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)",
          "Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)"
        ]
      }
    },
    {
      "title": "test getProvider",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/thirdparty/multitenancy.test.js]\u001b[0m test getProvider",
      "file": "/workspace/test/thirdparty/multitenancy.test.js",
      "duration": 7635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getProvider merges the config from static and core 1",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/thirdparty/multitenancy.test.js]\u001b[0m test getProvider merges the config from static and core 1",
      "file": "/workspace/test/thirdparty/multitenancy.test.js",
      "duration": 2457,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getProvider returns correct config from core",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/thirdparty/multitenancy.test.js]\u001b[0m test getProvider returns correct config from core",
      "file": "/workspace/test/thirdparty/multitenancy.test.js",
      "duration": 1999,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use code challenge method S256 if supported by the provider",
      "fullTitle": "oidcTest: \u001b[33;3;2m[test/thirdparty/oidc.test.js]\u001b[0m should use code challenge method S256 if supported by the provider",
      "file": "/workspace/test/thirdparty/oidc.test.js",
      "duration": 2125,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not use pkce if oidc response does not support S256",
      "fullTitle": "oidcTest: \u001b[33;3;2m[test/thirdparty/oidc.test.js]\u001b[0m should not use pkce if oidc response does not support S256",
      "file": "/workspace/test/thirdparty/oidc.test.js",
      "duration": 2579,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use pkce if oidc response does not support S256 but forcePKCE is true",
      "fullTitle": "oidcTest: \u001b[33;3;2m[test/thirdparty/oidc.test.js]\u001b[0m should use pkce if oidc response does not support S256 but forcePKCE is true",
      "file": "/workspace/test/thirdparty/oidc.test.js",
      "duration": 2175,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding functions tests",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/thirdparty/override.test.js]\u001b[0m overriding functions tests",
      "file": "/workspace/test/thirdparty/override.test.js",
      "duration": 1162,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding api tests",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/thirdparty/override.test.js]\u001b[0m overriding api tests",
      "file": "/workspace/test/thirdparty/override.test.js",
      "duration": 1119,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding functions tests, throws error",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/thirdparty/override.test.js]\u001b[0m overriding functions tests, throws error",
      "file": "/workspace/test/thirdparty/override.test.js",
      "duration": 1068,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding api tests, throws error",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/thirdparty/override.test.js]\u001b[0m overriding api tests, throws error",
      "file": "/workspace/test/thirdparty/override.test.js",
      "duration": 1161,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 3124,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2079,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2145,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2121,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2067,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2072,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2135,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2201,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2289,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2390,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2230,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2204,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2712,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2137,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2242,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2167,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2526,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2115,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2089,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2150,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2141,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2245,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2139,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2077,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2189,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2399,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2191,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2194,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2172,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2323,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2344,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2236,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2193,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2303,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2131,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2173,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2176,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2137,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2201,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2131,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2160,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2211,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2232,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2515,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2213,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2194,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2129,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2320,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2306,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2078,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2301,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2175,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2317,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2271,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2063,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2267,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2210,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2158,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2281,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2219,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2184,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2173,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2175,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2204,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2205,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2177,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2392,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2290,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2226,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2188,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2592,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2257,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2259,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2357,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2268,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2234,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2383,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2159,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2234,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2383,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2412,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2416,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2299,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2238,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2206,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2259,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2283,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2217,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2381,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2553,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2345,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2295,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2235,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2322,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2241,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2370,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2296,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2329,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2565,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2275,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2341,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2369,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2384,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2269,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2297,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2523,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2260,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2392,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2308,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2408,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2264,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2310,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2458,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2300,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2479,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2402,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2295,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2356,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2335,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2272,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2307,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2475,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2242,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2302,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2306,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2322,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2341,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2381,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2481,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2431,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2356,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2258,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2472,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2596,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2335,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2302,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2311,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2563,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2318,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2456,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 3219,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2556,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2337,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2497,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2376,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2544,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2348,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2495,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2485,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2631,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2390,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2564,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2377,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1623,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1850,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1787,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1976,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1932,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1868,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1698,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1677,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1773,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1695,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1692,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1689,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1925,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1795,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1808,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1695,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1937,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1686,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1704,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1676,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1727,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1898,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1925,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1713,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1667,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1796,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1907,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1710,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1786,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1782,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1682,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1714,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1741,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1850,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1743,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1688,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1703,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1756,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1767,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1789,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1794,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1769,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1872,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1644,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1869,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1721,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1704,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1774,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2023,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2118,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1872,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1938,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1686,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1748,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1765,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1843,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1753,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1875,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1800,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1846,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1698,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1976,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1728,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1683,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1778,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1996,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1876,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1885,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1743,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1848,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1855,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1922,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1685,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2142,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1736,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1887,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1765,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1820,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1716,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1719,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1777,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1770,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1765,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1949,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1822,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1891,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1742,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1817,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1879,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1791,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1712,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1829,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1924,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1752,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1948,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1855,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1961,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1828,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1728,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1809,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1829,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1790,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1798,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1831,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1760,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1828,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1823,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1818,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1926,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1902,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1981,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1805,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1789,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1894,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1805,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1848,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1886,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1940,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1950,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1835,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1798,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1841,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1854,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1748,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1866,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1806,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1814,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1979,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1763,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1990,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2033,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1983,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1774,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1783,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1901,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1812,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1816,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1929,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1833,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1836,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1819,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1960,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2058,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1815,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1764,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2099,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1882,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1817,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1746,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the provider override is not increasing call stack",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test the provider override is not increasing call stack",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2133,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the config is same within override and provider instance",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test the config is same within override and provider instance",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 1766,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the config is same within override and provider instance when overriding getConfigForClientType",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test the config is same within override and provider instance when overriding getConfigForClientType",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 1883,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test built-in provider computed config from static config",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 1800,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test built-in provider computed config from core config",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 11365,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when only one clientType is provided from static",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when only one clientType is provided from static",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2179,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there are more than one clientType from static",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there are more than one clientType from static",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 1873,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there is one clientType from core",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there is one clientType from core",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2672,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there are more than one clientType from core",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there are more than one clientType from core",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2589,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there are same clientTypes from static and core",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there are same clientTypes from static and core",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2634,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there are different clientTypes from static and core",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there are different clientTypes from static and core",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2693,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getProvider and signInUp on an app and tenant",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test getProvider and signInUp on an app and tenant",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 4065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for third party provider google",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test minimum config for third party provider google",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1447,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing additional params, check they are present in authorisation url for thirdparty provider google",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing additional params, check they are present in authorisation url for thirdparty provider google",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1436,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing scopes in config for thirdparty provider google",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing scopes in config for thirdparty provider google",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1363,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for third party provider facebook",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test minimum config for third party provider facebook",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1426,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing scopes in config for third party provider facebook",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing scopes in config for third party provider facebook",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1475,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for third party provider github",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test minimum config for third party provider github",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1529,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test additional params, check they are present in authorisation url for third party provider github",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test additional params, check they are present in authorisation url for third party provider github",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1563,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing scopes in config for third party provider github",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing scopes in config for third party provider github",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1318,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for third party provider apple",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test minimum config for third party provider apple",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1634,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing additional params, check they are present in authorisation url for third party provider apple",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing additional params, check they are present in authorisation url for third party provider apple",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1455,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing scopes in config for third party provider apple",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing scopes in config for third party provider apple",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1370,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing invalid privateKey in config for third party provider apple",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing invalid privateKey in config for third party provider apple",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test duplicate provider",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test duplicate provider",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1543,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that sign in up fails if validateAccessToken throws",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m Test that sign in up fails if validateAccessToken throws",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that sign in up works if validateAccessToken does not throw",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m Test that sign in up works if validateAccessToken does not throw",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1539,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "for ThirdParty user that isEmailVerified returns the correct email verification status",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/thirdparty/recipeFunctions.test.js]\u001b[0m for ThirdParty user that isEmailVerified returns the correct email verification status",
      "file": "/workspace/test/thirdparty/recipeFunctions.test.js",
      "duration": 1504,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with rid thirdpartypasswordless still works",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test with rid thirdpartypasswordless still works",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1754,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with rid thirdpartyemailpassword still works",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test with rid thirdpartyemailpassword still works",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1429,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that disable api, the default signinup API does not work",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test that disable api, the default signinup API does not work",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1609,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config without code for thirdparty module",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test minimum config without code for thirdparty module",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1544,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test missing redirectURIInfo and oAuthTokens",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test missing redirectURIInfo and oAuthTokens",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1507,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for thirdparty module",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test minimum config for thirdparty module",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1588,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for thirdparty module, email unverified",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test minimum config for thirdparty module, email unverified",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1451,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test thirdparty provider doesn't exist",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test thirdparty provider doesn't exist",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1497,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email not returned in getProfileInfo function",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test email not returned in getProfileInfo function",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1537,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test error thrown from getProfileInfo function",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test error thrown from getProfileInfo function",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1509,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid POST params for thirdparty module",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test invalid POST params for thirdparty module",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1664,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test handlePostSignUpIn gets set correctly",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test handlePostSignUpIn gets set correctly",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1456,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config with one provider",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test minimum config with one provider",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1607,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserCount and pagination works fine",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test getUserCount and pagination works fine",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1611,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "getUserById when user does not exist",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m getUserById when user does not exist",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1660,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserByThirdPartyInfo when user does not exist",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test getUserByThirdPartyInfo when user does not exist",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1520,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the default route and it should revoke the session",
      "fullTitle": "signoutTest: \u001b[33;3;2m[test/thirdparty/signoutFeature.test.js]\u001b[0m test the default route and it should revoke the session",
      "file": "/workspace/test/thirdparty/signoutFeature.test.js",
      "duration": 1873,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that disabling default route and calling the API returns 404",
      "fullTitle": "signoutTest: \u001b[33;3;2m[test/thirdparty/signoutFeature.test.js]\u001b[0m test that disabling default route and calling the API returns 404",
      "file": "/workspace/test/thirdparty/signoutFeature.test.js",
      "duration": 1550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that calling the API without a session should return 401",
      "fullTitle": "signoutTest: \u001b[33;3;2m[test/thirdparty/signoutFeature.test.js]\u001b[0m test that calling the API without a session should return 401",
      "file": "/workspace/test/thirdparty/signoutFeature.test.js",
      "duration": 1551,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that signout API reutrns try refresh token, refresh session and signout should return OK",
      "fullTitle": "signoutTest: \u001b[33;3;2m[test/thirdparty/signoutFeature.test.js]\u001b[0m test that signout API reutrns try refresh token, refresh session and signout should return OK",
      "file": "/workspace/test/thirdparty/signoutFeature.test.js",
      "duration": 6700,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersOldestFirst",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/thirdparty/users.test.js]\u001b[0m test getUsersOldestFirst",
      "file": "/workspace/test/thirdparty/users.test.js",
      "duration": 1686,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersNewestFirst",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/thirdparty/users.test.js]\u001b[0m test getUsersNewestFirst",
      "file": "/workspace/test/thirdparty/users.test.js",
      "duration": 1731,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserCount",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/thirdparty/users.test.js]\u001b[0m test getUserCount",
      "file": "/workspace/test/thirdparty/users.test.js",
      "duration": 1505,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test create device",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test create device",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 1471,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test update device",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test update device",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 1504,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test remove device",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test remove device",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 1422,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verify device",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test verify device",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 1470,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verify totp",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test verify totp",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 6467,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid totp",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test invalid totp",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 6527,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a userId mapping",
      "fullTitle": "createUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/createUserIdMapping.test.js]\u001b[0m createUserIdMappingTest create a userId mapping",
      "file": "/workspace/test/useridmapping/createUserIdMapping.test.js",
      "duration": 1504,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a userId mapping with an unknown superTokensUserId",
      "fullTitle": "createUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/createUserIdMapping.test.js]\u001b[0m createUserIdMappingTest create a userId mapping with an unknown superTokensUserId",
      "file": "/workspace/test/useridmapping/createUserIdMapping.test.js",
      "duration": 1385,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a userId mapping when a mapping already exists",
      "fullTitle": "createUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/createUserIdMapping.test.js]\u001b[0m createUserIdMappingTest create a userId mapping when a mapping already exists",
      "file": "/workspace/test/useridmapping/createUserIdMapping.test.js",
      "duration": 1442,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a userId mapping when userId already has usermetadata with and without force",
      "fullTitle": "createUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/createUserIdMapping.test.js]\u001b[0m createUserIdMappingTest create a userId mapping when userId already has usermetadata with and without force",
      "file": "/workspace/test/useridmapping/createUserIdMapping.test.js",
      "duration": 1730,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete an unknown userId mapping",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete an unknown userId mapping",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1610,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a userId mapping with userIdType as SUPERTOKENS",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete a userId mapping with userIdType as SUPERTOKENS",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1500,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a userId mapping with userIdType as EXTERNAL",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete a userId mapping with userIdType as EXTERNAL",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a userId mapping with userIdType as ANY",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete a userId mapping with userIdType as ANY",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1557,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a userId mapping when userMetadata exists with externalId with and without force",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete a userId mapping when userMetadata exists with externalId with and without force",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1677,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get userId mapping",
      "fullTitle": "getUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/getUserIdMapping.test.js]\u001b[0m getUserIdMappingTest get userId mapping",
      "file": "/workspace/test/useridmapping/getUserIdMapping.test.js",
      "duration": 1541,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get userId mapping when mapping does not exist",
      "fullTitle": "getUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/getUserIdMapping.test.js]\u001b[0m getUserIdMappingTest get userId mapping when mapping does not exist",
      "file": "/workspace/test/useridmapping/getUserIdMapping.test.js",
      "duration": 1586,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get userId mapping when externalUserIdInfo does not exist",
      "fullTitle": "getUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/getUserIdMapping.test.js]\u001b[0m getUserIdMappingTest get userId mapping when externalUserIdInfo does not exist",
      "file": "/workspace/test/useridmapping/getUserIdMapping.test.js",
      "duration": 1542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, retrieve the user info using getUserById and check that the externalId is returned",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m getUserById create an emailPassword user and map their userId, retrieve the user info using getUserById and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1508,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, retrieve the user info using getUserByEmail and check that the externalId is returned",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m getUserByEmail create an emailPassword user and map their userId, retrieve the user info using getUserByEmail and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1433,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, signIn, check that the userRetrieved has the mapped userId",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m signIn create an emailPassword user and map their userId, signIn, check that the userRetrieved has the mapped userId",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1628,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, and do a password reset using the external id, check that it gets reset",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m password reset create an emailPassword user and map their userId, and do a password reset using the external id, check that it gets reset",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1494,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, update their email and password using the externalId",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m update email and password create an emailPassword user and map their userId, update their email and password using the externalId",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1692,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, signIn again and check that the externalId is returned",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m consumeCode create a passwordless user and map their userId, signIn again and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1669,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, call getUserById and check that the externalId is returned",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m getUserById create a passwordless user and map their userId, call getUserById and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1736,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, call getUserByEmail and check that the externalId is returned",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m getUserByEmail create a passwordless user and map their userId, call getUserByEmail and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1553,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, call getUserByPhoneNumber and check that the externalId is returned",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m getUserByPhoneNumber create a passwordless user and map their userId, call getUserByPhoneNumber and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1554,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, call updateUser to add their email and retrieve the user to see if the changes are reflected",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m updateUser create a passwordless user and map their userId, call updateUser to add their email and retrieve the user to see if the changes are reflected",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1546,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, then delete user with the externalId",
      "fullTitle": "userIdMapping with supertokens recipe: \u001b[33;3;2m[test/useridmapping/recipeTests/supertokens.test.js]\u001b[0m deleteUser create an emailPassword user and map their userId, then delete user with the externalId",
      "file": "/workspace/test/useridmapping/recipeTests/supertokens.test.js",
      "duration": 1590,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create multiple users and map one of the users userId, retrieve all users and check that response will contain the externalId for the mapped user",
      "fullTitle": "userIdMapping with supertokens recipe: \u001b[33;3;2m[test/useridmapping/recipeTests/supertokens.test.js]\u001b[0m getUsers create multiple users and map one of the users userId, retrieve all users and check that response will contain the externalId for the mapped user",
      "file": "/workspace/test/useridmapping/recipeTests/supertokens.test.js",
      "duration": 1711,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a thirdParty user and map their userId, signIn and check that the externalId is returned",
      "fullTitle": "userIdMapping with thirdparty: \u001b[33;3;2m[test/useridmapping/recipeTests/thirdparty.test.js]\u001b[0m signInUp create a thirdParty user and map their userId, signIn and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/thirdparty.test.js",
      "duration": 1526,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a thirdParty user and map their userId, retrieve the user info using getUserById and check that the externalId is returned",
      "fullTitle": "userIdMapping with thirdparty: \u001b[33;3;2m[test/useridmapping/recipeTests/thirdparty.test.js]\u001b[0m getUserById create a thirdParty user and map their userId, retrieve the user info using getUserById and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/thirdparty.test.js",
      "duration": 1480,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a thirdParty user and map their userId, retrieve the user info using getUsersByEmail and check that the externalId is returned",
      "fullTitle": "userIdMapping with thirdparty: \u001b[33;3;2m[test/useridmapping/recipeTests/thirdparty.test.js]\u001b[0m getUsersByEmail create a thirdParty user and map their userId, retrieve the user info using getUsersByEmail and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/thirdparty.test.js",
      "duration": 1503,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a thirdParty user and map their userId, retrieve the user info using getUserByThirdPartyInfo and check that the externalId is returned",
      "fullTitle": "userIdMapping with thirdparty: \u001b[33;3;2m[test/useridmapping/recipeTests/thirdparty.test.js]\u001b[0m getUserByThirdPartyInfo create a thirdParty user and map their userId, retrieve the user info using getUserByThirdPartyInfo and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/thirdparty.test.js",
      "duration": 1551,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "update externalUserId mapping info with unknown userId",
      "fullTitle": "updateOrDeleteUserIdMappingInfoTest: \u001b[33;3;2m[test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js]\u001b[0m updateOrDeleteUserIdMappingInfoTest update externalUserId mapping info with unknown userId",
      "file": "/workspace/test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js",
      "duration": 1411,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "update externalUserId mapping info with userIdType as SUPERTOKENS and EXTERNAL",
      "fullTitle": "updateOrDeleteUserIdMappingInfoTest: \u001b[33;3;2m[test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js]\u001b[0m updateOrDeleteUserIdMappingInfoTest update externalUserId mapping info with userIdType as SUPERTOKENS and EXTERNAL",
      "file": "/workspace/test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js",
      "duration": 1486,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "update externalUserId mapping info with userIdType as ANY",
      "fullTitle": "updateOrDeleteUserIdMappingInfoTest: \u001b[33;3;2m[test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js]\u001b[0m updateOrDeleteUserIdMappingInfoTest update externalUserId mapping info with userIdType as ANY",
      "file": "/workspace/test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js",
      "duration": 1613,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return OK for unknown user id",
      "fullTitle": "clearUserMetadataTest: \u001b[33;3;2m[test/usermetadata/clearUserMetadata.test.js]\u001b[0m clearUserMetadata should return OK for unknown user id",
      "file": "/workspace/test/usermetadata/clearUserMetadata.test.js",
      "duration": 1509,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear stored userId",
      "fullTitle": "clearUserMetadataTest: \u001b[33;3;2m[test/usermetadata/clearUserMetadata.test.js]\u001b[0m clearUserMetadata should clear stored userId",
      "file": "/workspace/test/usermetadata/clearUserMetadata.test.js",
      "duration": 1555,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work fine without config",
      "fullTitle": "configTest: \u001b[33;3;2m[test/usermetadata/config.test.js]\u001b[0m recipe init should work fine without config",
      "file": "/workspace/test/usermetadata/config.test.js",
      "duration": 1520,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return an empty object for unknown userIds",
      "fullTitle": "getUserMetadataTest: \u001b[33;3;2m[test/usermetadata/getUserMetadata.test.js]\u001b[0m getUserMetadata should return an empty object for unknown userIds",
      "file": "/workspace/test/usermetadata/getUserMetadata.test.js",
      "duration": 1798,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return an object if it's created.",
      "fullTitle": "getUserMetadataTest: \u001b[33;3;2m[test/usermetadata/getUserMetadata.test.js]\u001b[0m getUserMetadata should return an object if it's created.",
      "file": "/workspace/test/usermetadata/getUserMetadata.test.js",
      "duration": 1470,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work without an override config",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/usermetadata/override.test.js]\u001b[0m recipe functions should work without an override config",
      "file": "/workspace/test/usermetadata/override.test.js",
      "duration": 1641,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should call user provided overrides",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/usermetadata/override.test.js]\u001b[0m recipe functions should call user provided overrides",
      "file": "/workspace/test/usermetadata/override.test.js",
      "duration": 1592,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create metadata for unknown user id",
      "fullTitle": "updateUserMetadataTest: \u001b[33;3;2m[test/usermetadata/updateUserMetadata.test.js]\u001b[0m updateUserMetadata should create metadata for unknown user id",
      "file": "/workspace/test/usermetadata/updateUserMetadata.test.js",
      "duration": 1538,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create metadata with utf8 encoding",
      "fullTitle": "updateUserMetadataTest: \u001b[33;3;2m[test/usermetadata/updateUserMetadata.test.js]\u001b[0m updateUserMetadata should create metadata with utf8 encoding",
      "file": "/workspace/test/usermetadata/updateUserMetadata.test.js",
      "duration": 1540,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create metadata for cleared user id",
      "fullTitle": "updateUserMetadataTest: \u001b[33;3;2m[test/usermetadata/updateUserMetadata.test.js]\u001b[0m updateUserMetadata should create metadata for cleared user id",
      "file": "/workspace/test/usermetadata/updateUserMetadata.test.js",
      "duration": 1586,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update metadata by shallow merge",
      "fullTitle": "updateUserMetadataTest: \u001b[33;3;2m[test/usermetadata/updateUserMetadata.test.js]\u001b[0m updateUserMetadata should update metadata by shallow merge",
      "file": "/workspace/test/usermetadata/updateUserMetadata.test.js",
      "duration": 1481,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add a role to a user",
      "fullTitle": "addRoleToUserTest: \u001b[33;3;2m[test/userroles/addRoleToUser.test.js]\u001b[0m addRoleToUserTest add a role to a user",
      "file": "/workspace/test/userroles/addRoleToUser.test.js",
      "duration": 1535,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add duplicate role to the user",
      "fullTitle": "addRoleToUserTest: \u001b[33;3;2m[test/userroles/addRoleToUser.test.js]\u001b[0m addRoleToUserTest add duplicate role to the user",
      "file": "/workspace/test/userroles/addRoleToUser.test.js",
      "duration": 1462,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add unknown role to the user",
      "fullTitle": "addRoleToUserTest: \u001b[33;3;2m[test/userroles/addRoleToUser.test.js]\u001b[0m addRoleToUserTest add unknown role to the user",
      "file": "/workspace/test/userroles/addRoleToUser.test.js",
      "duration": 1420,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should add claims to session without config",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m recipe init should add claims to session without config",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1530,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not add claims if disabled in config",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m recipe init should not add claims if disabled in config",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1688,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should add claims to session with values",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m recipe init should add claims to session with values",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1547,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate roles",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m validation should validate roles",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1519,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate roles after refetching",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m validation should validate roles after refetching",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1527,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate permissions",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m validation should validate permissions",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1619,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate permissions after refetching",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m validation should validate permissions after refetching",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1800,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work fine without config",
      "fullTitle": "configTest: \u001b[33;3;2m[test/userroles/config.test.js]\u001b[0m recipe init should work fine without config",
      "file": "/workspace/test/userroles/config.test.js",
      "duration": 1665,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a new role",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions create a new role",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1513,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create the same role twice",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions create the same role twice",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1459,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a role with permissions",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions create a role with permissions",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1547,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add new permissions to a role",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions add new permissions to a role",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1509,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add duplicate permission",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions add duplicate permission",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1545,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create roles, add them to a user and delete one of the roles",
      "fullTitle": "deleteRole: \u001b[33;3;2m[test/userroles/deleteRole.test.js]\u001b[0m deleteRole create roles, add them to a user and delete one of the roles",
      "file": "/workspace/test/userroles/deleteRole.test.js",
      "duration": 1650,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a role that does not exist",
      "fullTitle": "deleteRole: \u001b[33;3;2m[test/userroles/deleteRole.test.js]\u001b[0m deleteRole delete a role that does not exist",
      "file": "/workspace/test/userroles/deleteRole.test.js",
      "duration": 1602,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get permissions for a role",
      "fullTitle": "getPermissionsForRole: \u001b[33;3;2m[test/userroles/getPermissionsForRole.test.js]\u001b[0m getPermissionsForRole get permissions for a role",
      "file": "/workspace/test/userroles/getPermissionsForRole.test.js",
      "duration": 1594,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get permissions for an unknown role",
      "fullTitle": "getPermissionsForRole: \u001b[33;3;2m[test/userroles/getPermissionsForRole.test.js]\u001b[0m getPermissionsForRole get permissions for an unknown role",
      "file": "/workspace/test/userroles/getPermissionsForRole.test.js",
      "duration": 1490,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create roles, add them to a user check that the user has the roles",
      "fullTitle": "getRolesForUser: \u001b[33;3;2m[test/userroles/getRolesForUser.test.js]\u001b[0m getRolesForUser create roles, add them to a user check that the user has the roles",
      "file": "/workspace/test/userroles/getRolesForUser.test.js",
      "duration": 1669,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get roles that have permissions",
      "fullTitle": "getRolesThatHavePermissions: \u001b[33;3;2m[test/userroles/getRolesThatHavePermissions.test.js]\u001b[0m getRolesThatHavePermissions get roles that have permissions",
      "file": "/workspace/test/userroles/getRolesThatHavePermissions.test.js",
      "duration": 1730,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get roles for unknown permission",
      "fullTitle": "getRolesThatHavePermissions: \u001b[33;3;2m[test/userroles/getRolesThatHavePermissions.test.js]\u001b[0m getRolesThatHavePermissions get roles for unknown permission",
      "file": "/workspace/test/userroles/getRolesThatHavePermissions.test.js",
      "duration": 1621,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get users for a role",
      "fullTitle": "getUsersThatHaveRole: \u001b[33;3;2m[test/userroles/getUsersThatHaveRole.test.js]\u001b[0m getUsersThatHaveRole get users for a role",
      "file": "/workspace/test/userroles/getUsersThatHaveRole.test.js",
      "duration": 1754,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get users for an unknown role",
      "fullTitle": "getUsersThatHaveRole: \u001b[33;3;2m[test/userroles/getUsersThatHaveRole.test.js]\u001b[0m getUsersThatHaveRole get users for an unknown role",
      "file": "/workspace/test/userroles/getUsersThatHaveRole.test.js",
      "duration": 1542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that different roles can be assigned for the same user for each tenant",
      "fullTitle": "multitenant role: \u001b[33;3;2m[test/userroles/multitenantRole.test.js]\u001b[0m test that different roles can be assigned for the same user for each tenant",
      "file": "/workspace/test/userroles/multitenantRole.test.js",
      "duration": 6522,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove permissions from a role",
      "fullTitle": "getPermissionsForRole: \u001b[33;3;2m[test/userroles/getPermissionsForRole.test.js]\u001b[0m getPermissionsForRole remove permissions from a role",
      "file": "/workspace/test/userroles/removePermissionsFromRole.test.js",
      "duration": 1882,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove permissions from an unknown role",
      "fullTitle": "getPermissionsForRole: \u001b[33;3;2m[test/userroles/getPermissionsForRole.test.js]\u001b[0m getPermissionsForRole remove permissions from an unknown role",
      "file": "/workspace/test/userroles/removePermissionsFromRole.test.js",
      "duration": 1538,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove role from user",
      "fullTitle": "removeUserRoleTest: \u001b[33;3;2m[test/userroles/removeUserRole.test.js]\u001b[0m removeUserRole remove role from user",
      "file": "/workspace/test/userroles/removeUserRole.test.js",
      "duration": 1621,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove a role the user does not have",
      "fullTitle": "removeUserRoleTest: \u001b[33;3;2m[test/userroles/removeUserRole.test.js]\u001b[0m removeUserRole remove a role the user does not have",
      "file": "/workspace/test/userroles/removeUserRole.test.js",
      "duration": 1533,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove an unknown role from the user",
      "fullTitle": "removeUserRoleTest: \u001b[33;3;2m[test/userroles/removeUserRole.test.js]\u001b[0m removeUserRole remove an unknown role from the user",
      "file": "/workspace/test/userroles/removeUserRole.test.js",
      "duration": 1752,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default config for webauthn module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/webauthn/config.test.js]\u001b[0m test default config for webauthn module",
      "file": "/workspace/test/webauthn/config.test.js",
      "duration": 1507,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test config for webauthn module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/webauthn/config.test.js]\u001b[0m test config for webauthn module",
      "file": "/workspace/test/webauthn/config.test.js",
      "duration": 1580,
      "currentRetry": 0,
      "err": {}
    }
  ],
  "pending": [
    {
      "title": "should go to next error handler when withSession is called without core",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m should go to next error handler when withSession is called without core",
      "file": "/workspace/test/nextjs.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "three cores and round robin",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m three cores and round robin",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "three cores, one dead and round robin",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m three cores, one dead and round robin",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with core base path",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test with core base path",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with incorrect core base path should fail",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test with incorrect core base path should fail",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with multiple core base path",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test with multiple core base path",
      "file": "/workspace/test/querier.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test reducing access token signing key update interval time",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m test reducing access token signing key update interval time",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing invalid privateKey in config for third party provider apple",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing invalid privateKey in config for third party provider apple",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "currentRetry": 0,
      "err": {}
    }
  ],
  "failures": [
    {
      "title": "test recipe functions",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/thirdparty/multitenancy.test.js]\u001b[0m test recipe functions",
      "file": "/workspace/test/thirdparty/multitenancy.test.js",
      "duration": 2873320,
      "currentRetry": 0,
      "err": {
        "stack": "Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)",
        "message": "Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)",
        "code": "ERR_MOCHA_TIMEOUT",
        "timeout": 40000,
        "file": "/workspace/test/thirdparty/multitenancy.test.js",
        "multiple": [
          {
            "code": "ERR_MOCHA_TIMEOUT",
            "timeout": 40000,
            "file": "/workspace/test/thirdparty/multitenancy.test.js",
            "multiple": "Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js),Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js),Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)"
          },
          "Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)",
          "Error: Timeout of 40000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/workspace/test/thirdparty/multitenancy.test.js)"
        ]
      }
    }
  ],
  "passes": [
    {
      "title": "should default to header based session w/ no auth-mode header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with default getTokenTransferMethod should default to header based session w/ no auth-mode header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 575,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should default to header based session w/ bad auth-mode header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with default getTokenTransferMethod should default to header based session w/ bad auth-mode header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 507,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use headers if auth-mode specifies it",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with default getTokenTransferMethod should use headers if auth-mode specifies it",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 395,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use cookies if auth-mode specifies it",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with default getTokenTransferMethod should use cookies if auth-mode specifies it",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 291,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use headers if getTokenTransferMethod returns any and there is no st-auth-mode header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use headers if getTokenTransferMethod returns any and there is no st-auth-mode header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 332,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use cookies if getTokenTransferMethod returns any and st-auth-mode is set to cookie",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use cookies if getTokenTransferMethod returns any and st-auth-mode is set to cookie",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 326,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use headers if getTokenTransferMethod returns any and st-auth-mode is set to header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use headers if getTokenTransferMethod returns any and st-auth-mode is set to header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 283,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use headers if getTokenTransferMethod returns header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use headers if getTokenTransferMethod returns header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 368,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use clear cookies (if present) if getTokenTransferMethod returns header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use clear cookies (if present) if getTokenTransferMethod returns header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 429,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use cookies if getTokenTransferMethod returns cookie",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should use cookies if getTokenTransferMethod returns cookie",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 659,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear headers (if present) if getTokenTransferMethod returns cookie",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod createNewSession with user provided getTokenTransferMethod should clear headers (if present) if getTokenTransferMethod returns cookie",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 491,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject requests with sIdRefreshToken",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession should reject requests with sIdRefreshToken",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 217,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 1 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 1 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 1 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 1 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3261,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 2 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 2 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 479,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 2 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 2 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3283,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 3 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 3 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 381,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 3 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 3 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3207,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 4 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 4 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 402,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 4 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 4 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3347,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 5 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 5 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 735,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 5 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 5 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3317,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 6 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 6 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 294,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 6 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 6 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3357,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 7 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 7 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 7 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 7 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3362,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 8 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 8 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 292,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 8 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 8 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3298,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 9 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 9 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 216,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 9 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 9 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3218,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 10 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 10 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 259,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 10 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 10 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3269,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 11 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 11 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 337,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 11 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 11 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3249,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 12 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 12 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 254,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 12 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 12 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3308,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 13 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 13 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 371,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 13 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 13 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3359,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 14 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 14 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 14 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 14 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3227,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 15 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 15 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 296,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 15 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 15 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3323,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 16 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 16 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 344,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 16 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 16 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3458,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 17 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 17 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 257,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 17 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 17 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3488,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 18 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 18 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 420,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 18 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 18 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3441,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 19 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 19 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 327,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 19 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 19 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3411,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 20 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 20 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 354,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 20 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 20 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3439,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 21 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 21 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 348,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 21 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 21 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3475,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 22 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 22 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 407,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 22 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 22 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3215,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 23 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 23 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 253,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 23 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 23 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3307,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 24 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 24 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 303,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 24 with a expired token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession from behaviour table should match line 24 with a expired token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 3469,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use the value from headers if getTokenTransferMethod returns any",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with access tokens in both headers and cookies should use the value from headers if getTokenTransferMethod returns any",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 407,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use the value from headers if getTokenTransferMethod returns header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with access tokens in both headers and cookies should use the value from headers if getTokenTransferMethod returns header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 321,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use the value from cookies if getTokenTransferMethod returns cookie",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with access tokens in both headers and cookies should use the value from cookies if getTokenTransferMethod returns cookie",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 344,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use the value from cookies if present and getTokenTransferMethod returns any",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with non ST in Authorize header should use the value from cookies if present and getTokenTransferMethod returns any",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 444,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with UNAUTHORISED if getTokenTransferMethod returns header",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with non ST in Authorize header should reject with UNAUTHORISED if getTokenTransferMethod returns header",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 331,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with UNAUTHORISED if cookies are not present",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod verifySession with non ST in Authorize header should reject with UNAUTHORISED if cookies are not present",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 207,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update cookies if the session was cookie based",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod mergeIntoAccessTokenPayload should update cookies if the session was cookie based",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 662,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow headers if the session was header based",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod mergeIntoAccessTokenPayload should allow headers if the session was header based",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 292,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 1 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 1 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 299,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 2 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 2 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 506,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 3 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 3 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 292,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 4 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 4 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 412,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 5 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 5 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 315,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 6 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 6 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 420,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 7 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 7 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 295,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 8 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 8 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 298,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 9 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 9 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 332,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 10 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 10 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 433,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 11 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 11 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 353,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 12 with a valid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 12 with a valid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 338,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 1 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 1 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 455,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 2 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 2 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 548,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 3 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 3 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 317,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 4 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 4 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 386,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 5 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 5 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 403,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 6 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 6 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 354,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 7 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 7 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 222,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 8 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 8 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 394,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 9 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 9 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 289,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 10 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 10 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 179,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 11 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 11 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 316,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should match line 12 with a invalid token",
      "fullTitle": "auth-modes: \u001b[33;3;2m[test/auth-modes.test.js]\u001b[0m with default getTokenTransferMethod refreshSession from behaviour table should match line 12 with a invalid token",
      "file": "/workspace/test/auth-modes.test.js",
      "duration": 263,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test values for optional inputs for appInfo",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m test values for optional inputs for appInfo",
      "file": "/workspace/test/config.test.js",
      "duration": 301,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing .local tld",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing .local tld",
      "file": "/workspace/test/config.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test values for compulsory inputs for appInfo",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m test values for compulsory inputs for appInfo",
      "file": "/workspace/test/config.test.js",
      "duration": 255,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test using zero, one and two recipe modules",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m test using zero, one and two recipe modules",
      "file": "/workspace/test/config.test.js",
      "duration": 264,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test config for session module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m test config for session module",
      "file": "/workspace/test/config.test.js",
      "duration": 521,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "various sameSite values",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m various sameSite values",
      "file": "/workspace/test/config.test.js",
      "duration": 364,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sameSite none invalid domain values",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m sameSite none invalid domain values",
      "file": "/workspace/test/config.test.js",
      "duration": 428,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sameSite none valid domain values",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m sameSite none valid domain values",
      "file": "/workspace/test/config.test.js",
      "duration": 2,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing sessionScope normalisation",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing sessionScope normalisation",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing URL domain normalisation",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL domain normalisation",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "various config values",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m various config values",
      "file": "/workspace/test/config.test.js",
      "duration": 366,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing that the debug mode is set",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing that the debug mode is set",
      "file": "/workspace/test/config.test.js",
      "duration": 246,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing that the debug mode is set via env var",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing that the debug mode is set via env var",
      "file": "/workspace/test/config.test.js",
      "duration": 337,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "checking for default cookie config",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m checking for default cookie config",
      "file": "/workspace/test/config.test.js",
      "duration": 242,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the JWKS and OpenId endpoints are exposed by default",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that the JWKS and OpenId endpoints are exposed by default",
      "file": "/workspace/test/config.test.js",
      "duration": 321,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing getTopLevelDomainForSameSiteResolution function",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing getTopLevelDomainForSameSiteResolution function",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work well with ec2 public urls",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m should work well with ec2 public urls",
      "file": "/workspace/test/config.test.js",
      "duration": 525,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "apiGatewayPath test",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m apiGatewayPath test",
      "file": "/workspace/test/config.test.js",
      "duration": 314,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "checking for empty item in recipeList config",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m checking for empty item in recipeList config",
      "file": "/workspace/test/config.test.js",
      "duration": 337,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Check that telemetry is set to true properly",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Check that telemetry is set to true properly",
      "file": "/workspace/test/config.test.js",
      "duration": 211,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Check that telemetry is set to false by default",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Check that telemetry is set to false by default",
      "file": "/workspace/test/config.test.js",
      "duration": 296,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Check that telemetry is set to false properly",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Check that telemetry is set to false properly",
      "file": "/workspace/test/config.test.js",
      "duration": 333,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that init throws if both website domain and origin is undefined",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that init throws if both website domain and origin is undefined",
      "file": "/workspace/test/config.test.js",
      "duration": 635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that init works fine when using origin",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that init works fine when using origin",
      "file": "/workspace/test/config.test.js",
      "duration": 306,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that init works fine when using a function for origin",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that init works fine when using a function for origin",
      "file": "/workspace/test/config.test.js",
      "duration": 301,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that origin function returns correctly",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that origin function returns correctly",
      "file": "/workspace/test/config.test.js",
      "duration": 273,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that if both website domain and origin are provided, origin is used",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m Test that if both website domain and origin are provided, origin is used",
      "file": "/workspace/test/config.test.js",
      "duration": 440,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'exists?email=john.doe%40gmail.com' -> '/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'exists?email=john.doe%40gmail.com' -> '/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/auth/email/exists?email=john.doe%40gmail.com' -> '/auth/email/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/auth/email/exists?email=john.doe%40gmail.com' -> '/auth/email/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'exists' -> '/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'exists' -> '/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'eXiStS' -> '/eXiStS'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'eXiStS' -> '/eXiStS'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/exists' -> '/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/exists' -> '/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/eXiStS' -> '/eXiStS'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/eXiStS' -> '/eXiStS'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/exists?email=john.doe%40gmail.com' -> '/exists'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/exists?email=john.doe%40gmail.com' -> '/exists'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'https://api.example.com' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'https://api.example.com' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com?hello=1' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com?hello=1' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/hello' -> '/hello'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/hello' -> '/hello'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/HellO' -> '/HellO'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/HellO' -> '/HellO'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com:8080' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com:8080' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com#random2' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com#random2' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com#random' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com#random' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'.example.com' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '.example.com' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/?hello=1&bye=2' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/?hello=1&bye=2' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://1.2.3.4/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://1.2.3.4/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'1.2.3.4/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '1.2.3.4/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'https://api.example.com/one/two/' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'https://api.example.com/one/two/' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/one/two?hello=1' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/one/two?hello=1' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/hello/' -> '/hello'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/hello/' -> '/hello'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/one/two/' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/one/two/' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com:8080/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com:8080/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'http://api.example.com/one/two#random2' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'http://api.example.com/one/two#random2' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/one/two/#random' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/one/two/#random' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'.example.com/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '.example.com/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'api.example.com/one/two?hello=1&bye=2' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'api.example.com/one/two?hello=1&bye=2' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/two/' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/two/' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one' -> '/one'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one' -> '/one'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one' -> '/one'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one' -> '/one'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/' -> '/one'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/' -> '/one'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one/two/' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one/two/' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one/two?hello=1' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one/two?hello=1' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/two?hello=1' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/two?hello=1' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/one/two/#random' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/one/two/#random' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'one/two#random' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'one/two#random' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'localhost:4000/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'localhost:4000/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'127.0.0.1:4000/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '127.0.0.1:4000/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'127.0.0.1/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '127.0.0.1/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'https://127.0.0.1:80/one/two' -> '/one/two'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'https://127.0.0.1:80/one/two' -> '/one/two'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'' -> ''",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '' -> ''",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/.netlify/functions/api' -> '/.netlify/functions/api'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/.netlify/functions/api' -> '/.netlify/functions/api'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/netlify/.functions/api' -> '/netlify/.functions/api'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/netlify/.functions/api' -> '/netlify/.functions/api'",
      "file": "/workspace/test/config.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'app.example.com/.netlify/functions/api' -> '/.netlify/functions/api'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'app.example.com/.netlify/functions/api' -> '/.netlify/functions/api'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'app.example.com/netlify/.functions/api' -> '/netlify/.functions/api'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation 'app.example.com/netlify/.functions/api' -> '/netlify/.functions/api'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "'/app.example.com' -> '/app.example.com'",
      "fullTitle": "configTest: \u001b[33;3;2m[test/config.test.js]\u001b[0m testing URL path normalisation '/app.example.com' -> '/app.example.com'",
      "file": "/workspace/test/config.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should sign-up successfully",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should sign-up successfully",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 79,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should sign-in successfully",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should sign-in successfully",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 63,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withSession should create a session properly",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m withSession should create a session properly",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 65,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withSession should pass error when session fails",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m withSession should pass error when session fails",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 52,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return 404 for unhandled routes",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should return 404 for unhandled routes",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "getSessionForSSR should return session for valid token",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m getSessionForSSR should return session for valid token",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 55,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined accessTokenPayload and hasToken as false when no token is present",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should return undefined accessTokenPayload and hasToken as false when no token is present",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return an error for an invalid token",
      "fullTitle": "handleAuthAPIRequest \u001b[33;3;2m[test/customFramework.test.js]\u001b[0m should return an error for an invalid token",
      "file": "/workspace/test/customFramework.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that normalised config is generated correctly",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m Test that normalised config is generated correctly",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 1561,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get user info with first&last names",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should get user info with first&last names",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 1039,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reset password of linked user",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should reset password of linked user",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 1131,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should link accounts after verification",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should link accounts after verification",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 721,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should delete all linked users if removeAllLinkedAccounts is true",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should delete all linked users if removeAllLinkedAccounts is true",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 897,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not delete all linked users if removeAllLinkedAccounts is false when deleting the primary user",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should not delete all linked users if removeAllLinkedAccounts is false when deleting the primary user",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 823,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not delete all linked users if removeAllLinkedAccounts is false when deleting the recipe user",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m with account linking should not delete all linked users if removeAllLinkedAccounts is false when deleting the recipe user",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 832,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should respond with error if userId is missing",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m deleteUser should respond with error if userId is missing",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 848,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should respond with error if userId is empty",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m deleteUser should respond with error if userId is empty",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 702,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should respond with error if another user exists with the same email",
      "fullTitle": "dashboard: \u001b[33;3;2m[test/dashboard.test.js]\u001b[0m userPut should respond with error if another user exists with the same email",
      "file": "/workspace/test/dashboard.test.js",
      "duration": 844,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should serialize with the proper message",
      "fullTitle": "SuperTokensError should serialize with the proper message",
      "file": "/workspace/test/error.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test humanise milliseconds",
      "fullTitle": "Humanise: \u001b[33;3;2m[test/humanise.test.js]\u001b[0m test humanise milliseconds",
      "file": "/workspace/test/humanise.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that importing all build files independently does not cause errors",
      "fullTitle": "importTests: \u001b[33;3;2m[test/import.test.js]\u001b[0m Test that importing all build files independently does not cause errors",
      "file": "/workspace/test/import.test.js",
      "duration": 21840,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "network interceptor sanity",
      "fullTitle": "interceptor: \u001b[33;3;2m[test/interceptor.test.js]\u001b[0m network interceptor sanity",
      "file": "/workspace/test/interceptor.test.js",
      "duration": 371,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "network interceptor - incorrect core url",
      "fullTitle": "interceptor: \u001b[33;3;2m[test/interceptor.test.js]\u001b[0m network interceptor - incorrect core url",
      "file": "/workspace/test/interceptor.test.js",
      "duration": 283,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "network interceptor - incorrect query params",
      "fullTitle": "interceptor: \u001b[33;3;2m[test/interceptor.test.js]\u001b[0m network interceptor - incorrect query params",
      "file": "/workspace/test/interceptor.test.js",
      "duration": 321,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "network interceptor - incorrect request body",
      "fullTitle": "interceptor: \u001b[33;3;2m[test/interceptor.test.js]\u001b[0m network interceptor - incorrect request body",
      "file": "/workspace/test/interceptor.test.js",
      "duration": 311,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test disabling default API actually disables it",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test disabling default API actually disables it",
      "file": "/workspace/test/middleware.test.js",
      "duration": 485,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware",
      "file": "/workspace/test/middleware.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with auto refresh",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with auto refresh",
      "file": "/workspace/test/middleware.test.js",
      "duration": 2385,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with driver config",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with driver config",
      "file": "/workspace/test/middleware.test.js",
      "duration": 2420,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with driver config with auto refresh",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with driver config with auto refresh",
      "file": "/workspace/test/middleware.test.js",
      "duration": 2335,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with expired access token and session required false",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with expired access token and session required false",
      "file": "/workspace/test/middleware.test.js",
      "duration": 5353,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with old access token and session required false",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with old access token and session required false",
      "file": "/workspace/test/middleware.test.js",
      "duration": 404,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware with no session and session required false",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware with no session and session required false",
      "file": "/workspace/test/middleware.test.js",
      "duration": 447,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware without error handler added",
      "fullTitle": "middleware: \u001b[33;3;2m[test/middleware.test.js]\u001b[0m test session verify middleware without error handler added",
      "file": "/workspace/test/middleware.test.js",
      "duration": 2515,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test rid with session and non existant API in session recipe still works if the other recipe is initialized",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test rid with session and non existant API in session recipe still works if the other recipe is initialized",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 428,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test no rid with existent API does not give 404",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test no rid with existent API does not give 404",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 319,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test wrong rid with existent API works",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test wrong rid with existent API works",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 573,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test random rid with existent API works",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test random rid with existent API works",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 316,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test wrong rid returns 404 if recipe missing",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test wrong rid returns 404 if recipe missing",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 353,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test rid as anti-csrf with existent API does not give 404",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test rid as anti-csrf with existent API does not give 404",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 297,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test random rid with existent API still works",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m test random rid with existent API still works",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 363,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "custom response express",
      "fullTitle": "middleware2: \u001b[33;3;2m[test/middleware2.test.js]\u001b[0m custom response express",
      "file": "/workspace/test/middleware2.test.js",
      "duration": 302,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test APIs work with tenantId in the request",
      "fullTitle": "middleware3: \u001b[33;3;2m[test/middleware3.test.js]\u001b[0m test APIs work with tenantId in the request",
      "file": "/workspace/test/middleware3.test.js",
      "duration": 404,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test Dashboard APIs match with tenantId",
      "fullTitle": "middleware3: \u001b[33;3;2m[test/middleware3.test.js]\u001b[0m test Dashboard APIs match with tenantId",
      "file": "/workspace/test/middleware3.test.js",
      "duration": 508,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign Up",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Sign Up",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 42,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign In",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Sign In",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 64,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Reset Password - Send Email",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Reset Password - Send Email",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 53,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Reset Password - Create new password",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Reset Password - Create new password",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 35,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "does Email Exist with existing email",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper does Email Exist with existing email",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 35,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "does Email Exist with unknown email",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper does Email Exist with unknown email",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 32,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Verify session successfully when session is present (check if it continues after)",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Verify session successfully when session is present (check if it continues after)",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 26,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Create new session",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper Create new session",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 36,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing JSON body",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper, body parser tests testing JSON body",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 28,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing apple redirect (form data body)",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper, body parser tests testing apple redirect (form data body)",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 30,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign Up",
      "fullTitle": "Next.js Pages Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m with superTokensNextWrapper, overriding throws error Sign Up",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 26,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign Up",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m Sign Up",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 37,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Sign In",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m Sign In",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 73,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "getSSRSession",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m getSSRSession",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 3042,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withSession",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m withSession",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 3041,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withSession with updated access token payload should be correctly returned",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m withSession with updated access token payload should be correctly returned",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 40,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "withPreParsedRequestResponse",
      "fullTitle": "Next.js App Router: \u001b[33;3;2m[test/nextjs.test.js]\u001b[0m withPreParsedRequestResponse",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 33,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should successfully refresh session",
      "fullTitle": "session refresh test should successfully refresh session",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 29,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return hasToken value correctly",
      "fullTitle": "getSSRSession:hasToken tokenTransferMethod = any should return hasToken value correctly",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 26,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return hasToken value correctly",
      "fullTitle": "getSSRSession:hasToken tokenTransferMethod = cookie should return hasToken value correctly",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 27,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw st-ev claim has expired for unverified email",
      "fullTitle": "with email verification should throw st-ev claim has expired should throw st-ev claim has expired for unverified email",
      "file": "/workspace/test/nextjs.test.js",
      "duration": 31,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if that once API version is there, it doesn't need to query again",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that if that once API version is there, it doesn't need to query again",
      "file": "/workspace/test/querier.test.js",
      "duration": 2015,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that rid is added to the header if it's a recipe request",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that rid is added to the header if it's a recipe request",
      "file": "/workspace/test/querier.test.js",
      "duration": 16,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "core not available",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m core not available",
      "file": "/workspace/test/querier.test.js",
      "duration": 4,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that no connectionURI given, but recipe used throws an error",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that no connectionURI given, but recipe used throws an error",
      "file": "/workspace/test/querier.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that no connectionURI given, recipe override and used doesn't thrown an error",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that no connectionURI given, recipe override and used doesn't thrown an error",
      "file": "/workspace/test/querier.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that no-cache header is added when querying the core",
      "fullTitle": "Querier: \u001b[33;3;2m[test/querier.test.js]\u001b[0m test that no-cache header is added when querying the core",
      "file": "/workspace/test/querier.test.js",
      "duration": 4,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that network call is retried properly",
      "fullTitle": "Querier rate limiting: \u001b[33;3;2m[test/ratelimiting.test.js]\u001b[0m Test that network call is retried properly",
      "file": "/workspace/test/ratelimiting.test.js",
      "duration": 2874,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that rate limiting errors are thrown back to the user",
      "fullTitle": "Querier rate limiting: \u001b[33;3;2m[test/ratelimiting.test.js]\u001b[0m Test that rate limiting errors are thrown back to the user",
      "file": "/workspace/test/ratelimiting.test.js",
      "duration": 2593,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that parallel calls have independent retry counters",
      "fullTitle": "Querier rate limiting: \u001b[33;3;2m[test/ratelimiting.test.js]\u001b[0m Test that parallel calls have independent retry counters",
      "file": "/workspace/test/ratelimiting.test.js",
      "duration": 2604,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "calling init multiple times",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m calling init multiple times",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that querier has been initiated when we call supertokens.init",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test that querier has been initiated when we call supertokens.init",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that modules have been initiated when we call supertokens.init",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test that modules have been initiated when we call supertokens.init",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test various inputs to routing with default base path",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test various inputs to routing with default base path",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 11,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test various inputs to routing when base path is /",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test various inputs to routing when base path is /",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 7,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test routing with multiple recipes",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test routing with multiple recipes",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 4,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test various inputs to errorHandler",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test various inputs to errorHandler",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 3,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that error thrown from APIs implemented by recipes must not go unhandled",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test that error thrown from APIs implemented by recipes must not go unhandled",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 2,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test if you diable a default route, and then implement your own API, your own api is called",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test if you diable a default route, and then implement your own API, your own api is called",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 536,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test if the error handler in a recipe throws an error, it goes to the user's error handler",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test if the error handler in a recipe throws an error, it goes to the user's error handler",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 3,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the getAllCORSHeaders function",
      "fullTitle": "recipeModuleManagerTest: \u001b[33;3;2m[test/recipeModuleManager.test.js]\u001b[0m test the getAllCORSHeaders function",
      "file": "/workspace/test/recipeModuleManager.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that output headers and set cookie for create session is fine",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that output headers and set cookie for create session is fine",
      "file": "/workspace/test/session.test.js",
      "duration": 411,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that output headers and set cookie for refresh session is fine",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that output headers and set cookie for refresh session is fine",
      "file": "/workspace/test/session.test.js",
      "duration": 459,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that session tokens are cleared if refresh token api is called without the refresh token but with access token",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that session tokens are cleared if refresh token api is called without the refresh token but with access token",
      "file": "/workspace/test/session.test.js",
      "duration": 479,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that custom cookie format does nto throw an error during cookie parsing",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that custom cookie format does nto throw an error during cookie parsing",
      "file": "/workspace/test/session.test.js",
      "duration": 506,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that session tokens are cleared if refresh token api is called without the refresh token but with an expired access token",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that session tokens are cleared if refresh token api is called without the refresh token but with an expired access token",
      "file": "/workspace/test/session.test.js",
      "duration": 2510,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that access and refresh token for olderCookieDomain is cleared if multiple tokens are passed to the refresh endpoint",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that access and refresh token for olderCookieDomain is cleared if multiple tokens are passed to the refresh endpoint",
      "file": "/workspace/test/session.test.js",
      "duration": 431,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that refresh endpoint throws a 500 if multiple tokens are passed and olderCookieDomain is undefined",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that refresh endpoint throws a 500 if multiple tokens are passed and olderCookieDomain is undefined",
      "file": "/workspace/test/session.test.js",
      "duration": 439,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that verifySession returns 401 if multiple tokens are passed in the request",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that verifySession returns 401 if multiple tokens are passed in the request",
      "file": "/workspace/test/session.test.js",
      "duration": 441,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verifySession returns 200 in header based auth even if multiple tokens are present in the cookie",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test verifySession returns 200 in header based auth even if multiple tokens are present in the cookie",
      "file": "/workspace/test/session.test.js",
      "duration": 655,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that refresh endpoint refreshes the token in header based auth even if multiple tokens are present in the cookie",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that refresh endpoint refreshes the token in header based auth even if multiple tokens are present in the cookie",
      "file": "/workspace/test/session.test.js",
      "duration": 463,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if input cookies are missing, an appropriate error is thrown",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that if input cookies are missing, an appropriate error is thrown",
      "file": "/workspace/test/session.test.js",
      "duration": 405,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if input cookies are there, no error is thrown",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that if input cookies are there, no error is thrown",
      "file": "/workspace/test/session.test.js",
      "duration": 453,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/session.test.js",
      "duration": 473,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with API key",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m token theft detection with API key",
      "file": "/workspace/test/session.test.js",
      "duration": 390,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "query without API key",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m query without API key",
      "file": "/workspace/test/session.test.js",
      "duration": 477,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/session.test.js",
      "duration": 3521,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/session.test.js",
      "duration": 401,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/session.test.js",
      "duration": 501,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking of sessions",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test revoking of sessions",
      "file": "/workspace/test/session.test.js",
      "duration": 668,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/session.test.js",
      "duration": 398,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data with new get session function",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test manipulating session data with new get session function",
      "file": "/workspace/test/session.test.js",
      "duration": 442,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test null and undefined values passed for session data",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test null and undefined values passed for session data",
      "file": "/workspace/test/session.test.js",
      "duration": 510,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test null and undefined values passed for session data with new get session method",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test null and undefined values passed for session data with new get session method",
      "file": "/workspace/test/session.test.js",
      "duration": 479,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/session.test.js",
      "duration": 443,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload with new get session method",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test manipulating jwt payload with new get session method",
      "file": "/workspace/test/session.test.js",
      "duration": 482,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test null and undefined values passed for jwt payload",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test null and undefined values passed for jwt payload",
      "file": "/workspace/test/session.test.js",
      "duration": 428,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test null and undefined values passed for jwt payload with new get session method",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test null and undefined values passed for jwt payload with new get session method",
      "file": "/workspace/test/session.test.js",
      "duration": 426,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that when anti-csrf is disabled from ST core not having that in input to verify session is fine",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that when anti-csrf is disabled from ST core not having that in input to verify session is fine",
      "file": "/workspace/test/session.test.js",
      "duration": 533,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that anti-csrf disabled and sameSite none does not throw an error",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that anti-csrf disabled and sameSite none does not throw an error",
      "file": "/workspace/test/session.test.js",
      "duration": 447,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that anti-csrf disabled and sameSite lax does now throw an error",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that anti-csrf disabled and sameSite lax does now throw an error",
      "file": "/workspace/test/session.test.js",
      "duration": 415,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that anti-csrf disabled and sameSite strict does now throw an error",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that anti-csrf disabled and sameSite strict does now throw an error",
      "file": "/workspace/test/session.test.js",
      "duration": 486,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that custom user id is returned correctly",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that custom user id is returned correctly",
      "file": "/workspace/test/session.test.js",
      "duration": 385,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that get session by session handle payload is correct",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that get session by session handle payload is correct",
      "file": "/workspace/test/session.test.js",
      "duration": 430,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that revoked session throws error when calling get session by session handle",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m test that revoked session throws error when calling get session by session handle",
      "file": "/workspace/test/session.test.js",
      "duration": 491,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use override functions in sessioncontainer methods",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m should use override functions in sessioncontainer methods",
      "file": "/workspace/test/session.test.js",
      "duration": 427,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "invalid connectionURI should not cause init to throw",
      "fullTitle": "session: \u001b[33;3;2m[test/session.test.js]\u001b[0m invalid connectionURI should not cause init to throw",
      "file": "/workspace/test/session.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that if signing key changes, things are still fine",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m check that if signing key changes, things are still fine",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 12621,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that if signing key changes, after new key is fetched - via token query, old tokens don't query the core",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m check that if signing key changes, after new key is fetched - via token query, old tokens don't query the core",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 10605,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that if signing key changes, after new key is fetched - via creation of new token, old tokens don't query the core",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m check that if signing key changes, after new key is fetched - via creation of new token, old tokens don't query the core",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 10532,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that if signing key changes, after new key is fetched - via verification of old token, old tokens don't query the core",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m check that if signing key changes, after new key is fetched - via verification of old token, old tokens don't query the core",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 10630,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "no access token signing key update",
      "fullTitle": "sessionAccessTokenSigningKeyUpdate: \u001b[33;3;2m[test/sessionAccessTokenSigningKeyUpdate.test.js]\u001b[0m no access token signing key update",
      "file": "/workspace/test/sessionAccessTokenSigningKeyUpdate.test.js",
      "duration": 9615,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 559,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 513,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "express token theft detection",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m express token theft detection",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 416,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "express token theft detection with auto refresh middleware",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m express token theft detection with auto refresh middleware",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 480,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test basic usage of express sessions",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 3467,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions with headers",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test basic usage of express sessions with headers",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 3661,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if accessTokenPath is set to custom /access, then path of accessToken from session is equal to this",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that if accessTokenPath is set to custom /access, then path of accessToken from session is equal to this",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 439,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if default accessTokenPath is used, then path of accessToken from session is equal to slash",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that if default accessTokenPath is used, then path of accessToken from session is equal to slash",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 527,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 464,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works if even session is deleted on the backend after creation",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test signout API works if even session is deleted on the backend after creation",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 515,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions with auto refresh",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test basic usage of express sessions with auto refresh",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 3723,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test express session verify with anti-csrf present",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test express session verify with anti-csrf present",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 460,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present express",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test session verify without anti-csrf present express",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 634,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking express sessions",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking express sessions",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 682,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data with express",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test manipulating session data with express",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 629,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload with express",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test manipulating jwt payload with express",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 536,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that express appends to existing header params and does not override",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that express appends to existing header params and does not override",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 426,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that when anti-csrf is disabled from from ST core, not having to input in verify session is fine in express",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that when anti-csrf is disabled from from ST core, not having to input in verify session is fine in express",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 442,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that getSession does not clear cookies if a session does not exist in the first place",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that getSession does not clear cookies if a session does not exist in the first place",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 371,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that refreshSession does not clear cookies if a session does not exist in the first place",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that refreshSession does not clear cookies if a session does not exist in the first place",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 457,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that when anti-csrf is enabled with custom header, and we don't provide that in verifySession, we get try refresh token",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that when anti-csrf is enabled with custom header, and we don't provide that in verifySession, we get try refresh token",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 657,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test resfresh API when using CUSTOM HEADER anti-csrf",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test resfresh API when using CUSTOM HEADER anti-csrf",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 382,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that init can be called post route and middleware declaration",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test that init can be called post route and middleware declaration",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 448,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test overriding of sessions functions",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test overriding of sessions functions",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 3631,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test overriding of sessions apis",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test overriding of sessions apis",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 472,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test overriding of sessions functions, error thrown",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test overriding of sessions functions, error thrown",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 466,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test overriding of sessions apis, error thrown",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test overriding of sessions apis, error thrown",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that refresh doesn't clear cookies if missing anti csrf via custom header",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m check that refresh doesn't clear cookies if missing anti csrf via custom header",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 468,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "check that refresh doesn't clear cookies if missing anti csrf via token",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m check that refresh doesn't clear cookies if missing anti csrf via token",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 572,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session error handler overriding",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test session error handler overriding",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 5399,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session during refresh with revokeSession function",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking a session during refresh with revokeSession function",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 513,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session during refresh with revokeSession function and sending 401",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking a session during refresh with revokeSession function and sending 401",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 556,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session during refresh with throwing unauthorised error",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking a session during refresh with throwing unauthorised error",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 441,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session during refresh fails if just sending 401",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m test revoking a session during refresh fails if just sending 401",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 524,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that token transfer method works correctly when using origin function",
      "fullTitle": "sessionExpress: \u001b[33;3;2m[test/sessionExpress.test.js]\u001b[0m Test that token transfer method works correctly when using origin function",
      "file": "/workspace/test/sessionExpress.test.js",
      "duration": 577,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing context across interface and recipe function",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m testing context across interface and recipe function",
      "file": "/workspace/test/userContext.test.js",
      "duration": 520,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "testing default context across interface and recipe function",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m testing default context across interface and recipe function",
      "file": "/workspace/test/userContext.test.js",
      "duration": 651,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that SuperTokens.getRequestFromUserContext works as expected",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m Test that SuperTokens.getRequestFromUserContext works as expected",
      "file": "/workspace/test/userContext.test.js",
      "duration": 434,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that makeDefaultUserContext is not used anywhere apart from frameworks and a few other places",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m test that makeDefaultUserContext is not used anywhere apart from frameworks and a few other places",
      "file": "/workspace/test/userContext.test.js",
      "duration": 93,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test user context type usage everywhere",
      "fullTitle": "userContext: \u001b[33;3;2m[test/userContext.test.js]\u001b[0m test user context type usage everywhere",
      "file": "/workspace/test/userContext.test.js",
      "duration": 79,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test getFromObjectCaseInsensitive",
      "fullTitle": "SuperTokens utils test Test getFromObjectCaseInsensitive",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return \"localhost\" for localhost URLs",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should return \"localhost\" for localhost URLs",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return \"localhost\" for localhost.org URLs",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should return \"localhost\" for localhost.org URLs",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return \"localhost\" for IP addresses",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should return \"localhost\" for IP addresses",
      "file": "/workspace/test/utils.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return the correct domain for normal URLs",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should return the correct domain for normal URLs",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should handle .amazonaws.com domains correctly",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should handle .amazonaws.com domains correctly",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should handle .local domains correctly",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should handle .local domains correctly",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw an error for invalid domains",
      "fullTitle": "getTopLevelDomainForSameSiteResolution test should throw an error for invalid domains",
      "file": "/workspace/test/utils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test connectionURI contains http protocol",
      "fullTitle": "User Dashboard get: \u001b[33;3;2m[test/dashboard/dashboardGet.test.js]\u001b[0m Test connectionURI Test connectionURI contains http protocol",
      "file": "/workspace/test/dashboard/dashboardGet.test.js",
      "duration": 859,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test connectionURI contains https protocol",
      "fullTitle": "User Dashboard get: \u001b[33;3;2m[test/dashboard/dashboardGet.test.js]\u001b[0m Test connectionURI Test connectionURI contains https protocol",
      "file": "/workspace/test/dashboard/dashboardGet.test.js",
      "duration": 550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test multiple connection URIs",
      "fullTitle": "User Dashboard get: \u001b[33;3;2m[test/dashboard/dashboardGet.test.js]\u001b[0m Test connectionURI Test multiple connection URIs",
      "file": "/workspace/test/dashboard/dashboardGet.test.js",
      "duration": 542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that api returns correct value for email verification",
      "fullTitle": "User Dashboard userEmailVerifyGet: \u001b[33;3;2m[test/dashboard/userEmailVerifyGet.test.js]\u001b[0m Test that api returns correct value for email verification",
      "file": "/workspace/test/dashboard/userEmailVerifyGet.test.js",
      "duration": 523,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default config for emailpassword module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test default config for emailpassword module",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 421,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test config for emailpassword module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test config for emailpassword module",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 583,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that no email/password validators given should add them",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test that no email/password validators given should add them",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 814,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that giving optional true in email / password field should be ignored",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test that giving optional true in email / password field should be ignored",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 637,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that default password and email validators work fine",
      "fullTitle": "configTest: \u001b[33;3;2m[test/emailpassword/config.test.js]\u001b[0m test that default password and email validators work fine",
      "file": "/workspace/test/emailpassword/config.test.js",
      "duration": 617,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test deleteUser",
      "fullTitle": "deleteUser: \u001b[33;3;2m[test/emailpassword/deleteUser.test.js]\u001b[0m test deleteUser",
      "file": "/workspace/test/emailpassword/deleteUser.test.js",
      "duration": 741,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2442,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2454,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test backward compatibility: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2655,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: reset password (non existent user)",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test backward compatibility: reset password (non existent user)",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 4485,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test custom override: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2760,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test smtp service: reset password",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test smtp service: reset password",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2530,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 595,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 500,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test backward compatibility: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2545,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test custom override: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2510,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test smtp service: email verify",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test smtp service: email verify",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 2536,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test the reset password link",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m Test the reset password link",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 472,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test the reset password link for invalid input",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m Test the reset password link for invalid input",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 587,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sendResetPasswordEmail",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test sendResetPasswordEmail",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 659,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sendResetPasswordEmail: invalid input",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/emailpassword/emailDelivery.test.js]\u001b[0m test sendResetPasswordEmail: invalid input",
      "file": "/workspace/test/emailpassword/emailDelivery.test.js",
      "duration": 457,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email exists with new path",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email exists with new path",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 517,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default email exists API does not work",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test that if disabling api, the default email exists API does not work",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 438,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email exists",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email exists",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 450,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email does not exists",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email does not exists",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 508,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email exists a syntactically invalid email",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test email exists a syntactically invalid email",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 639,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sending an unnormalised email and you get exists is true",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test sending an unnormalised email and you get exists is true",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 591,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, do not pass email",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test bad input, do not pass email",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 487,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing an array instead of a string in the email",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test passing an array instead of a string in the email",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 564,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email exists, with bodyParser applied before",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email exists, with bodyParser applied before",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good input, email exists, with bodyParser applied after",
      "fullTitle": "emailExists: \u001b[33;3;2m[test/emailpassword/emailExists.test.js]\u001b[0m test good input, email exists, with bodyParser applied after",
      "file": "/workspace/test/emailpassword/emailExists.test.js",
      "duration": 756,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, email not verified",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, email not verified",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 989,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, email verified and test error",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, email verified and test error",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, no session and check output",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, no session and check output",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 459,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with an expired access token and see that try refresh token is returned",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with an expired access token and see that try refresh token is returned",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 6636,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that providing your own email callback and make sure it is called",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test that providing your own email callback and make sure it is called",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1026,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1027,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with invalid token and check error",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with invalid token and check error",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 476,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with token of not type string",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with token of not type string",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 540,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that the handlePostEmailVerification callback is called on successfull verification, if given",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test that the handlePostEmailVerification callback is called on successfull verification, if given",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1737,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify with valid input, using the get method",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify with valid input, using the get method",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1132,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify with no session, using the get method",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify with no session, using the get method",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 698,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify with an expired access token, using the get method",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify with an expired access token, using the get method",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 6164,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input, overriding apis",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input, overriding apis",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1207,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input, overriding functions",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input, overriding functions",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1124,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input, overriding apis throws error",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input, overriding apis throws error",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1031,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with valid input, overriding functions throws error",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with valid input, overriding functions throws error",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1099,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, and then remove token",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, and then remove token",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 581,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the generate token api with valid input, verify and then unverify email",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the generate token api with valid input, verify and then unverify email",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 687,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the email verify API with deleted user",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test the email verify API with deleted user",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 1001,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that generate email verification token API updates session claims",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test that generate email verification token API updates session claims",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 2779,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that generate email verification token API updates session claims",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/emailpassword/emailverify.test.js]\u001b[0m test that generate email verification token API updates session claims",
      "file": "/workspace/test/emailpassword/emailverify.test.js",
      "duration": 466,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "checking email validator",
      "fullTitle": "formFieldValidator: \u001b[33;3;2m[test/emailpassword/formFieldValidator.test.js]\u001b[0m checking email validator",
      "file": "/workspace/test/emailpassword/formFieldValidator.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "checking password validator",
      "fullTitle": "formFieldValidator: \u001b[33;3;2m[test/emailpassword/formFieldValidator.test.js]\u001b[0m checking password validator",
      "file": "/workspace/test/emailpassword/formFieldValidator.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test recipe functions",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/emailpassword/multitenancy.test.js]\u001b[0m test recipe functions",
      "file": "/workspace/test/emailpassword/multitenancy.test.js",
      "duration": 2636,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding functions tests",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/emailpassword/override.test.js]\u001b[0m overriding functions tests",
      "file": "/workspace/test/emailpassword/override.test.js",
      "duration": 529,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding api tests",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/emailpassword/override.test.js]\u001b[0m overriding api tests",
      "file": "/workspace/test/emailpassword/override.test.js",
      "duration": 645,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding functions tests, throws error",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/emailpassword/override.test.js]\u001b[0m overriding functions tests, throws error",
      "file": "/workspace/test/emailpassword/override.test.js",
      "duration": 618,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding api tests, throws error",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/emailpassword/override.test.js]\u001b[0m overriding api tests, throws error",
      "file": "/workspace/test/emailpassword/override.test.js",
      "duration": 559,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email validation checks in generate token API",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test email validation checks in generate token API",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 726,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid email type in generate token API",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test invalid email type in generate token API",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that generated password link is correct",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test that generated password link is correct",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 577,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test password validation",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test password validation",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 596,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid type of password",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test invalid type of password",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 514,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test token missing from input",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test token missing from input",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 463,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid token input",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test invalid token input",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 763,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid token input and passoword has changed with email verification",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test valid token input and passoword has changed with email verification",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 645,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid token input and passoword has changed without email verification",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test valid token input and passoword has changed without email verification",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 728,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that reset password link uses the correct origin",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m Test that reset password link uses the correct origin",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 679,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the reset password link",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test the reset password link",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 572,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the reset password link for invalid input",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test the reset password link for invalid input",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 501,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sendResetPasswordEmail",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test sendResetPasswordEmail",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 486,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test sendResetPasswordEmail: invalid input",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m test sendResetPasswordEmail: invalid input",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 492,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createPasswordResetToken with random user ID fails",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m createPasswordResetToken tests createPasswordResetToken with random user ID fails",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 554,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createPasswordResetToken with primary user, non email password succeeds",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m createPasswordResetToken tests createPasswordResetToken with primary user, non email password succeeds",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 608,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumePasswordResetToken works when token is valid",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m consumePasswordResetToken tests consumePasswordResetToken works when token is valid",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 626,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumePasswordResetToken returns RESET_PASSWORD_INVALID_TOKEN_ERROR error if the token does not exist",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m consumePasswordResetToken tests consumePasswordResetToken returns RESET_PASSWORD_INVALID_TOKEN_ERROR error if the token does not exist",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 628,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumePasswordResetToken with primary user, non email password succeeds",
      "fullTitle": "passwordreset: \u001b[33;3;2m[test/emailpassword/passwordreset.test.js]\u001b[0m consumePasswordResetToken tests consumePasswordResetToken with primary user, non email password succeeds",
      "file": "/workspace/test/emailpassword/passwordreset.test.js",
      "duration": 652,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when rid is thirdpartyemailpassword",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when rid is thirdpartyemailpassword",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 601,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that disabling api, the default signin API does not work",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test that disabling api, the default signin API does not work",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 605,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test password must be of type string in input",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test password must be of type string in input",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 579,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email must be of type string in input",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test email must be of type string in input",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 507,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI throws an error when email does not match",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI throws an error when email does not match",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 793,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI throws an error if password is incorrect",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI throws an error if password is incorrect",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 676,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, not a JSON to /signin API",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test bad input, not a JSON to /signin API",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 534,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, no POST body to /signin API",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test bad input, no POST body to /signin API",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 574,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, input is Json but incorrect structure to /signin API",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test bad input, input is Json but incorrect structure to /signin API",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 535,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that a successfull signin yields a session",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test that a successfull signin yields a session",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 591,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom email validators to sign up and make sure they are applied to sign in",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test custom email validators to sign up and make sure they are applied to sign in",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 625,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom password validators to sign up and make sure they are applied to sign in",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test custom password validators to sign up and make sure they are applied to sign in",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 607,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test password field validation error",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test password field validation error",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 628,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email field validation error",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test email field validation error",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test formFields has no email field",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test formFields has no email field",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 503,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test formFields has no password field",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test formFields has no password field",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 477,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid email and wrong password",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test invalid email and wrong password",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 571,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserByEmail when user does not exist",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test getUserByEmail when user does not exist",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 505,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the handlePostSignIn function",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test the handlePostSignIn function",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 557,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added JSON middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added JSON middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 606,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 639,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added both JSON and urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added both JSON and urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 543,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added bodyParser JSON middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added bodyParser JSON middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 730,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added bodyParser urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added bodyParser urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 618,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI works when input is fine and user has added both bodyParser JSON and bodyParser urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI works when input is fine and user has added both bodyParser JSON and bodyParser urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty JSON and user has added JSON middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty JSON and user has added JSON middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 683,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty JSON and user has added urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty JSON and user has added urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 753,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty JSON and user has added both JSON and urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty JSON and user has added both JSON and urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 598,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty JSON and user has added both bodyParser JSON and bodyParser urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty JSON and user has added both bodyParser JSON and bodyParser urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 607,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty request body and user has added JSON middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty request body and user has added JSON middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 603,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty request body and user has added urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty request body and user has added urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 679,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI with empty request body and user has added both JSON and urlencoded middleware",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI with empty request body and user has added both JSON and urlencoded middleware",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 490,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test singinAPI throws an error when email does not match",
      "fullTitle": "signinFeature: \u001b[33;3;2m[test/emailpassword/signinFeature.test.js]\u001b[0m test singinAPI throws an error when email does not match",
      "file": "/workspace/test/emailpassword/signinFeature.test.js",
      "duration": 587,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the default route and it should revoke the session",
      "fullTitle": "signoutFeature: \u001b[33;3;2m[test/emailpassword/signoutFeature.test.js]\u001b[0m test the default route and it should revoke the session",
      "file": "/workspace/test/emailpassword/signoutFeature.test.js",
      "duration": 516,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that disabling default route and calling the API returns 404",
      "fullTitle": "signoutFeature: \u001b[33;3;2m[test/emailpassword/signoutFeature.test.js]\u001b[0m test that disabling default route and calling the API returns 404",
      "file": "/workspace/test/emailpassword/signoutFeature.test.js",
      "duration": 614,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that calling the API without a session should return 401",
      "fullTitle": "signoutFeature: \u001b[33;3;2m[test/emailpassword/signoutFeature.test.js]\u001b[0m test that calling the API without a session should return 401",
      "file": "/workspace/test/emailpassword/signoutFeature.test.js",
      "duration": 500,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that signout API reutrns try refresh token, refresh session and signout should return OK",
      "fullTitle": "signoutFeature: \u001b[33;3;2m[test/emailpassword/signoutFeature.test.js]\u001b[0m test that signout API reutrns try refresh token, refresh session and signout should return OK",
      "file": "/workspace/test/emailpassword/signoutFeature.test.js",
      "duration": 5648,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disable api, the default signup API does not work",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that if disable api, the default signup API does not work",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 592,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signUpAPI works when input is fine",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signUpAPI works when input is fine",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 579,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signUpAPI throws an error in case of a duplicate email",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signUpAPI throws an error in case of a duplicate email",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 881,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signUpAPI throws an error for email and password with invalid syntax",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signUpAPI throws an error for email and password with invalid syntax",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 521,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, not a JSON to /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, not a JSON to /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 657,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, no POST body to /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, no POST body to /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 573,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, Input is JSON, but wrong structure to /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, Input is JSON, but wrong structure to /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 531,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, invalid password type in /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, invalid password type in /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 573,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, invalid email type in /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, invalid email type in /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 703,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, formFields is not an array in /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, formFields is not an array in /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 632,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad input, formField elements have no id or no value field in /signup API",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad input, formField elements have no id or no value field in /signup API",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 614,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that a successful signup yields a session",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that a successful signup yields a session",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 642,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if not provided by the user, it should not result in an error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that if not provided by the user, it should not result in an error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if provided by the user, and custom fields are there, only those are sent, using handlePostSignUp",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that if provided by the user, and custom fields are there, only those are sent, using handlePostSignUp",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 632,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if provided by the user, and no custom fields are there, then formFields must be empty, using handlePostSignUp",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that if provided by the user, and no custom fields are there, then formFields must be empty, using handlePostSignUp",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 747,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test formFields added in config but not in input to signup, check error about it being missing",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test formFields added in config but not in input to signup, check error about it being missing",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 626,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid formFields without optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test valid formFields without optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 555,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid boolean formFields with optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test valid boolean formFields with optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 609,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test valid int formFields with optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test valid int formFields with optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 652,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad case input to signup without optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad case input to signup without optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 672,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test good case input to signup with optional",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test good case input to signup with optional",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 699,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test input formFields has no email field",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test input formFields has no email field",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 556,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test inut formFields has no password field",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test inut formFields has no password field",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 555,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test input form field has a different number of custom fields than in config form fields",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test input form field has a different number of custom fields than in config form fields",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 656,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test input form field has the same number of custom fields than in config form fields, but ids mismatch",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test input form field has the same number of custom fields than in config form fields, but ids mismatch",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 679,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Custom optional field missing in the payload should not throw an error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m Custom optional field missing in the payload should not throw an error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 664,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom field validation error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test custom field validation error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 595,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signup password field validation error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signup password field validation error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 712,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signup email field validation error",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signup email field validation error",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 949,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that input email is trimmed",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that input email is trimmed",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 749,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that non string value in formFields array and it passes through the signup API and it is sent to the handlePostSignUp",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test that non string value in formFields array and it passes through the signup API and it is sent to the handlePostSignUp",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 601,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signUpAPI validate function using userContext",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test signUpAPI validate function using userContext",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 762,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test handlePostSignUp gets set correctly",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test handlePostSignUp gets set correctly",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 812,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "updateEmailOrPassword function test for third party login",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m updateEmailOrPassword function test for third party login",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 898,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test bad case when too many formFields are passed",
      "fullTitle": "signupFeature: \u001b[33;3;2m[test/emailpassword/signupFeature.test.js]\u001b[0m test bad case when too many formFields are passed",
      "file": "/workspace/test/emailpassword/signupFeature.test.js",
      "duration": 875,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updateEmailPass",
      "fullTitle": "updateEmailPassTest: \u001b[33;3;2m[test/emailpassword/updateEmailPass.test.js]\u001b[0m test updateEmailPass",
      "file": "/workspace/test/emailpassword/updateEmailPass.test.js",
      "duration": 864,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updateEmailPass with failing password validation",
      "fullTitle": "updateEmailPassTest: \u001b[33;3;2m[test/emailpassword/updateEmailPass.test.js]\u001b[0m test updateEmailPass with failing password validation",
      "file": "/workspace/test/emailpassword/updateEmailPass.test.js",
      "duration": 583,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updateEmailPass with passing password validation",
      "fullTitle": "updateEmailPassTest: \u001b[33;3;2m[test/emailpassword/updateEmailPass.test.js]\u001b[0m test updateEmailPass with passing password validation",
      "file": "/workspace/test/emailpassword/updateEmailPass.test.js",
      "duration": 709,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updateEmailPass with failing default password validation",
      "fullTitle": "updateEmailPassTest: \u001b[33;3;2m[test/emailpassword/updateEmailPass.test.js]\u001b[0m test updateEmailPass with failing default password validation",
      "file": "/workspace/test/emailpassword/updateEmailPass.test.js",
      "duration": 746,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersOldestFirst",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUsersOldestFirst",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 5996,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersOldestFirst with search queries",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUsersOldestFirst with search queries",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 878,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersNewestFirst",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUsersNewestFirst",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 5904,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersNewestFirst with search queries",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUsersNewestFirst with search queries",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 4906,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserCount",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/emailpassword/users.test.js]\u001b[0m test getUserCount",
      "file": "/workspace/test/emailpassword/users.test.js",
      "duration": 4895,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions for lambda proxy event v1",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test basic usage of sessions for lambda proxy event v1",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 673,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions for lambda proxy event v2",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test basic usage of sessions for lambda proxy event v2",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 828,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response awslambda",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m sending custom response awslambda",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 657,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 569,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 641,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'email: t",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 628,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 679,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'email: iresh",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 714,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'phone: +1",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 871,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1(",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'phone: 1(",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 715,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 767,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 759,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=header should clear all response cookies during refresh",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 609,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=header test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 818,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=cookie should clear all response cookies during refresh",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 690,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=cookie test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 612,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "AWSRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "AWSRequest AWSRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "AWSRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "AWSRequest AWSRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/awsLambda.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions for lambda proxy event v1",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test basic usage of sessions for lambda proxy event v1",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 646,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions for lambda proxy event v2",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test basic usage of sessions for lambda proxy event v2",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 569,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response awslambda",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m sending custom response awslambda",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 582,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 653,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 604,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 736,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 611,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 816,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1(",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1(",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 815,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 831,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 759,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=header should clear all response cookies during refresh",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 625,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=header test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 701,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=cookie should clear all response cookies during refresh",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 703,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "AWS Lambda: \u001b[33;3;2m[test/framework/awsLambda.withTenantId.test.js]\u001b[0m Throwing UNATHORISED w/ auth-mode=cookie test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/awsLambda.withTenantId.test.js",
      "duration": 678,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "express w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 756,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "fastify w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 880,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "hapi w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 658,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "koa w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 745,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "loopback w/ auth-mode=header Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 1344,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "express w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 834,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "fastify w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 683,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "hapi w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 764,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "koa w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 748,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not repeat access token headers",
      "fullTitle": "loopback w/ auth-mode=cookie Updating token payload multiple times should not repeat access token headers",
      "file": "/workspace/test/framework/crossframework/repeatedResponseHeader.test.js",
      "duration": 670,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "express w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 763,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "express w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 829,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "fastify w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 616,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "fastify w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 675,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "hapi w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 684,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "hapi w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 622,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "koa w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 636,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "koa w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 753,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "loopback w/ auth-mode=header Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 751,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "loopback w/ auth-mode=header Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 595,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "express w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 751,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "express w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 678,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "fastify w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "fastify w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 658,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "hapi w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 972,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "hapi w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 722,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "koa w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 660,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "koa w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 718,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear all response cookies during refresh",
      "fullTitle": "loopback w/ auth-mode=cookie Throwing UNATHORISED should clear all response cookies during refresh",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 685,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking a session after createNewSession with throwing unauthorised error",
      "fullTitle": "loopback w/ auth-mode=cookie Throwing UNATHORISED test revoking a session after createNewSession with throwing unauthorised error",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 620,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "express w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 705,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "fastify w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 811,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "hapi w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 861,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "koa w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 657,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return a 401 for invalid tokens",
      "fullTitle": "loopback w/ auth-mode=cookie verifySession without middleware should return a 401 for invalid tokens",
      "file": "/workspace/test/framework/crossframework/unauthorised.test.js",
      "duration": 761,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware without error handler added",
      "fullTitle": "Custom framework: \u001b[33;3;2m[test/framework/custom.test.js]\u001b[0m test session verify middleware without error handler added",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 723,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Custom framework: \u001b[33;3;2m[test/framework/custom.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 3847,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "User's getJSONBody implementation should be called only once",
      "fullTitle": "PreParsedRequest User's getJSONBody implementation should be called only once",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "User's getFormData implementation should be called only once",
      "fullTitle": "PreParsedRequest User's getFormData implementation should be called only once",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sendJSONResponse should ignore subsequent calls after first call",
      "fullTitle": "CollectingResponse sendJSONResponse should ignore subsequent calls after first call",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sendHTMLResponse should ignore subsequent calls after first call",
      "fullTitle": "CollectingResponse sendHTMLResponse should ignore subsequent calls after first call",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "setStatusCode should ignore subsequent calls after response is set",
      "fullTitle": "CollectingResponse setStatusCode should ignore subsequent calls after response is set",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sendJSONResponse should not allow sendHTMLResponse to overwrite",
      "fullTitle": "CollectingResponse sendJSONResponse should not allow sendHTMLResponse to overwrite",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sendHTMLResponse should not allow sendJSONResponse to overwrite",
      "fullTitle": "CollectingResponse sendHTMLResponse should not allow sendJSONResponse to overwrite",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow setting status code before sending response",
      "fullTitle": "CollectingResponse should allow setting status code before sending response",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should simulate API override behavior - custom response should be preserved",
      "fullTitle": "CollectingResponse should simulate API override behavior - custom response should be preserved",
      "file": "/workspace/test/framework/custom.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "ExpressRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "ExpressRequest ExpressRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/express.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "ExpressRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "ExpressRequest ExpressRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/express.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 821,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 687,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 783,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 871,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware without error handler",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m token theft detection with auto refresh middleware without error handler",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 826,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware without error handler added",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test session verify middleware without error handler added",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 905,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 3727,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 820,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions with auto refresh",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test basic usage of sessions with auto refresh",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 3800,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 884,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 727,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking sessions",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test revoking sessions",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 860,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 901,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 890,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response fastify",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m sending custom response fastify",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 741,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "generating email verification token without payload",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m generating email verification token without payload",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 905,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test same cookie is not getting set multiple times",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test same cookie is not getting set multiple times",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 726,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 887,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 682,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 923,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search terms",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for multiple search terms",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 786,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 708,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 867,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 690,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 836,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 1056,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "FastifyRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "FastifyRequest FastifyRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "FastifyRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "FastifyRequest FastifyRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/fastify.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 903,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 775,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 795,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 750,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware without error handler",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m token theft detection with auto refresh middleware without error handler",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 661,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify middleware without error handler added",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test session verify middleware without error handler added",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 963,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 3935,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 733,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions with auto refresh",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test basic usage of sessions with auto refresh",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 3731,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 740,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 685,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking sessions",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test revoking sessions",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 833,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 826,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 762,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response fastify",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m sending custom response fastify",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 753,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "generating email verification token without payload",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m generating email verification token without payload",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 789,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test same cookie is not getting set multiple times",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test same cookie is not getting set multiple times",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 777,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 819,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 743,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 834,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search terms",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search terms",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 865,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 872,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 1206,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 782,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Fastify: \u001b[33;3;2m[test/framework/fastify.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/fastify.withTenantId.test.js",
      "duration": 1017,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 823,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 911,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 755,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 759,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 3755,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 717,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions with auto refresh",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test basic usage of sessions with auto refresh",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 3887,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 794,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 750,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking sessions",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test revoking sessions",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 814,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 844,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response hapi",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m sending custom response hapi",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 740,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 809,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verifySession/getSession without accessToken",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test verifySession/getSession without accessToken",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 951,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 795,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 861,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 822,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 790,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 890,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 953,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 1040,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 882,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "HapiRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "HapiRequest HapiRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "HapiRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "HapiRequest HapiRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/hapi.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 774,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 715,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m token theft detection",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 896,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "token theft detection with auto refresh middleware",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 770,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 3769,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 827,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions with auto refresh",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test basic usage of sessions with auto refresh",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 4010,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify with anti-csrf present",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test session verify with anti-csrf present",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 811,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test session verify without anti-csrf present",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 841,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking sessions",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test revoking sessions",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 911,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test manipulating session data",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 853,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test manipulating jwt payload",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 801,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response hapi",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m sending custom response hapi",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 954,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verifySession/getSession without accessToken",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test verifySession/getSession without accessToken",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 822,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 768,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 942,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 781,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 926,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 953,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 1108,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 938,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Hapi: \u001b[33;3;2m[test/framework/hapi.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/hapi.withTenantId.test.js",
      "duration": 853,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 911,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 709,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "koa token theft detection",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m koa token theft detection",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 905,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "koa token theft detection with auto refresh middleware",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m koa token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 874,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test basic usage of express sessions",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 3974,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 840,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions with auto refresh",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test basic usage of express sessions with auto refresh",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 3780,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test express session verify with anti-csrf present",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test express session verify with anti-csrf present",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 876,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test session verify without anti-csrf present express",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1039,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking express sessions",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test revoking express sessions",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 808,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data with express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test manipulating session data with express",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 935,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload with express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test manipulating jwt payload with express",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1128,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response koa",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m sending custom response koa",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 752,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 979,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 768,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 903,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 871,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 987,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1030,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1088,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 1050,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "KoaRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "KoaRequest KoaRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "KoaRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "KoaRequest KoaRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/koa.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default refresh API does not work",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that if disabling api, the default refresh API does not work",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 805,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that if disabling api, the default sign out API does not work",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that if disabling api, the default sign out API does not work",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 775,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "koa token theft detection",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m koa token theft detection",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 978,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "koa token theft detection with auto refresh middleware",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m koa token theft detection with auto refresh middleware",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 912,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test basic usage of express sessions",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 3814,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test signout API works",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test signout API works",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 786,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of express sessions with auto refresh",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test basic usage of express sessions with auto refresh",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 4992,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test express session verify with anti-csrf present",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test express session verify with anti-csrf present",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 784,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test session verify without anti-csrf present express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test session verify without anti-csrf present express",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 765,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test revoking express sessions",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test revoking express sessions",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 905,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating session data with express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test manipulating session data with express",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 817,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test manipulating jwt payload with express",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test manipulating jwt payload with express",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 1040,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response koa",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m sending custom response koa",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 813,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 990,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 998,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 921,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 869,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 920,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 1066,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 1065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 994,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google, phone: 1'",
      "fullTitle": "Koa: \u001b[33;3;2m[test/framework/koa.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google, phone: 1'",
      "file": "/workspace/test/framework/koa.withTenantId.test.js",
      "duration": 1086,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 816,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m sending custom response",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 2053,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 734,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 787,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 838,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 878,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 940,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 959,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 1048,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google', phone: 1",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'provider: google', phone: 1",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 1009,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 906,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "LoopbackRequest.getJSONFromRequestBody should be called only once",
      "fullTitle": "LoopbackRequest LoopbackRequest.getJSONFromRequestBody should be called only once",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "LoopbackRequest.getFormDataFromRequestBody should be called only once",
      "fullTitle": "LoopbackRequest LoopbackRequest.getFormDataFromRequestBody should be called only once",
      "file": "/workspace/test/framework/loopback.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic usage of sessions",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test basic usage of sessions",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 940,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "sending custom response",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m sending custom response",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 1793,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that authorization header is read correctly in dashboard recipe",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that authorization header is read correctly in dashboard recipe",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 955,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that tags request respond with correct tags",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that tags request respond with correct tags",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 823,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: t'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: t'",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 802,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for multiple search items",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for multiple search items",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 1015,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'email: iresh'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'email: iresh'",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 940,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: +1'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: +1'",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 944,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'phone: 1('",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'phone: 1('",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 1009,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google', phone: 1",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google', phone: 1",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 1197,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that search results correct output for 'provider: google'",
      "fullTitle": "Loopback: \u001b[33;3;2m[test/framework/loopback.withTenantId.test.js]\u001b[0m test that search results correct output for 'provider: google'",
      "file": "/workspace/test/framework/loopback.withTenantId.test.js",
      "duration": 855,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the default config sets values correctly for JWT recipe",
      "fullTitle": "configTest: \u001b[33;3;2m[test/jwt/config.test.js]\u001b[0m Test that the default config sets values correctly for JWT recipe",
      "file": "/workspace/test/jwt/config.test.js",
      "duration": 806,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the config sets values correctly for JWT recipe when jwt validity is set",
      "fullTitle": "configTest: \u001b[33;3;2m[test/jwt/config.test.js]\u001b[0m Test that the config sets values correctly for JWT recipe when jwt validity is set",
      "file": "/workspace/test/jwt/config.test.js",
      "duration": 804,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that sending 0 validity throws an error",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that sending 0 validity throws an error",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 813,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that sending a invalid json throws an error",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that sending a invalid json throws an error",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 877,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that returned JWT uses 100 years for expiry for default config",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that returned JWT uses 100 years for expiry for default config",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 802,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that jwt validity is same as validity set in config",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that jwt validity is same as validity set in config",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 887,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that jwt validity is same as validity passed in createJWT function",
      "fullTitle": "createJWTFeature: \u001b[33;3;2m[test/jwt/createJWTFeature.test.js]\u001b[0m Test that jwt validity is same as validity passed in createJWT function",
      "file": "/workspace/test/jwt/createJWTFeature.test.js",
      "duration": 899,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that default getJWKS api does not work when disabled",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that default getJWKS api does not work when disabled",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 858,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that default getJWKS works fine",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that default getJWKS works fine",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 810,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that we can override the Cache-Control header through the function",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that we can override the Cache-Control header through the function",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 974,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that we can remove the Cache-Control header through the function",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that we can remove the Cache-Control header through the function",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 919,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that we can override the Cache-Control header through the api",
      "fullTitle": "getJWKS: \u001b[33;3;2m[test/jwt/getJWKS.test.js]\u001b[0m Test that we can override the Cache-Control header through the api",
      "file": "/workspace/test/jwt/getJWKS.test.js",
      "duration": 928,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test overriding functions",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/jwt/override.test.js]\u001b[0m Test overriding functions",
      "file": "/workspace/test/jwt/override.test.js",
      "duration": 874,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test overriding APIs",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/jwt/override.test.js]\u001b[0m Test overriding APIs",
      "file": "/workspace/test/jwt/override.test.js",
      "duration": 909,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return firstFactors based on enabled recipes if no other configuration is available",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa not enabled should return firstFactors based on enabled recipes if no other configuration is available",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1577,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return firstFactors based on enabled combination recipes if no other configuration is available",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa not enabled should return firstFactors based on enabled combination recipes if no other configuration is available",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1277,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return from core config when configured in core",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa not enabled should return from core config when configured in core",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 2120,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "static config is filtered with enabled recipes",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa enabled static config is filtered with enabled recipes",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1474,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "core config is prioritised over static config and is filtered with enabled recipes in SDK",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa enabled core config is prioritised over static config and is filtered with enabled recipes in SDK",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1653,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "static config is filtered with enabled recipes in core",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa enabled static config is filtered with enabled recipes in core",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1717,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "static config is filtered with enabled recipes, but custom is allowed",
      "fullTitle": "loginMethods: \u001b[33;3;2m[test/multitenancy/loginMethods.test.js]\u001b[0m with mfa enabled static config is filtered with enabled recipes, but custom is allowed",
      "file": "/workspace/test/multitenancy/loginMethods.test.js",
      "duration": 1314,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creation of tenants",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test creation of tenants",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 3435,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test get tenant",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test get tenant",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 3450,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test update tenant",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test update tenant",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 2979,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test delete tenant",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test delete tenant",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 3708,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creation of thirdParty config",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test creation of thirdParty config",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 2680,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creation of thirdParty config with nulls",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test creation of thirdParty config with nulls",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 2472,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test deletion of thirdparty id",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test deletion of thirdparty id",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 2857,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test updation of thirdparty provider",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test updation of thirdparty provider",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 3014,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test user association and disassociation with tenants",
      "fullTitle": "tenants-crud: \u001b[33;3;2m[test/multitenancy/tenants-crud.test.js]\u001b[0m test user association and disassociation with tenants",
      "file": "/workspace/test/multitenancy/tenants-crud.test.js",
      "duration": 4286,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the recipe initializes without a config obj",
      "fullTitle": "configTest: \u001b[33;3;2m[test/oauth2/config.test.js]\u001b[0m Test that the recipe initializes without a config obj",
      "file": "/workspace/test/oauth2/config.test.js",
      "duration": 1023,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create an OAuth2Client instance with empty input",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should create an OAuth2Client instance with empty input",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 967,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create an OAuth2Client instance with custom input",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should create an OAuth2Client instance with custom input",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 861,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update the OAuth2Client",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should update the OAuth2Client",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 877,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should delete the OAuth2Client",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should delete the OAuth2Client",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 896,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get OAuth2Clients with pagination",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should get OAuth2Clients with pagination",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 987,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get OAuth2Clients with filter",
      "fullTitle": "OAuth2ClientTests: \u001b[33;3;2m[test/oauth2/oauth2client.test.js]\u001b[0m should get OAuth2Clients with filter",
      "file": "/workspace/test/oauth2/oauth2client.test.js",
      "duration": 937,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with default config calling discovery configuration endpoint works as expected",
      "fullTitle": "apiTest: \u001b[33;3;2m[test/openid/api.test.js]\u001b[0m Test that with default config calling discovery configuration endpoint works as expected",
      "file": "/workspace/test/openid/api.test.js",
      "duration": 908,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with apiBasePath calling discovery configuration endpoint works as expected",
      "fullTitle": "apiTest: \u001b[33;3;2m[test/openid/api.test.js]\u001b[0m Test that with apiBasePath calling discovery configuration endpoint works as expected",
      "file": "/workspace/test/openid/api.test.js",
      "duration": 1056,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that discovery endpoint does not work when disabled",
      "fullTitle": "apiTest: \u001b[33;3;2m[test/openid/api.test.js]\u001b[0m Test that discovery endpoint does not work when disabled",
      "file": "/workspace/test/openid/api.test.js",
      "duration": 1004,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the default config sets values correctly for OpenID recipe",
      "fullTitle": "configTest: \u001b[33;3;2m[test/openid/config.test.js]\u001b[0m Test that the default config sets values correctly for OpenID recipe",
      "file": "/workspace/test/openid/config.test.js",
      "duration": 852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the default config sets values correctly for OpenID recipe with apiBasePath",
      "fullTitle": "configTest: \u001b[33;3;2m[test/openid/config.test.js]\u001b[0m Test that the default config sets values correctly for OpenID recipe with apiBasePath",
      "file": "/workspace/test/openid/config.test.js",
      "duration": 837,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that the config sets values correctly for OpenID recipe with issuer",
      "fullTitle": "configTest: \u001b[33;3;2m[test/openid/config.test.js]\u001b[0m Test that the config sets values correctly for OpenID recipe with issuer",
      "file": "/workspace/test/openid/config.test.js",
      "duration": 890,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that issuer with gateway path works fine",
      "fullTitle": "configTest: \u001b[33;3;2m[test/openid/config.test.js]\u001b[0m Test that issuer with gateway path works fine",
      "file": "/workspace/test/openid/config.test.js",
      "duration": 899,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with default config discovery configuration is as expected",
      "fullTitle": "openIdTest: \u001b[33;3;2m[test/openid/openid.test.js]\u001b[0m Test that with default config discovery configuration is as expected",
      "file": "/workspace/test/openid/openid.test.js",
      "duration": 1014,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with default config discovery configuration is as expected with api base path",
      "fullTitle": "openIdTest: \u001b[33;3;2m[test/openid/openid.test.js]\u001b[0m Test that with default config discovery configuration is as expected with api base path",
      "file": "/workspace/test/openid/openid.test.js",
      "duration": 1002,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that with default config discovery configuration is as expected with custom issuer",
      "fullTitle": "openIdTest: \u001b[33;3;2m[test/openid/openid.test.js]\u001b[0m Test that with default config discovery configuration is as expected with custom issuer",
      "file": "/workspace/test/openid/openid.test.js",
      "duration": 862,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test overriding open id functions",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/openid/override.test.js]\u001b[0m Test overriding open id functions",
      "file": "/workspace/test/openid/override.test.js",
      "duration": 862,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test overriding open id apis",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/openid/override.test.js]\u001b[0m Test overriding open id apis",
      "file": "/workspace/test/openid/override.test.js",
      "duration": 971,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test emailExistsAPI on old path with email password conflicting path, but different rid",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test emailExistsAPI on old path with email password conflicting path, but different rid",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 820,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test emailExistsAPI conflicting with email password",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test emailExistsAPI conflicting with email password",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 973,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test APIs still work with thirdpartypasswordless recipe",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test APIs still work with thirdpartypasswordless recipe",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1165,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the sign up /in flow with email using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test the sign up /in flow with email using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 893,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the sign up /in flow with phoneNumber using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test the sign up /in flow with phoneNumber using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1063,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creating a code with email and then resending the code and check that the sending custom email function is called while using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test creating a code with email and then resending the code and check that the sending custom email function is called while using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1047,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test creating a code with phone and then resending the code and check that the sending custom SMS function is called while using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test creating a code with phone and then resending the code and check that the sending custom SMS function is called while using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 956,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid input to createCodeAPI while using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test invalid input to createCodeAPI while using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 920,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test adding phoneNumber to a users info and signing in will sign in the same user, using the EMAIL_OR_PHONE contactMethod",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test adding phoneNumber to a users info and signing in will sign in the same user, using the EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1115,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test not passing any fields to consumeCodeAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test not passing any fields to consumeCodeAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 926,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test consumeCodeAPI with magic link",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test consumeCodeAPI with magic link",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 998,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test consumeCodeAPI with code",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test consumeCodeAPI with code",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1063,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test consumeCodeAPI with expired code",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test consumeCodeAPI with expired code",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 2971,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createCodeAPI with email",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test createCodeAPI with email",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1194,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createCodeAPI with phoneNumber",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test createCodeAPI with phoneNumber",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 916,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test magicLink format in createCodeAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test magicLink format in createCodeAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1004,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test emailExistsAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test emailExistsAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 904,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test emailExistsAPI with new path",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test emailExistsAPI with new path",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 910,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test phoneNumberExistsAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test phoneNumberExistsAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 923,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test phoneNumberExistsAPI with new path",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test phoneNumberExistsAPI with new path",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 956,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test resendCodeAPI",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test resendCodeAPI",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 855,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test resendCodeAPI when changing contact method",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test resendCodeAPI when changing contact method",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 1238,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test resend code from different tenant throws error",
      "fullTitle": "apisFunctions: \u001b[33;3;2m[test/passwordless/apis.test.js]\u001b[0m test resend code from different tenant throws error",
      "file": "/workspace/test/passwordless/apis.test.js",
      "duration": 3938,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config with EMAIL_OR_PHONE contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test minimum config with EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 903,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test adding custom validators for phone and email with EMAIL_OR_PHONE contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test adding custom validators for phone and email with EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1021,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom function to send email with EMAIL_OR_PHONE contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test custom function to send email with EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1071,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom function to send text SMS with EMAIL_OR_PHONE contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test custom function to send text SMS with EMAIL_OR_PHONE contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 924,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config with phone contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test minimum config with phone contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 841,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test if validatePhoneNumber is called with phone contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test if validatePhoneNumber is called with phone contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 974,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE and phone contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE and phone contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1081,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage with flowType: MAGIC_LINK and phone contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage with flowType: MAGIC_LINK and phone contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 915,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE_AND_MAGIC_LINK and phone contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE_AND_MAGIC_LINK and phone contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 928,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage, if error is thrown, it should contain a general error in the response",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage, if error is thrown, it should contain a general error in the response",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1002,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config with email contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test minimum config with email contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 897,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test if validateEmailAddress is called with email contactMethod",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test if validateEmailAddress is called with email contactMethod",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 906,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomEmail with flowType: USER_INPUT_CODE and email contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomEmail with flowType: USER_INPUT_CODE and email contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 981,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomEmail with flowType: MAGIC_LINK and email contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomEmail with flowType: MAGIC_LINK and email contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 928,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE_AND_MAGIC_LINK and email contact method",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomTextMessage with flowType: USER_INPUT_CODE_AND_MAGIC_LINK and email contact method",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 877,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test createAndSendCustomEmail, if error is thrown, the status in the response should be a general error",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test createAndSendCustomEmail, if error is thrown, the status in the response should be a general error",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1135,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test missing compulsory configs throws an error",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test missing compulsory configs throws an error",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 850,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing getCustomUserInputCode using different codes",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test passing getCustomUserInputCode using different codes",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1212,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing getCustomUserInputCode using the same code",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test passing getCustomUserInputCode using the same code",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 1021,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test basic override usage in passwordless",
      "fullTitle": "config tests: \u001b[33;3;2m[test/passwordless/config.test.js]\u001b[0m test basic override usage in passwordless",
      "file": "/workspace/test/passwordless/config.test.js",
      "duration": 857,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 1018,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test backward compatibility: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 2877,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test custom override: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 2966,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test smtp service: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test smtp service: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 2966,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message sent back to user: passwordless login",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message sent back to user: passwordless login",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 948,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test backward compatibility: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 4993,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test custom override: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 3200,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test smtp service: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test smtp service: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 5081,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message sent back to user: resend code api",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message sent back to user: resend code api",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 1040,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that passwordless email uses correct origin",
      "fullTitle": "emailDelivery: \u001b[33;3;2m[test/passwordless/emailDelivery.test.js]\u001b[0m Test that passwordless email uses correct origin",
      "file": "/workspace/test/passwordless/emailDelivery.test.js",
      "duration": 1006,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test recipe functions",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/passwordless/multitenancy.test.js]\u001b[0m test recipe functions",
      "file": "/workspace/test/passwordless/multitenancy.test.js",
      "duration": 4204,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "getUser test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m getUser test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1200,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createCode test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m createCode test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 907,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createNewCodeForDevice test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m createNewCodeForDevice test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1044,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumeCode test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m consumeCode test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1299,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "consumeCode test with EXPIRED_USER_INPUT_CODE_ERROR",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m consumeCode test with EXPIRED_USER_INPUT_CODE_ERROR",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 2989,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "updateUser contactMethod email test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m updateUser contactMethod email test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 985,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "updateUser contactMethod phone test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m updateUser contactMethod phone test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1032,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "revokeAllCodes test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m revokeAllCodes test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 974,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "revokeCode test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m revokeCode test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1019,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "listCodesByEmail test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m listCodesByEmail test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 966,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "listCodesByPhoneNumber test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m listCodesByPhoneNumber test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 996,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "listCodesByDeviceId and listCodesByPreAuthSessionId test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m listCodesByDeviceId and listCodesByPreAuthSessionId test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1020,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "createMagicLink test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m createMagicLink test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1051,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "signInUp test",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m signInUp test",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 927,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Passwordless user that isEmailVerified returns true for both email and phone",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/passwordless/recipeFunctions.test.js]\u001b[0m Passwordless user that isEmailVerified returns true for both email and phone",
      "file": "/workspace/test/passwordless/recipeFunctions.test.js",
      "duration": 1185,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1120,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test backward compatibility: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3086,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test custom override: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3139,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test twilio service: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test twilio service: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3102,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message sent back to user: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message sent back to user: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1200,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test supertokens service: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test supertokens service: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3013,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user if response code is 429: passwordless login",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user if response code is 429: passwordless login",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 968,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1034,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test backward compatibility: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test backward compatibility: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 5121,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test custom override: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 3176,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test twilio service: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test twilio service: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 5097,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message sent back to user: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message sent back to user: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1029,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test supertokens service: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test supertokens service: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 4998,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user if response code is 429: resend code api",
      "fullTitle": "smsDelivery: \u001b[33;3;2m[test/passwordless/smsDelivery.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user if response code is 429: resend code api",
      "file": "/workspace/test/passwordless/smsDelivery.test.js",
      "duration": 1123,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "0. fnOverride=false, apiOverride=false, configOverride=false, plugins=[]",
      "fullTitle": "Plugins Overrides 0. fnOverride=false, apiOverride=false, configOverride=false, plugins=[]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "1. fnOverride=true, apiOverride=false, configOverride=false, plugins=[]",
      "fullTitle": "Plugins Overrides 1. fnOverride=true, apiOverride=false, configOverride=false, plugins=[]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "2. fnOverride=false, apiOverride=true, configOverride=false, plugins=[]",
      "fullTitle": "Plugins Overrides 2. fnOverride=false, apiOverride=true, configOverride=false, plugins=[]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3. fnOverride=false, apiOverride=false, configOverride=true, plugins=[]",
      "fullTitle": "Plugins Overrides 3. fnOverride=false, apiOverride=false, configOverride=true, plugins=[]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "4. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1], plugin1=[fn]",
      "fullTitle": "Plugins Overrides 4. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1], plugin1=[fn]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "5. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1], plugin1=[api]",
      "fullTitle": "Plugins Overrides 5. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1], plugin1=[api]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "6. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1], plugin1=[fn]",
      "fullTitle": "Plugins Overrides 6. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1], plugin1=[fn]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "7. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1], plugin1=[api]",
      "fullTitle": "Plugins Overrides 7. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1], plugin1=[api]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "8. fnOverride=false, apiOverride=false, configOverride=true, plugins=[plugin1], plugin1=[api]",
      "fullTitle": "Plugins Overrides 8. fnOverride=false, apiOverride=false, configOverride=true, plugins=[plugin1], plugin1=[api]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "9. fnOverride=false, apiOverride=false, configOverride=true, plugins=[plugin1], plugin1=[api,config]",
      "fullTitle": "Plugins Overrides 9. fnOverride=false, apiOverride=false, configOverride=true, plugins=[plugin1], plugin1=[api,config]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "10. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1,plugin2], plugin1=[fn,config], plugin2=[fn]",
      "fullTitle": "Plugins Overrides 10. fnOverride=true, apiOverride=false, configOverride=false, plugins=[plugin1,plugin2], plugin1=[fn,config], plugin2=[fn]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "11. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1,plugin2], plugin1=[api], plugin2=[api,config]",
      "fullTitle": "Plugins Overrides 11. fnOverride=false, apiOverride=true, configOverride=false, plugins=[plugin1,plugin2], plugin1=[api], plugin2=[api,config]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "12. fnOverride=true, apiOverride=true, configOverride=true, plugins=[plugin1,plugin2], plugin1=[fn,api,config], plugin2=[fn,api,config]",
      "fullTitle": "Plugins Overrides 12. fnOverride=true, apiOverride=true, configOverride=true, plugins=[plugin1,plugin2], plugin1=[fn,api,config], plugin2=[fn,api,config]",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "1,1 => 1",
      "fullTitle": "Plugins Dependencies and Init 1,1 => 1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "1,2 => 2,1",
      "fullTitle": "Plugins Dependencies and Init 1,2 => 2,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3->1 => 3,1",
      "fullTitle": "Plugins Dependencies and Init 3->1 => 3,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3->(2,1) => 3,2,1",
      "fullTitle": "Plugins Dependencies and Init 3->(2,1) => 3,2,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3->1,4->2 => 4,2,3,1",
      "fullTitle": "Plugins Dependencies and Init 3->1,4->2 => 4,2,3,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "4->3->(2,1) => 4,3,1,2",
      "fullTitle": "Plugins Dependencies and Init 4->3->(2,1) => 4,3,1,2",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "3->1,4->1 => 4,3,1",
      "fullTitle": "Plugins Dependencies and Init 3->1,4->1 => 4,3,1",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "override public property should not be applied",
      "fullTitle": "Plugins Config Overrides override public property should not be applied",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "override non-public property",
      "fullTitle": "Plugins Config Overrides override non-public property",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "as list",
      "fullTitle": "Plugins Route Handlers as list",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "success",
      "fullTitle": "Plugins Route Handlers as function success",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "error",
      "fullTitle": "Plugins Route Handlers as function error",
      "file": "/workspace/test/plugins/plugins.test.ts",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create a V5 token",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should create a V5 token",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create a V5 token signed by a static key if set in session recipe config",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should create a V5 token signed by a static key if set in session recipe config",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 994,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should ignore protected props",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should ignore protected props",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1116,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should ignore protected props when creating from prev payload",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should ignore protected props when creating from prev payload",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1150,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should make sign in/up return a 500 when adding protected props",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m createNewSession should make sign in/up return a 500 when adding protected props",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1042,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should help migrating a v2 token using protected props",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m mergeIntoAccessTokenPayload should help migrating a v2 token using protected props",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1064,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should help migrating a v2 token using protected props when called using session handle",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m mergeIntoAccessTokenPayload should help migrating a v2 token using protected props when called using session handle",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1051,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v2 tokens",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v2 tokens",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1161,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v2 tokens with check database enabled",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v2 tokens with check database enabled",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1020,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v4 tokens",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v4 tokens",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1013,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v4 tokens with check database enabled",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v4 tokens with check database enabled",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1309,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate v5 tokens with check database enabled",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should validate v5 tokens with check database enabled",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1000,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate token signed by a static key if not set in session recipe config",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m verifySession should not validate token signed by a static key if not set in session recipe config",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 995,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refresh legacy sessions to new version",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m refresh session should refresh legacy sessions to new version",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 958,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw when refreshing legacy session with protected prop in payload",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m refresh session should throw when refreshing legacy session with protected prop in payload",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 1020,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should accept skipped nullable props (v3)",
      "fullTitle": "AccessToken versions: \u001b[33;3;2m[test/session/accessTokenVersions.test.js]\u001b[0m validateAccessTokenStructure should accept skipped nullable props (v3)",
      "file": "/workspace/test/session/accessTokenVersions.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not throw for empty array",
      "fullTitle": "sessionClaims/assertClaims: \u001b[33;3;2m[test/session/claims/assertClaims.test.js]\u001b[0m SessionClass.assertClaims should not throw for empty array",
      "file": "/workspace/test/session/claims/assertClaims.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should call validate with the same payload object",
      "fullTitle": "sessionClaims/assertClaims: \u001b[33;3;2m[test/session/claims/assertClaims.test.js]\u001b[0m SessionClass.assertClaims should call validate with the same payload object",
      "file": "/workspace/test/session/claims/assertClaims.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create access token payload w/ session claims",
      "fullTitle": "sessionClaims/createNewSession: \u001b[33;3;2m[test/session/claims/createNewSession.test.js]\u001b[0m createNewSession should create access token payload w/ session claims",
      "file": "/workspace/test/session/claims/createNewSession.test.js",
      "duration": 950,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create access token payload wo/ session claims with an undefined value",
      "fullTitle": "sessionClaims/createNewSession: \u001b[33;3;2m[test/session/claims/createNewSession.test.js]\u001b[0m createNewSession should create access token payload wo/ session claims with an undefined value",
      "file": "/workspace/test/session/claims/createNewSession.test.js",
      "duration": 1053,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should merge claims and the passed access token payload obj",
      "fullTitle": "sessionClaims/createNewSession: \u001b[33;3;2m[test/session/claims/createNewSession.test.js]\u001b[0m createNewSession should merge claims and the passed access token payload obj",
      "file": "/workspace/test/session/claims/createNewSession.test.js",
      "duration": 1079,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not change if claim fetchValue returns undefined",
      "fullTitle": "sessionClaims/fetchAndSetClaim: \u001b[33;3;2m[test/session/claims/fetchAndSetClaim.test.js]\u001b[0m SessionClass.fetchAndSetClaim should not change if claim fetchValue returns undefined",
      "file": "/workspace/test/session/claims/fetchAndSetClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update if claim fetchValue returns value",
      "fullTitle": "sessionClaims/fetchAndSetClaim: \u001b[33;3;2m[test/session/claims/fetchAndSetClaim.test.js]\u001b[0m SessionClass.fetchAndSetClaim should update if claim fetchValue returns value",
      "file": "/workspace/test/session/claims/fetchAndSetClaim.test.js",
      "duration": 2,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update using a handle if claim fetchValue returns a value",
      "fullTitle": "sessionClaims/fetchAndSetClaim: \u001b[33;3;2m[test/session/claims/fetchAndSetClaim.test.js]\u001b[0m SessionClass.fetchAndSetClaim should update using a handle if claim fetchValue returns a value",
      "file": "/workspace/test/session/claims/fetchAndSetClaim.test.js",
      "duration": 1059,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get the right value",
      "fullTitle": "sessionClaims/getClaimValue: \u001b[33;3;2m[test/session/claims/getClaimValue.test.js]\u001b[0m SessionClass.getClaimValue should get the right value",
      "file": "/workspace/test/session/claims/getClaimValue.test.js",
      "duration": 947,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should get the right value using session handle",
      "fullTitle": "sessionClaims/getClaimValue: \u001b[33;3;2m[test/session/claims/getClaimValue.test.js]\u001b[0m SessionClass.getClaimValue should get the right value using session handle",
      "file": "/workspace/test/session/claims/getClaimValue.test.js",
      "duration": 1063,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for not existing handle",
      "fullTitle": "sessionClaims/getClaimValue: \u001b[33;3;2m[test/session/claims/getClaimValue.test.js]\u001b[0m SessionClass.getClaimValue should work for not existing handle",
      "file": "/workspace/test/session/claims/getClaimValue.test.js",
      "duration": 1107,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should build the right payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 2,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload w/ async fetch",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should build the right payload w/ async fetch",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload matching addToPayload_internal",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should build the right payload matching addToPayload_internal",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should call fetchValue with the right params",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should call fetchValue with the right params",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should leave payload empty if fetchValue returns undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim fetchAndSetClaim should leave payload empty if fetchValue returns undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getValueFromPayload should return undefined for empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return value set by fetchAndSetClaim",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getValueFromPayload should return value set by fetchAndSetClaim",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return value set by addToPayload_internal",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getValueFromPayload should return value set by addToPayload_internal",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getLastRefetchTime should return undefined for empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return time matching the fetchAndSetClaim call",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim getLastRefetchTime should return time matching the fetchAndSetClaim call",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not validate old values",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should validate old values if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not refetch if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate values older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not validate values older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values with default defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should validate old values with default defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should refetch if value is older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is overrides to infinite",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includes should not refetch if maxAge is overrides to infinite",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not validate old values",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should validate old values if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not refetch if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate values older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not validate values older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values with default defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should validate old values with default defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should refetch if value is older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is overrides to infinite",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludes should not refetch if maxAge is overrides to infinite",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate with requirement array",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should validate with requirement array",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not validate old values",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should validate old values if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not refetch if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate values older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not validate values older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch old values with default defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not refetch old values with default defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is overrides to infinite",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.includesAll should not refetch if maxAge is overrides to infinite",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate with empty array",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should validate with empty array",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not validate old values",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should validate old values if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is undefined",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not refetch if maxAge is undefined",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate values older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not validate values older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values with default defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should validate old values with default defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is older than defaultMaxAge",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should refetch if value is older than defaultMaxAge",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if maxAge is overrides to infinite",
      "fullTitle": "sessionClaims/primitiveArrayClaim: \u001b[33;3;2m[test/session/claims/primitiveArrayClaim.test.js]\u001b[0m PrimitiveArrayClaim validators.excludesAll should not refetch if maxAge is overrides to infinite",
      "file": "/workspace/test/session/claims/primitiveArrayClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should build the right payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload w/ async fetch",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should build the right payload w/ async fetch",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should build the right payload matching addToPayload_internal",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should build the right payload matching addToPayload_internal",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should call fetchValue with the right params",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should call fetchValue with the right params",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should leave payload empty if fetchValue returns undefined",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim fetchAndSetClaim should leave payload empty if fetchValue returns undefined",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for empty payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getValueFromPayload should return undefined for empty payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return value set by fetchAndSetClaim",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getValueFromPayload should return value set by fetchAndSetClaim",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return value set by addToPayload_internal",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getValueFromPayload should return value set by addToPayload_internal",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for empty payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getLastRefetchTime should return undefined for empty payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return time matching the fetchAndSetClaim call",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim getLastRefetchTime should return time matching the fetchAndSetClaim call",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate empty payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should not validate empty payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate mismatching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should not validate mismatching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values as well",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should validate old values as well",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with infinite defaultMaxAgeInSeconds should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should not validate old values",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch with an overridden maxAgeInSeconds",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with set defaultMaxAgeInSeconds should not refetch with an overridden maxAgeInSeconds",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate old values",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should validate old values",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch with an overridden maxAgeInSeconds",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with default defaultMaxAgeInSeconds should not refetch with an overridden maxAgeInSeconds",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate matching payload",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should validate matching payload",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not validate old values",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should not validate old values",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is not set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should refetch if value is not set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not refetch if value is set",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should not refetch if value is set",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refetch if value is old",
      "fullTitle": "sessionClaims/primitiveClaim: \u001b[33;3;2m[test/session/claims/primitiveClaim.test.js]\u001b[0m PrimitiveClaim validators.hasValue with maxAgeInSeconds should refetch if value is old",
      "file": "/workspace/test/session/claims/primitiveClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attempt to set claim to null",
      "fullTitle": "sessionClaims/removeClaim: \u001b[33;3;2m[test/session/claims/removeClaim.test.js]\u001b[0m SessionClass.removeClaim should attempt to set claim to null",
      "file": "/workspace/test/session/claims/removeClaim.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear previously set claim",
      "fullTitle": "sessionClaims/removeClaim: \u001b[33;3;2m[test/session/claims/removeClaim.test.js]\u001b[0m SessionClass.removeClaim should clear previously set claim",
      "file": "/workspace/test/session/claims/removeClaim.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear previously set claim using a handle",
      "fullTitle": "sessionClaims/removeClaim: \u001b[33;3;2m[test/session/claims/removeClaim.test.js]\u001b[0m SessionClass.removeClaim should clear previously set claim using a handle",
      "file": "/workspace/test/session/claims/removeClaim.test.js",
      "duration": 1048,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work ok for not existing handle",
      "fullTitle": "sessionClaims/removeClaim: \u001b[33;3;2m[test/session/claims/removeClaim.test.js]\u001b[0m SessionClass.removeClaim should work ok for not existing handle",
      "file": "/workspace/test/session/claims/removeClaim.test.js",
      "duration": 1069,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should merge the right value",
      "fullTitle": "sessionClaims/setClaimValue: \u001b[33;3;2m[test/session/claims/setClaimValue.test.js]\u001b[0m SessionClass.setClaimValue should merge the right value",
      "file": "/workspace/test/session/claims/setClaimValue.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should overwrite claim value",
      "fullTitle": "sessionClaims/setClaimValue: \u001b[33;3;2m[test/session/claims/setClaimValue.test.js]\u001b[0m SessionClass.setClaimValue should overwrite claim value",
      "file": "/workspace/test/session/claims/setClaimValue.test.js",
      "duration": 983,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should overwrite claim value using session handle",
      "fullTitle": "sessionClaims/setClaimValue: \u001b[33;3;2m[test/session/claims/setClaimValue.test.js]\u001b[0m SessionClass.setClaimValue should overwrite claim value using session handle",
      "file": "/workspace/test/session/claims/setClaimValue.test.js",
      "duration": 966,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work ok for not existing handle",
      "fullTitle": "sessionClaims/setClaimValue: \u001b[33;3;2m[test/session/claims/setClaimValue.test.js]\u001b[0m SessionClass.setClaimValue should work ok for not existing handle",
      "file": "/workspace/test/session/claims/setClaimValue.test.js",
      "duration": 1129,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return the right validation errors",
      "fullTitle": "sessionClaims/validateClaimsForSessionHandle: \u001b[33;3;2m[test/session/claims/validateClaimsForSessionHandle.test.js]\u001b[0m Session.validateClaimsForSessionHandle should return the right validation errors",
      "file": "/workspace/test/session/claims/validateClaimsForSessionHandle.test.js",
      "duration": 1053,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for not existing handle",
      "fullTitle": "sessionClaims/validateClaimsForSessionHandle: \u001b[33;3;2m[test/session/claims/validateClaimsForSessionHandle.test.js]\u001b[0m Session.validateClaimsForSessionHandle should work for not existing handle",
      "file": "/workspace/test/session/claims/validateClaimsForSessionHandle.test.js",
      "duration": 1007,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow without claims required or present",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should allow without claims required or present",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1169,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with claim valid after refetching",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should allow with claim valid after refetching",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 975,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with claim required but not added",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should reject with claim required but not added",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1014,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with custom validator returning true",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should allow with custom validator returning true",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1203,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with custom validator returning false",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should reject with custom validator returning false",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1049,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with validator returning false with reason",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should reject with validator returning false with reason",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1074,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject if assertClaims returns an error",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should reject if assertClaims returns an error",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1248,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow if assertClaims returns no errors",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with getGlobalClaimValidators override should allow if assertClaims returns no errors",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1040,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with empty list as override",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should allow with empty list as override",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with refetched claim",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should allow with refetched claim",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1010,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with invalid refetched claim",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should reject with invalid refetched claim",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1087,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with custom claim returning false",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should reject with custom claim returning false",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1193,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should allow with custom claim returning true",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should allow with custom claim returning true",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1144,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should reject with custom claim returning false",
      "fullTitle": "sessionClaims/verifySession: \u001b[33;3;2m[test/session/claims/verifySession.test.js]\u001b[0m verifySession with overrideGlobalClaimValidators should reject with custom claim returning false",
      "file": "/workspace/test/session/claims/verifySession.test.js",
      "duration": 1153,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should override session errorHandlers",
      "fullTitle": "errorHandlers: \u001b[33;3;2m[test/errorHandlers.test.js]\u001b[0m should override session errorHandlers",
      "file": "/workspace/test/session/errorHandlers.test.js",
      "duration": 960,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should default to false",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m should default to false",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=true createNewSession should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1066,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=true mergeIntoAccessTokenPayload should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1087,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens after refresh",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=true verifySession should attach the appropriate tokens after refresh",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1115,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=true refresh session should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=false createNewSession should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 996,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=false mergeIntoAccessTokenPayload should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1095,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens after refresh",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=false verifySession should attach the appropriate tokens after refresh",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1119,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should attach the appropriate tokens",
      "fullTitle": "exposeAccessTokenToFrontendInCookieBasedAuth: \u001b[33;3;2m[test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js]\u001b[0m with exposeAccessTokenToFrontendInCookieBasedAuth=false refresh session should attach the appropriate tokens",
      "file": "/workspace/test/session/exposeAccessTokenToFrontendInCookieBasedAuth.test.js",
      "duration": 1157,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should fetch the keys as expected",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should fetch the keys as expected",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 984,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not re-fetch if the cache is available",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should not re-fetch if the cache is available",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 978,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should re-fetch keys for unknown kid",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should re-fetch keys for unknown kid",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 7340,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw if jwks endpoint errors",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should throw if jwks endpoint errors",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1094,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should re-fetch after the cache expires",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m should re-fetch after the cache expires",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1251,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "jwks multiple cores work ok",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m jwks multiple cores work ok",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1157,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "jwks endpoint throwing should fall back to next core if fetching throws",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m jwks endpoint throwing should fall back to next core if fetching throws",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1437,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "jwks endpoint throwing should fall back to next core if fetching returns the wrong status/shape",
      "fullTitle": "JWKs caching: \u001b[33;3;2m[test/session/jwksCache.test.js]\u001b[0m jwks endpoint throwing should fall back to next core if fetching returns the wrong status/shape",
      "file": "/workspace/test/session/jwksCache.test.js",
      "duration": 1106,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create a new session",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m createNewSessionWithoutRequestResponse should create a new session",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1003,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create a new session w/ anti-csrf",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m createNewSessionWithoutRequestResponse should create a new session w/ anti-csrf",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1147,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate basic access token",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should validate basic access token",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1102,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate basic access token with anti-csrf",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should validate basic access token with anti-csrf",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 985,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate access tokens created by createJWT",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should validate access tokens created by createJWT",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1473,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate access tokens created by createJWT w/ checkDatabase",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should validate access tokens created by createJWT w/ checkDatabase",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1473,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return error for non-tokens",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should return error for non-tokens",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return undefined for non-tokens with requireSession false",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should return undefined for non-tokens with requireSession false",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return error for claim validation failures",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m getSessionWithoutRequestResponse should return error for claim validation failures",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1025,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should refresh session",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m refreshSessionWithoutRequestResponse should refresh session",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1141,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work with anti-csrf",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m refreshSessionWithoutRequestResponse should work with anti-csrf",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 1226,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return error for non-tokens",
      "fullTitle": "Session handling functions without modifying response: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m refreshSessionWithoutRequestResponse should return error for non-tokens",
      "file": "/workspace/test/session/sessionHandlingFuncsWithoutReq.test.js",
      "duration": 2015,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw an error when scope is an empty string",
      "fullTitle": "normaliseSessionScopeOrThrowError should throw an error when scope is an empty string",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should retain the leading dot when original scope starts with a dot",
      "fullTitle": "normaliseSessionScopeOrThrowError should retain the leading dot when original scope starts with a dot",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 1,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return the normalised scope without a leading dot",
      "fullTitle": "normaliseSessionScopeOrThrowError should return the normalised scope without a leading dot",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should normalise scope with HTTP prefix",
      "fullTitle": "normaliseSessionScopeOrThrowError should normalise scope with HTTP prefix",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should normalise scope with HTTPS prefix",
      "fullTitle": "normaliseSessionScopeOrThrowError should normalise scope with HTTPS prefix",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return the IP address as-is",
      "fullTitle": "normaliseSessionScopeOrThrowError should return the IP address as-is",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return \"localhost\" if the scope is localhost",
      "fullTitle": "normaliseSessionScopeOrThrowError should return \"localhost\" if the scope is localhost",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should trim leading and trailing whitespace",
      "fullTitle": "normaliseSessionScopeOrThrowError should trim leading and trailing whitespace",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return correct scope for subdomains",
      "fullTitle": "normaliseSessionScopeOrThrowError should return correct scope for subdomains",
      "file": "/workspace/test/session/sessionUtils.test.js",
      "duration": 0,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should throw when verifying",
      "fullTitle": "Switching useDynamicAccessTokenSigningKey after session creation: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m true to false should throw when verifying",
      "file": "/workspace/test/session/useDynamicSigningKeySwitching.test.js",
      "duration": 1255,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work after refresh",
      "fullTitle": "Switching useDynamicAccessTokenSigningKey after session creation: \u001b[33;3;2m[test/session/sessionHandlingFuncsWithoutReq.test.js]\u001b[0m true to false should work after refresh",
      "file": "/workspace/test/session/useDynamicSigningKeySwitching.test.js",
      "duration": 1276,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that using development OAuth keys will use the development authorisation url",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test that using development OAuth keys will use the development authorisation url",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1162,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test calling authorisation url API with empty init",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test calling authorisation url API with empty init",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1424,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test calling authorisation url API with empty init with dynamic third party provider",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test calling authorisation url API with empty init with dynamic third party provider",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1780,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for thirdparty module",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test minimum config for thirdparty module",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1080,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test thirdparty provider doesn't exist",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test thirdparty provider doesn't exist",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 1161,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid GET params for thirdparty module",
      "fullTitle": "authorisationTest: \u001b[33;3;2m[test/thirdparty/authorisationFeature.test.js]\u001b[0m test invalid GET params for thirdparty module",
      "file": "/workspace/test/thirdparty/authorisationUrlFeature.test.js",
      "duration": 997,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test config for thirdparty module, no provider passed",
      "fullTitle": "configTest: \u001b[33;3;2m[test/thirdparty/config.test.js]\u001b[0m test config for thirdparty module, no provider passed",
      "file": "/workspace/test/thirdparty/config.test.js",
      "duration": 1104,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for thirdparty module, custom provider",
      "fullTitle": "configTest: \u001b[33;3;2m[test/thirdparty/config.test.js]\u001b[0m test minimum config for thirdparty module, custom provider",
      "file": "/workspace/test/thirdparty/config.test.js",
      "duration": 1134,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called: email verify",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/thirdparty/emailverify.test.js]\u001b[0m test default backward compatibility api being called: email verify",
      "file": "/workspace/test/thirdparty/emailverify.test.js",
      "duration": 1109,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default backward compatibility api being called, error message not sent back to user: email verify",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/thirdparty/emailverify.test.js]\u001b[0m test default backward compatibility api being called, error message not sent back to user: email verify",
      "file": "/workspace/test/thirdparty/emailverify.test.js",
      "duration": 1356,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test custom override: email verify",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/thirdparty/emailverify.test.js]\u001b[0m test custom override: email verify",
      "file": "/workspace/test/thirdparty/emailverify.test.js",
      "duration": 3445,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that providing your own email callback and make sure it is called",
      "fullTitle": "emailverify: \u001b[33;3;2m[test/thirdparty/emailverify.test.js]\u001b[0m test that providing your own email callback and make sure it is called",
      "file": "/workspace/test/thirdparty/emailverify.test.js",
      "duration": 1713,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getProvider",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/thirdparty/multitenancy.test.js]\u001b[0m test getProvider",
      "file": "/workspace/test/thirdparty/multitenancy.test.js",
      "duration": 7635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getProvider merges the config from static and core 1",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/thirdparty/multitenancy.test.js]\u001b[0m test getProvider merges the config from static and core 1",
      "file": "/workspace/test/thirdparty/multitenancy.test.js",
      "duration": 2457,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getProvider returns correct config from core",
      "fullTitle": "multitenancy: \u001b[33;3;2m[test/thirdparty/multitenancy.test.js]\u001b[0m test getProvider returns correct config from core",
      "file": "/workspace/test/thirdparty/multitenancy.test.js",
      "duration": 1999,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use code challenge method S256 if supported by the provider",
      "fullTitle": "oidcTest: \u001b[33;3;2m[test/thirdparty/oidc.test.js]\u001b[0m should use code challenge method S256 if supported by the provider",
      "file": "/workspace/test/thirdparty/oidc.test.js",
      "duration": 2125,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not use pkce if oidc response does not support S256",
      "fullTitle": "oidcTest: \u001b[33;3;2m[test/thirdparty/oidc.test.js]\u001b[0m should not use pkce if oidc response does not support S256",
      "file": "/workspace/test/thirdparty/oidc.test.js",
      "duration": 2579,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should use pkce if oidc response does not support S256 but forcePKCE is true",
      "fullTitle": "oidcTest: \u001b[33;3;2m[test/thirdparty/oidc.test.js]\u001b[0m should use pkce if oidc response does not support S256 but forcePKCE is true",
      "file": "/workspace/test/thirdparty/oidc.test.js",
      "duration": 2175,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding functions tests",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/thirdparty/override.test.js]\u001b[0m overriding functions tests",
      "file": "/workspace/test/thirdparty/override.test.js",
      "duration": 1162,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding api tests",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/thirdparty/override.test.js]\u001b[0m overriding api tests",
      "file": "/workspace/test/thirdparty/override.test.js",
      "duration": 1119,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding functions tests, throws error",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/thirdparty/override.test.js]\u001b[0m overriding functions tests, throws error",
      "file": "/workspace/test/thirdparty/override.test.js",
      "duration": 1068,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "overriding api tests, throws error",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/thirdparty/override.test.js]\u001b[0m overriding api tests, throws error",
      "file": "/workspace/test/thirdparty/override.test.js",
      "duration": 1161,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 3124,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2079,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2145,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2121,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2067,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2072,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2135,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2201,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2289,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2390,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2230,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2204,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2712,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2137,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2242,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2167,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2526,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2115,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2089,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2150,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2141,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2245,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2139,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2077,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2189,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2399,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2191,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2194,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2172,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2323,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2344,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2236,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2193,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2303,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2131,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2173,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2176,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2137,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2201,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2131,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2160,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2211,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2232,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2515,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2213,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2194,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2129,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2320,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2306,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2078,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2301,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2175,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2317,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2271,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2063,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2267,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2210,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2158,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2281,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2219,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2184,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2173,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2175,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2204,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2205,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2177,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2392,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2290,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2226,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2188,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2592,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2257,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2259,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2357,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2268,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2234,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2383,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2159,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2234,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2383,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2412,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2416,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2299,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2238,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2206,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2259,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2283,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2217,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2381,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2553,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2345,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2295,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2235,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2322,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2241,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2370,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2296,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2329,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2565,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2275,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2341,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2369,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2384,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2269,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2297,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2523,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2260,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2392,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2308,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2408,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2264,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2310,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2458,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2300,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2479,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2402,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2295,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2356,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2335,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2272,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2307,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2475,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2242,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2302,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2306,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2322,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2341,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2330,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2381,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2481,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2431,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2356,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2258,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2472,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2596,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2335,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2302,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2311,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2563,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2318,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2456,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 3219,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2556,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2337,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2497,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2376,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2544,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2348,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2495,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2485,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2631,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2390,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2564,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_core.test.js",
      "duration": 2377,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1623,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1850,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1787,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1976,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1932,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1868,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1698,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1677,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1773,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1695,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1692,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1689,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for active-directory with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1925,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1795,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1808,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1695,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1937,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1686,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1704,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1676,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1727,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1898,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1925,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for apple with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1713,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1667,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1635,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1796,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1907,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1710,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1786,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1782,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1682,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1714,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1741,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1850,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for bitbucket with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1743,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1688,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1703,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1756,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1767,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1789,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1794,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1769,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1872,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1644,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1869,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1721,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1704,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for boxy-saml with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1774,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2023,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2118,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1872,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1938,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1686,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1748,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1765,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1843,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1753,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1875,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1800,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1846,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for discord with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1698,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1976,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1728,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1683,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1778,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1996,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1876,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1885,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1743,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1848,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1855,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1922,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for facebook with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1685,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2142,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1736,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1887,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1765,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1820,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1716,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1719,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1777,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1770,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1765,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1949,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1822,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for github with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1891,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1742,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1817,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1879,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1791,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1712,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1829,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1924,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1752,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1948,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1855,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1961,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1828,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for gitlab with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1728,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1809,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1829,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1790,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1798,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1831,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1760,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1828,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1823,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1818,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1926,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1902,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1981,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1805,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1789,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1894,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1805,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1848,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1852,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1886,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1940,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1950,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1835,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1798,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1841,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1854,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for google-workspaces with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1748,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1866,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1806,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1814,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1979,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1763,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1990,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2033,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1983,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1774,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1783,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1901,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1812,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for linkedin with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1816,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"authorizationEndpoint\":\"https://auth.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1929,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"authorizationEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1833,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"tokenEndpoint\":\"https://token.example.com\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1836,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"tokenEndpointBodyParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1819,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoEndpoint\":\"https://auth.example.com/user\"}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1960,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoEndpointQueryParams\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2058,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoEndpointHeaders\":{\"foo\":\"bar\"}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1815,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1764,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 2099,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromUserInfoAPI\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1882,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"userId\":\"userid\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1817,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"email\":\"useremail\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1757,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config with overrides should work for okta with override {\"userInfoMap\":{\"fromIdTokenPayload\":{\"emailVerified\":\"useremail_verified\"}}}",
      "file": "/workspace/test/thirdparty/provider.config_from_static.test.js",
      "duration": 1746,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the provider override is not increasing call stack",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test the provider override is not increasing call stack",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2133,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the config is same within override and provider instance",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test the config is same within override and provider instance",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 1766,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the config is same within override and provider instance when overriding getConfigForClientType",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test the config is same within override and provider instance when overriding getConfigForClientType",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 1883,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test built-in provider computed config from static config",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from static config",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 1800,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test built-in provider computed config from core config",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test built-in provider computed config from core config",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 11365,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when only one clientType is provided from static",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when only one clientType is provided from static",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2179,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there are more than one clientType from static",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there are more than one clientType from static",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 1873,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there is one clientType from core",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there is one clientType from core",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2672,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there are more than one clientType from core",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there are more than one clientType from core",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2589,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there are same clientTypes from static and core",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there are same clientTypes from static and core",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2634,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test clientType matching when there are different clientTypes from static and core",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test clientType matching when there are different clientTypes from static and core",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 2693,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getProvider and signInUp on an app and tenant",
      "fullTitle": "providerConfigTest: \u001b[33;3;2m[test/thirdparty/provider.config.test.js]\u001b[0m test getProvider and signInUp on an app and tenant",
      "file": "/workspace/test/thirdparty/provider.config.test.js",
      "duration": 4065,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for third party provider google",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test minimum config for third party provider google",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1447,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing additional params, check they are present in authorisation url for thirdparty provider google",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing additional params, check they are present in authorisation url for thirdparty provider google",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1436,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing scopes in config for thirdparty provider google",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing scopes in config for thirdparty provider google",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1363,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for third party provider facebook",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test minimum config for third party provider facebook",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1426,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing scopes in config for third party provider facebook",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing scopes in config for third party provider facebook",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1475,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for third party provider github",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test minimum config for third party provider github",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1529,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test additional params, check they are present in authorisation url for third party provider github",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test additional params, check they are present in authorisation url for third party provider github",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1563,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing scopes in config for third party provider github",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing scopes in config for third party provider github",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1318,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for third party provider apple",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test minimum config for third party provider apple",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1634,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing additional params, check they are present in authorisation url for third party provider apple",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing additional params, check they are present in authorisation url for third party provider apple",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1455,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test passing scopes in config for third party provider apple",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test passing scopes in config for third party provider apple",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1370,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test duplicate provider",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m test duplicate provider",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1543,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that sign in up fails if validateAccessToken throws",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m Test that sign in up fails if validateAccessToken throws",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "Test that sign in up works if validateAccessToken does not throw",
      "fullTitle": "providerTest: \u001b[33;3;2m[test/thirdparty/provider.test.js]\u001b[0m Test that sign in up works if validateAccessToken does not throw",
      "file": "/workspace/test/thirdparty/provider.test.js",
      "duration": 1539,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "for ThirdParty user that isEmailVerified returns the correct email verification status",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/thirdparty/recipeFunctions.test.js]\u001b[0m for ThirdParty user that isEmailVerified returns the correct email verification status",
      "file": "/workspace/test/thirdparty/recipeFunctions.test.js",
      "duration": 1504,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with rid thirdpartypasswordless still works",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test with rid thirdpartypasswordless still works",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1754,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test with rid thirdpartyemailpassword still works",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test with rid thirdpartyemailpassword still works",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1429,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that disable api, the default signinup API does not work",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test that disable api, the default signinup API does not work",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1609,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config without code for thirdparty module",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test minimum config without code for thirdparty module",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1544,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test missing redirectURIInfo and oAuthTokens",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test missing redirectURIInfo and oAuthTokens",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1507,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for thirdparty module",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test minimum config for thirdparty module",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1588,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config for thirdparty module, email unverified",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test minimum config for thirdparty module, email unverified",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1451,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test thirdparty provider doesn't exist",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test thirdparty provider doesn't exist",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1497,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test email not returned in getProfileInfo function",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test email not returned in getProfileInfo function",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1537,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test error thrown from getProfileInfo function",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test error thrown from getProfileInfo function",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1509,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid POST params for thirdparty module",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test invalid POST params for thirdparty module",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1664,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test handlePostSignUpIn gets set correctly",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test handlePostSignUpIn gets set correctly",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1456,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test minimum config with one provider",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test minimum config with one provider",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1607,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserCount and pagination works fine",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test getUserCount and pagination works fine",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1611,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "getUserById when user does not exist",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m getUserById when user does not exist",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1660,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserByThirdPartyInfo when user does not exist",
      "fullTitle": "signinupTest: \u001b[33;3;2m[test/thirdparty/signinupFeature.test.js]\u001b[0m test getUserByThirdPartyInfo when user does not exist",
      "file": "/workspace/test/thirdparty/signinupFeature.test.js",
      "duration": 1520,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test the default route and it should revoke the session",
      "fullTitle": "signoutTest: \u001b[33;3;2m[test/thirdparty/signoutFeature.test.js]\u001b[0m test the default route and it should revoke the session",
      "file": "/workspace/test/thirdparty/signoutFeature.test.js",
      "duration": 1873,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that disabling default route and calling the API returns 404",
      "fullTitle": "signoutTest: \u001b[33;3;2m[test/thirdparty/signoutFeature.test.js]\u001b[0m test that disabling default route and calling the API returns 404",
      "file": "/workspace/test/thirdparty/signoutFeature.test.js",
      "duration": 1550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that calling the API without a session should return 401",
      "fullTitle": "signoutTest: \u001b[33;3;2m[test/thirdparty/signoutFeature.test.js]\u001b[0m test that calling the API without a session should return 401",
      "file": "/workspace/test/thirdparty/signoutFeature.test.js",
      "duration": 1551,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that signout API reutrns try refresh token, refresh session and signout should return OK",
      "fullTitle": "signoutTest: \u001b[33;3;2m[test/thirdparty/signoutFeature.test.js]\u001b[0m test that signout API reutrns try refresh token, refresh session and signout should return OK",
      "file": "/workspace/test/thirdparty/signoutFeature.test.js",
      "duration": 6700,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersOldestFirst",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/thirdparty/users.test.js]\u001b[0m test getUsersOldestFirst",
      "file": "/workspace/test/thirdparty/users.test.js",
      "duration": 1686,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUsersNewestFirst",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/thirdparty/users.test.js]\u001b[0m test getUsersNewestFirst",
      "file": "/workspace/test/thirdparty/users.test.js",
      "duration": 1731,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test getUserCount",
      "fullTitle": "usersTest: \u001b[33;3;2m[test/thirdparty/users.test.js]\u001b[0m test getUserCount",
      "file": "/workspace/test/thirdparty/users.test.js",
      "duration": 1505,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test create device",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test create device",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 1471,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test update device",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test update device",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 1504,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test remove device",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test remove device",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 1422,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verify device",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test verify device",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 1470,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test verify totp",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test verify totp",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 6467,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test invalid totp",
      "fullTitle": "recipeFunctions: \u001b[33;3;2m[test/totp/recipeFunctions.test.js]\u001b[0m test invalid totp",
      "file": "/workspace/test/totp/recipeFunctions.test.js",
      "duration": 6527,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a userId mapping",
      "fullTitle": "createUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/createUserIdMapping.test.js]\u001b[0m createUserIdMappingTest create a userId mapping",
      "file": "/workspace/test/useridmapping/createUserIdMapping.test.js",
      "duration": 1504,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a userId mapping with an unknown superTokensUserId",
      "fullTitle": "createUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/createUserIdMapping.test.js]\u001b[0m createUserIdMappingTest create a userId mapping with an unknown superTokensUserId",
      "file": "/workspace/test/useridmapping/createUserIdMapping.test.js",
      "duration": 1385,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a userId mapping when a mapping already exists",
      "fullTitle": "createUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/createUserIdMapping.test.js]\u001b[0m createUserIdMappingTest create a userId mapping when a mapping already exists",
      "file": "/workspace/test/useridmapping/createUserIdMapping.test.js",
      "duration": 1442,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a userId mapping when userId already has usermetadata with and without force",
      "fullTitle": "createUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/createUserIdMapping.test.js]\u001b[0m createUserIdMappingTest create a userId mapping when userId already has usermetadata with and without force",
      "file": "/workspace/test/useridmapping/createUserIdMapping.test.js",
      "duration": 1730,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete an unknown userId mapping",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete an unknown userId mapping",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1610,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a userId mapping with userIdType as SUPERTOKENS",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete a userId mapping with userIdType as SUPERTOKENS",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1500,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a userId mapping with userIdType as EXTERNAL",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete a userId mapping with userIdType as EXTERNAL",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1550,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a userId mapping with userIdType as ANY",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete a userId mapping with userIdType as ANY",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1557,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a userId mapping when userMetadata exists with externalId with and without force",
      "fullTitle": "deleteUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/deleteUserIdMapping.test.js]\u001b[0m deleteUserIdMapping: delete a userId mapping when userMetadata exists with externalId with and without force",
      "file": "/workspace/test/useridmapping/deleteUserIdMapping.test.js",
      "duration": 1677,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get userId mapping",
      "fullTitle": "getUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/getUserIdMapping.test.js]\u001b[0m getUserIdMappingTest get userId mapping",
      "file": "/workspace/test/useridmapping/getUserIdMapping.test.js",
      "duration": 1541,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get userId mapping when mapping does not exist",
      "fullTitle": "getUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/getUserIdMapping.test.js]\u001b[0m getUserIdMappingTest get userId mapping when mapping does not exist",
      "file": "/workspace/test/useridmapping/getUserIdMapping.test.js",
      "duration": 1586,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get userId mapping when externalUserIdInfo does not exist",
      "fullTitle": "getUserIdMappingTest: \u001b[33;3;2m[test/useridmapping/getUserIdMapping.test.js]\u001b[0m getUserIdMappingTest get userId mapping when externalUserIdInfo does not exist",
      "file": "/workspace/test/useridmapping/getUserIdMapping.test.js",
      "duration": 1542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, retrieve the user info using getUserById and check that the externalId is returned",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m getUserById create an emailPassword user and map their userId, retrieve the user info using getUserById and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1508,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, retrieve the user info using getUserByEmail and check that the externalId is returned",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m getUserByEmail create an emailPassword user and map their userId, retrieve the user info using getUserByEmail and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1433,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, signIn, check that the userRetrieved has the mapped userId",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m signIn create an emailPassword user and map their userId, signIn, check that the userRetrieved has the mapped userId",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1628,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, and do a password reset using the external id, check that it gets reset",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m password reset create an emailPassword user and map their userId, and do a password reset using the external id, check that it gets reset",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1494,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, update their email and password using the externalId",
      "fullTitle": "userIdMapping with emailpassword: \u001b[33;3;2m[test/useridmapping/recipeTests/emailpassword.test.js]\u001b[0m update email and password create an emailPassword user and map their userId, update their email and password using the externalId",
      "file": "/workspace/test/useridmapping/recipeTests/emailpassword.test.js",
      "duration": 1692,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, signIn again and check that the externalId is returned",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m consumeCode create a passwordless user and map their userId, signIn again and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1669,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, call getUserById and check that the externalId is returned",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m getUserById create a passwordless user and map their userId, call getUserById and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1736,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, call getUserByEmail and check that the externalId is returned",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m getUserByEmail create a passwordless user and map their userId, call getUserByEmail and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1553,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, call getUserByPhoneNumber and check that the externalId is returned",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m getUserByPhoneNumber create a passwordless user and map their userId, call getUserByPhoneNumber and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1554,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a passwordless user and map their userId, call updateUser to add their email and retrieve the user to see if the changes are reflected",
      "fullTitle": "userIdMapping with passwordless: \u001b[33;3;2m[test/useridmapping/recipeTests/passwordless.test.js]\u001b[0m updateUser create a passwordless user and map their userId, call updateUser to add their email and retrieve the user to see if the changes are reflected",
      "file": "/workspace/test/useridmapping/recipeTests/passwordless.test.js",
      "duration": 1546,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create an emailPassword user and map their userId, then delete user with the externalId",
      "fullTitle": "userIdMapping with supertokens recipe: \u001b[33;3;2m[test/useridmapping/recipeTests/supertokens.test.js]\u001b[0m deleteUser create an emailPassword user and map their userId, then delete user with the externalId",
      "file": "/workspace/test/useridmapping/recipeTests/supertokens.test.js",
      "duration": 1590,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create multiple users and map one of the users userId, retrieve all users and check that response will contain the externalId for the mapped user",
      "fullTitle": "userIdMapping with supertokens recipe: \u001b[33;3;2m[test/useridmapping/recipeTests/supertokens.test.js]\u001b[0m getUsers create multiple users and map one of the users userId, retrieve all users and check that response will contain the externalId for the mapped user",
      "file": "/workspace/test/useridmapping/recipeTests/supertokens.test.js",
      "duration": 1711,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a thirdParty user and map their userId, signIn and check that the externalId is returned",
      "fullTitle": "userIdMapping with thirdparty: \u001b[33;3;2m[test/useridmapping/recipeTests/thirdparty.test.js]\u001b[0m signInUp create a thirdParty user and map their userId, signIn and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/thirdparty.test.js",
      "duration": 1526,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a thirdParty user and map their userId, retrieve the user info using getUserById and check that the externalId is returned",
      "fullTitle": "userIdMapping with thirdparty: \u001b[33;3;2m[test/useridmapping/recipeTests/thirdparty.test.js]\u001b[0m getUserById create a thirdParty user and map their userId, retrieve the user info using getUserById and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/thirdparty.test.js",
      "duration": 1480,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a thirdParty user and map their userId, retrieve the user info using getUsersByEmail and check that the externalId is returned",
      "fullTitle": "userIdMapping with thirdparty: \u001b[33;3;2m[test/useridmapping/recipeTests/thirdparty.test.js]\u001b[0m getUsersByEmail create a thirdParty user and map their userId, retrieve the user info using getUsersByEmail and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/thirdparty.test.js",
      "duration": 1503,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a thirdParty user and map their userId, retrieve the user info using getUserByThirdPartyInfo and check that the externalId is returned",
      "fullTitle": "userIdMapping with thirdparty: \u001b[33;3;2m[test/useridmapping/recipeTests/thirdparty.test.js]\u001b[0m getUserByThirdPartyInfo create a thirdParty user and map their userId, retrieve the user info using getUserByThirdPartyInfo and check that the externalId is returned",
      "file": "/workspace/test/useridmapping/recipeTests/thirdparty.test.js",
      "duration": 1551,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "update externalUserId mapping info with unknown userId",
      "fullTitle": "updateOrDeleteUserIdMappingInfoTest: \u001b[33;3;2m[test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js]\u001b[0m updateOrDeleteUserIdMappingInfoTest update externalUserId mapping info with unknown userId",
      "file": "/workspace/test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js",
      "duration": 1411,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "update externalUserId mapping info with userIdType as SUPERTOKENS and EXTERNAL",
      "fullTitle": "updateOrDeleteUserIdMappingInfoTest: \u001b[33;3;2m[test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js]\u001b[0m updateOrDeleteUserIdMappingInfoTest update externalUserId mapping info with userIdType as SUPERTOKENS and EXTERNAL",
      "file": "/workspace/test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js",
      "duration": 1486,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "update externalUserId mapping info with userIdType as ANY",
      "fullTitle": "updateOrDeleteUserIdMappingInfoTest: \u001b[33;3;2m[test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js]\u001b[0m updateOrDeleteUserIdMappingInfoTest update externalUserId mapping info with userIdType as ANY",
      "file": "/workspace/test/useridmapping/updateOrDeleteUserIdMappingInfo.test.js",
      "duration": 1613,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return OK for unknown user id",
      "fullTitle": "clearUserMetadataTest: \u001b[33;3;2m[test/usermetadata/clearUserMetadata.test.js]\u001b[0m clearUserMetadata should return OK for unknown user id",
      "file": "/workspace/test/usermetadata/clearUserMetadata.test.js",
      "duration": 1509,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should clear stored userId",
      "fullTitle": "clearUserMetadataTest: \u001b[33;3;2m[test/usermetadata/clearUserMetadata.test.js]\u001b[0m clearUserMetadata should clear stored userId",
      "file": "/workspace/test/usermetadata/clearUserMetadata.test.js",
      "duration": 1555,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work fine without config",
      "fullTitle": "configTest: \u001b[33;3;2m[test/usermetadata/config.test.js]\u001b[0m recipe init should work fine without config",
      "file": "/workspace/test/usermetadata/config.test.js",
      "duration": 1520,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return an empty object for unknown userIds",
      "fullTitle": "getUserMetadataTest: \u001b[33;3;2m[test/usermetadata/getUserMetadata.test.js]\u001b[0m getUserMetadata should return an empty object for unknown userIds",
      "file": "/workspace/test/usermetadata/getUserMetadata.test.js",
      "duration": 1798,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should return an object if it's created.",
      "fullTitle": "getUserMetadataTest: \u001b[33;3;2m[test/usermetadata/getUserMetadata.test.js]\u001b[0m getUserMetadata should return an object if it's created.",
      "file": "/workspace/test/usermetadata/getUserMetadata.test.js",
      "duration": 1470,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work without an override config",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/usermetadata/override.test.js]\u001b[0m recipe functions should work without an override config",
      "file": "/workspace/test/usermetadata/override.test.js",
      "duration": 1641,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should call user provided overrides",
      "fullTitle": "overrideTest: \u001b[33;3;2m[test/usermetadata/override.test.js]\u001b[0m recipe functions should call user provided overrides",
      "file": "/workspace/test/usermetadata/override.test.js",
      "duration": 1592,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create metadata for unknown user id",
      "fullTitle": "updateUserMetadataTest: \u001b[33;3;2m[test/usermetadata/updateUserMetadata.test.js]\u001b[0m updateUserMetadata should create metadata for unknown user id",
      "file": "/workspace/test/usermetadata/updateUserMetadata.test.js",
      "duration": 1538,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create metadata with utf8 encoding",
      "fullTitle": "updateUserMetadataTest: \u001b[33;3;2m[test/usermetadata/updateUserMetadata.test.js]\u001b[0m updateUserMetadata should create metadata with utf8 encoding",
      "file": "/workspace/test/usermetadata/updateUserMetadata.test.js",
      "duration": 1540,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should create metadata for cleared user id",
      "fullTitle": "updateUserMetadataTest: \u001b[33;3;2m[test/usermetadata/updateUserMetadata.test.js]\u001b[0m updateUserMetadata should create metadata for cleared user id",
      "file": "/workspace/test/usermetadata/updateUserMetadata.test.js",
      "duration": 1586,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should update metadata by shallow merge",
      "fullTitle": "updateUserMetadataTest: \u001b[33;3;2m[test/usermetadata/updateUserMetadata.test.js]\u001b[0m updateUserMetadata should update metadata by shallow merge",
      "file": "/workspace/test/usermetadata/updateUserMetadata.test.js",
      "duration": 1481,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add a role to a user",
      "fullTitle": "addRoleToUserTest: \u001b[33;3;2m[test/userroles/addRoleToUser.test.js]\u001b[0m addRoleToUserTest add a role to a user",
      "file": "/workspace/test/userroles/addRoleToUser.test.js",
      "duration": 1535,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add duplicate role to the user",
      "fullTitle": "addRoleToUserTest: \u001b[33;3;2m[test/userroles/addRoleToUser.test.js]\u001b[0m addRoleToUserTest add duplicate role to the user",
      "file": "/workspace/test/userroles/addRoleToUser.test.js",
      "duration": 1462,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add unknown role to the user",
      "fullTitle": "addRoleToUserTest: \u001b[33;3;2m[test/userroles/addRoleToUser.test.js]\u001b[0m addRoleToUserTest add unknown role to the user",
      "file": "/workspace/test/userroles/addRoleToUser.test.js",
      "duration": 1420,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should add claims to session without config",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m recipe init should add claims to session without config",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1530,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should not add claims if disabled in config",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m recipe init should not add claims if disabled in config",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1688,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should add claims to session with values",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m recipe init should add claims to session with values",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1547,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate roles",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m validation should validate roles",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1519,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate roles after refetching",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m validation should validate roles after refetching",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1527,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate permissions",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m validation should validate permissions",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1619,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should validate permissions after refetching",
      "fullTitle": "claimsTest: \u001b[33;3;2m[test/userroles/claims.test.js]\u001b[0m validation should validate permissions after refetching",
      "file": "/workspace/test/userroles/claims.test.js",
      "duration": 1800,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "should work fine without config",
      "fullTitle": "configTest: \u001b[33;3;2m[test/userroles/config.test.js]\u001b[0m recipe init should work fine without config",
      "file": "/workspace/test/userroles/config.test.js",
      "duration": 1665,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a new role",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions create a new role",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1513,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create the same role twice",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions create the same role twice",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1459,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create a role with permissions",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions create a role with permissions",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1547,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add new permissions to a role",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions add new permissions to a role",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1509,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "add duplicate permission",
      "fullTitle": "createNewRoleOrAddPermissionsTest: \u001b[33;3;2m[test/userroles/createNewRoleOrAddPermissions.test.js]\u001b[0m createNewRoleOrAddPermissions add duplicate permission",
      "file": "/workspace/test/userroles/createNewRoleOrAddPermissions.test.js",
      "duration": 1545,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create roles, add them to a user and delete one of the roles",
      "fullTitle": "deleteRole: \u001b[33;3;2m[test/userroles/deleteRole.test.js]\u001b[0m deleteRole create roles, add them to a user and delete one of the roles",
      "file": "/workspace/test/userroles/deleteRole.test.js",
      "duration": 1650,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "delete a role that does not exist",
      "fullTitle": "deleteRole: \u001b[33;3;2m[test/userroles/deleteRole.test.js]\u001b[0m deleteRole delete a role that does not exist",
      "file": "/workspace/test/userroles/deleteRole.test.js",
      "duration": 1602,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get permissions for a role",
      "fullTitle": "getPermissionsForRole: \u001b[33;3;2m[test/userroles/getPermissionsForRole.test.js]\u001b[0m getPermissionsForRole get permissions for a role",
      "file": "/workspace/test/userroles/getPermissionsForRole.test.js",
      "duration": 1594,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get permissions for an unknown role",
      "fullTitle": "getPermissionsForRole: \u001b[33;3;2m[test/userroles/getPermissionsForRole.test.js]\u001b[0m getPermissionsForRole get permissions for an unknown role",
      "file": "/workspace/test/userroles/getPermissionsForRole.test.js",
      "duration": 1490,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "create roles, add them to a user check that the user has the roles",
      "fullTitle": "getRolesForUser: \u001b[33;3;2m[test/userroles/getRolesForUser.test.js]\u001b[0m getRolesForUser create roles, add them to a user check that the user has the roles",
      "file": "/workspace/test/userroles/getRolesForUser.test.js",
      "duration": 1669,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get roles that have permissions",
      "fullTitle": "getRolesThatHavePermissions: \u001b[33;3;2m[test/userroles/getRolesThatHavePermissions.test.js]\u001b[0m getRolesThatHavePermissions get roles that have permissions",
      "file": "/workspace/test/userroles/getRolesThatHavePermissions.test.js",
      "duration": 1730,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get roles for unknown permission",
      "fullTitle": "getRolesThatHavePermissions: \u001b[33;3;2m[test/userroles/getRolesThatHavePermissions.test.js]\u001b[0m getRolesThatHavePermissions get roles for unknown permission",
      "file": "/workspace/test/userroles/getRolesThatHavePermissions.test.js",
      "duration": 1621,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get users for a role",
      "fullTitle": "getUsersThatHaveRole: \u001b[33;3;2m[test/userroles/getUsersThatHaveRole.test.js]\u001b[0m getUsersThatHaveRole get users for a role",
      "file": "/workspace/test/userroles/getUsersThatHaveRole.test.js",
      "duration": 1754,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "get users for an unknown role",
      "fullTitle": "getUsersThatHaveRole: \u001b[33;3;2m[test/userroles/getUsersThatHaveRole.test.js]\u001b[0m getUsersThatHaveRole get users for an unknown role",
      "file": "/workspace/test/userroles/getUsersThatHaveRole.test.js",
      "duration": 1542,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test that different roles can be assigned for the same user for each tenant",
      "fullTitle": "multitenant role: \u001b[33;3;2m[test/userroles/multitenantRole.test.js]\u001b[0m test that different roles can be assigned for the same user for each tenant",
      "file": "/workspace/test/userroles/multitenantRole.test.js",
      "duration": 6522,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove permissions from a role",
      "fullTitle": "getPermissionsForRole: \u001b[33;3;2m[test/userroles/getPermissionsForRole.test.js]\u001b[0m getPermissionsForRole remove permissions from a role",
      "file": "/workspace/test/userroles/removePermissionsFromRole.test.js",
      "duration": 1882,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove permissions from an unknown role",
      "fullTitle": "getPermissionsForRole: \u001b[33;3;2m[test/userroles/getPermissionsForRole.test.js]\u001b[0m getPermissionsForRole remove permissions from an unknown role",
      "file": "/workspace/test/userroles/removePermissionsFromRole.test.js",
      "duration": 1538,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove role from user",
      "fullTitle": "removeUserRoleTest: \u001b[33;3;2m[test/userroles/removeUserRole.test.js]\u001b[0m removeUserRole remove role from user",
      "file": "/workspace/test/userroles/removeUserRole.test.js",
      "duration": 1621,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove a role the user does not have",
      "fullTitle": "removeUserRoleTest: \u001b[33;3;2m[test/userroles/removeUserRole.test.js]\u001b[0m removeUserRole remove a role the user does not have",
      "file": "/workspace/test/userroles/removeUserRole.test.js",
      "duration": 1533,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "remove an unknown role from the user",
      "fullTitle": "removeUserRoleTest: \u001b[33;3;2m[test/userroles/removeUserRole.test.js]\u001b[0m removeUserRole remove an unknown role from the user",
      "file": "/workspace/test/userroles/removeUserRole.test.js",
      "duration": 1752,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test default config for webauthn module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/webauthn/config.test.js]\u001b[0m test default config for webauthn module",
      "file": "/workspace/test/webauthn/config.test.js",
      "duration": 1507,
      "currentRetry": 0,
      "err": {}
    },
    {
      "title": "test config for webauthn module",
      "fullTitle": "configTest: \u001b[33;3;2m[test/webauthn/config.test.js]\u001b[0m test config for webauthn module",
      "file": "/workspace/test/webauthn/config.test.js",
      "duration": 1580,
      "currentRetry": 0,
      "err": {}
    }
  ]
}