{"version":3,"file":"setup-valid-session.mjs","sources":["../../../../../test-helpers/setup-valid-session.ts"],"sourcesContent":["import type {SessionParams} from '../lib/session/types';\nimport {Session} from '../lib/session/session';\n\nimport {USER_ID} from './const';\n\n// Utility type to mark all nested parameters as optional\ntype DeepPartial<T> = T extends object\n  ? {[P in keyof T]?: DeepPartial<T[P]>}\n  : T;\n\n/**\n * Creates and returns a fake Session for the shop defined in sessionParams.\n *\n * @param sessionParams The Session parameters to use when creating the fake Session.\n * @returns {Session} The fake Session created.\n */\nexport function setUpValidSession(\n  sessionParams: DeepPartial<SessionParams> &\n    Pick<SessionParams, 'shop' | 'expires'>,\n): Session {\n  const overrides: Partial<SessionParams> = {...sessionParams} as SessionParams;\n  const shop = sessionParams.shop;\n  let id = `offline_${shop}`;\n  if (sessionParams.isOnline) {\n    const onlineAccessInfo = sessionParams.onlineAccessInfo;\n    const associated_user = onlineAccessInfo?.associated_user;\n    delete sessionParams.onlineAccessInfo?.associated_user;\n    delete sessionParams.onlineAccessInfo;\n\n    id = `${shop}_${USER_ID}`;\n    // Expires one day from now\n    overrides.expires =\n      sessionParams.expires || new Date(Date.now() + 1000 * 3600 * 24);\n    overrides.onlineAccessInfo = {\n      associated_user_scope: 'testScope',\n      expires_in: 3600 * 24,\n      associated_user: {\n        id: USER_ID,\n        account_owner: true,\n        collaborator: true,\n        email: 'test@test.test',\n        email_verified: true,\n        first_name: 'Test',\n        last_name: 'User',\n        locale: 'en-US',\n        ...associated_user,\n      },\n      ...onlineAccessInfo,\n    };\n  }\n\n  const session = new Session({\n    id,\n    shop,\n    isOnline: Boolean(sessionParams.isOnline),\n    state: 'test',\n    accessToken: 'totally_real_token',\n    scope: 'testScope',\n    ...overrides,\n  });\n\n  return session;\n}\n"],"names":[],"mappings":";;;AAUA;;;;;AAKG;AACG,SAAU,iBAAiB,CAC/B,aACyC,EAAA;AAEzC,IAAA,MAAM,SAAS,GAA2B,EAAC,GAAG,aAAa,EAAkB;AAC7E,IAAA,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI;AAC/B,IAAA,IAAI,EAAE,GAAG,CAAA,QAAA,EAAW,IAAI,EAAE;AAC1B,IAAA,IAAI,aAAa,CAAC,QAAQ,EAAE;AAC1B,QAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB;AACvD,QAAA,MAAM,eAAe,GAAG,gBAAgB,EAAE,eAAe;AACzD,QAAA,OAAO,aAAa,CAAC,gBAAgB,EAAE,eAAe;QACtD,OAAO,aAAa,CAAC,gBAAgB;AAErC,QAAA,EAAE,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,OAAO,EAAE;;AAEzB,QAAA,SAAS,CAAC,OAAO;AACf,YAAA,aAAa,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAClE,SAAS,CAAC,gBAAgB,GAAG;AAC3B,YAAA,qBAAqB,EAAE,WAAW;YAClC,UAAU,EAAE,IAAI,GAAG,EAAE;AACrB,YAAA,eAAe,EAAE;AACf,gBAAA,EAAE,EAAE,OAAO;AACX,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,KAAK,EAAE,gBAAgB;AACvB,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,GAAG,eAAe;AACnB,aAAA;AACD,YAAA,GAAG,gBAAgB;SACpB;IACH;AAEA,IAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,EAAE;QACF,IAAI;AACJ,QAAA,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;AACzC,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,WAAW,EAAE,oBAAoB;AACjC,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,GAAG,SAAS;AACb,KAAA,CAAC;AAEF,IAAA,OAAO,OAAO;AAChB;;;;"}