@pack/hydrogen 1.0.1-ab-test.3 → 1.0.1-ab-test.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,6 +45,9 @@ interface QueryResponse<T> {
45
45
  }
46
46
  export interface Pack {
47
47
  abTest: Test | null | undefined;
48
+ /**
49
+ * @deprecated The method should not be used
50
+ */
48
51
  getPackSessionData(): {
49
52
  storeId: string;
50
53
  sessionId: string;
@@ -52,6 +55,13 @@ export interface Pack {
52
55
  isPreviewModeEnabled: boolean;
53
56
  customizerMeta: any;
54
57
  };
58
+ getPackContextData(): {
59
+ packStoreId: string;
60
+ packSessionId: string;
61
+ packAbTest: Test | null | undefined;
62
+ packIsPreviewMode: boolean;
63
+ packCustomizerMeta: string | null;
64
+ };
55
65
  handleRequest(request: Request): Promise<(response: Response) => void>;
56
66
  isPreviewModeEnabled: () => boolean;
57
67
  isValidEditToken: PackClient["isValidEditToken"];
@@ -1 +1 @@
1
- {"version":3,"file":"create-pack-client.d.ts","sourceRoot":"","sources":["../src/create-pack-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAML,IAAI,EACJ,SAAS,EAGV,MAAM,cAAc,CAAC;AAEtB,uGAAuG;AACvG,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,UAAU,kBAAkB;IAC1B;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;IACb;;;OAGG;IACH,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErC,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,aAAa,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,kBAAkB,IAAI;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;QAChC,oBAAoB,EAAE,OAAO,CAAC;QAC9B,cAAc,EAAE,GAAG,CAAC;KACrB,CAAC;IACF,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC;IACvE,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,EACb,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,YAAY,KACnB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AA2FD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAsMvE"}
1
+ {"version":3,"file":"create-pack-client.d.ts","sourceRoot":"","sources":["../src/create-pack-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAML,IAAI,EACJ,SAAS,EAGV,MAAM,cAAc,CAAC;AAEtB,uGAAuG;AACvG,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,UAAU,kBAAkB;IAC1B;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC;IACb;;;OAGG;IACH,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErC,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,aAAa,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC;;OAEG;IACH,kBAAkB,IAAI;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;QAChC,oBAAoB,EAAE,OAAO,CAAC;QAC9B,cAAc,EAAE,GAAG,CAAC;KACrB,CAAC;IACF,kBAAkB,IAAI;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;QACpC,iBAAiB,EAAE,OAAO,CAAC;QAC3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,CAAC;IACF,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC;IACvE,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,EACb,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,YAAY,KACnB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAoJD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAgPvE"}
@@ -28,6 +28,43 @@ function hashQuery(query, variables, headers) {
28
28
  hash += JSON.stringify(headers);
29
29
  return sha256(hash);
30
30
  }
31
+ async function getCacheKey(withCache, query, token, options) {
32
+ let queryHash = await hashQuery(query, options?.variables, options?.headers);
33
+ let publishedAt;
34
+ try {
35
+ const resp = await withCache("pack:content:publishedAt", CacheCustom({
36
+ maxAge: 15,
37
+ staleWhileRevalidate: 15,
38
+ }), async () => {
39
+ const URL = "https://cache-check-production.packdigital.workers.dev/published-at";
40
+ const resp = await fetch(URL, {
41
+ headers: { Authorization: `Bearer ${token}` },
42
+ });
43
+ const { status } = resp;
44
+ if (status !== 200) {
45
+ let message;
46
+ if (status === 401) {
47
+ message =
48
+ "Pack error: Unauthorized request to cache check service. Please check your token.";
49
+ }
50
+ else {
51
+ message = `Pack error: Request to cache check service failed with status ${status}`;
52
+ }
53
+ console.error(message);
54
+ return null;
55
+ }
56
+ return resp.json();
57
+ });
58
+ publishedAt = resp?.publishedAt;
59
+ }
60
+ catch (err) {
61
+ console.error(err);
62
+ }
63
+ if (publishedAt) {
64
+ return `${queryHash}:${publishedAt}`;
65
+ }
66
+ return queryHash;
67
+ }
31
68
  // Extends the CacheLong strategy with a stale-if-error policy
32
69
  const cacheCustom = CacheCustom({
33
70
  maxAge: 3600,
@@ -131,6 +168,15 @@ export function createPackClient(options) {
131
168
  customizerMeta: session.get("customizerMeta"),
132
169
  };
133
170
  },
171
+ getPackContextData: () => {
172
+ return {
173
+ packStoreId: storeId,
174
+ packSessionId: session.id,
175
+ packAbTest: getTestSession(session, testFromQueryParams, previewEnabled),
176
+ packIsPreviewMode: previewEnabled,
177
+ packCustomizerMeta: session.get("customizerMeta"),
178
+ };
179
+ },
134
180
  isPreviewModeEnabled: () => previewEnabled,
135
181
  isValidEditToken: () => new Promise(() => false),
136
182
  async query(query, { variables } = {}) {
@@ -157,6 +203,7 @@ export function createPackClient(options) {
157
203
  token,
158
204
  contentEnvironment: clientContentEnvironment,
159
205
  sessionId: session.id,
206
+ clientName: "HydrogenClient",
160
207
  });
161
208
  return {
162
209
  abTest: getTestSession(session, testFromQueryParams, previewEnabled),
@@ -169,6 +216,15 @@ export function createPackClient(options) {
169
216
  customizerMeta: session.get("customizerMeta"),
170
217
  };
171
218
  },
219
+ getPackContextData: () => {
220
+ return {
221
+ packStoreId: storeId,
222
+ packSessionId: session.id,
223
+ packAbTest: getTestSession(session, testFromQueryParams, previewEnabled),
224
+ packIsPreviewMode: previewEnabled,
225
+ packCustomizerMeta: session.get("customizerMeta"),
226
+ };
227
+ },
172
228
  handleRequest,
173
229
  isPreviewModeEnabled: () => previewEnabled,
174
230
  isValidEditToken: (token) => packClient.isValidEditToken(token),
@@ -183,7 +239,6 @@ export function createPackClient(options) {
183
239
  testInfoForRequest,
184
240
  testFromQueryParams: testFromQueryParams || test,
185
241
  });
186
- const queryHash = await hashQuery(query, variables, headers);
187
242
  const queryVariables = variables ? { ...variables } : {};
188
243
  if (previewEnabled) {
189
244
  queryVariables.version = "CURRENT";
@@ -207,6 +262,10 @@ export function createPackClient(options) {
207
262
  return { error, data: {} };
208
263
  }
209
264
  }
265
+ const queryHash = await getCacheKey(withCache, query, token, {
266
+ variables: queryVariables,
267
+ headers,
268
+ });
210
269
  const response = await withCache(queryHash, strategy, async () => {
211
270
  try {
212
271
  return await packClient.fetch(query, {
@@ -4,7 +4,7 @@ export async function handleRequest(pack, request, handleRequest) {
4
4
  const [response] = await Promise.all([
5
5
  handleRequest(request),
6
6
  packlytics(request, pack.session, {
7
- storeFrontId: pack.getPackSessionData().storeId,
7
+ storefrontId: pack.getPackContextData().packStoreId,
8
8
  sessionSecret: pack.session.secret,
9
9
  }),
10
10
  ]);
@@ -3,7 +3,7 @@ export function useAbTest() {
3
3
  // @ts-ignore
4
4
  const { abTest: test } = useRouteLoaderData("root");
5
5
  if (test === undefined) {
6
- throw new Error("No A/B test found, are you sure you have call ...pack.getPackSessionData() on root loader return?");
6
+ throw new Error("No A/B test found, are you sure you have call ...pack.getPackContextData() on root loader return?");
7
7
  }
8
8
  return test;
9
9
  }
@@ -11,7 +11,7 @@ export function useAbTestSessionId() {
11
11
  // @ts-ignore
12
12
  const { sessionId } = useRouteLoaderData("root");
13
13
  if (!sessionId) {
14
- throw new Error("No Session ID found, are you sure you have call ...pack.getPackSessionData() on root loader return?");
14
+ throw new Error("No Session ID found, are you sure you have call ...pack.getPackContextData() on root loader return?");
15
15
  }
16
16
  return sessionId;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pack-test-route.d.ts","sourceRoot":"","sources":["../../src/tests/pack-test-route.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,aAAa,YAIzB,CAAC"}
1
+ {"version":3,"file":"pack-test-route.d.ts","sourceRoot":"","sources":["../../src/tests/pack-test-route.ts"],"names":[],"mappings":"AA6CA,eAAO,MAAM,aAAa,YAIzB,CAAC"}
@@ -1,15 +1,18 @@
1
- import { useLoaderData } from "@remix-run/react";
1
+ import { useLoaderData, useMatches } from "@remix-run/react";
2
2
  import Cookies from "js-cookie";
3
3
  import { useEffect } from "react";
4
4
  import { useRevalidator } from "react-router-dom";
5
5
  import { usePackTestContext } from "./pack-test-context";
6
6
  const usePackLoaderData = () => {
7
7
  const { testInfo } = useLoaderData();
8
+ const [root] = useMatches();
9
+ const { isPreviewModeEnabled } = root?.data;
8
10
  const { testExposureCallback } = usePackTestContext();
9
11
  const revalidator = useRevalidator();
10
12
  const exposedTestCookieString = Cookies.get("exposedTest");
11
13
  useEffect(() => {
12
- if (testInfo && !exposedTestCookieString) {
14
+ console.log;
15
+ if (testInfo && !exposedTestCookieString && !isPreviewModeEnabled) {
13
16
  // Set exposedTest cookie used by server to determine if session has been exposed to test
14
17
  const expires = new Date();
15
18
  expires.setHours(expires.getHours() + 24);
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/tests/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAqBD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAClE,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,QAAS,SAAQ,IAAI;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,4BAA4B,EAC5B,UAAU,EACV,OAAO,GACR,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAmHpD;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,mBAAmB,EAAE,SAAS,GAAG,IAAI,EACrC,cAAc,EAAE,OAAO,GACtB,IAAI,GAAG,IAAI,GAAG,SAAS,CA8BzB;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,OAAO,GACf,4BAA4B,CA0B9B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CA2CzE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE;IACP,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAC9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACjC,OAmCF"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/tests/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAqBD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAClE,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,QAAS,SAAQ,IAAI;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,4BAA4B,EAC5B,UAAU,EACV,OAAO,GACR,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAsHpD;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,mBAAmB,EAAE,SAAS,GAAG,IAAI,EACrC,cAAc,EAAE,OAAO,GACtB,IAAI,GAAG,IAAI,GAAG,SAAS,CA8BzB;AAED,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,OAAO,GACf,4BAA4B,CA0B9B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CA2CzE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE;IACP,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAC9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACjC,OAmCF"}
@@ -30,7 +30,7 @@ export async function getTestInfo({ request, testTargetAudienceAttributes, packC
30
30
  testTargetAudienceAttributes,
31
31
  },
32
32
  });
33
- const fetchTestByRulesSetTestinfoAsFirstExposure = async () => {
33
+ const fetchTestByRulesSetTestInfoAsFirstExposure = async () => {
34
34
  const resp = await packClientFetchTestByRules;
35
35
  const responseTest = resp.data?.testByRules;
36
36
  if (responseTest) {
@@ -74,14 +74,15 @@ export async function getTestInfo({ request, testTargetAudienceAttributes, packC
74
74
  }
75
75
  else {
76
76
  // If the test is not running anymore, fetch a new test for the user
77
- await fetchTestByRulesSetTestinfoAsFirstExposure();
77
+ await fetchTestByRulesSetTestInfoAsFirstExposure();
78
78
  }
79
79
  }
80
80
  else {
81
- if (!testSession) {
81
+ if (!testSession ||
82
+ !(testSession.data?.id && testSession.data?.testVariant)) {
82
83
  // If there is no assigned test on the session, check if there is a test
83
84
  // for attributes, then assign to session and return value.
84
- await fetchTestByRulesSetTestinfoAsFirstExposure();
85
+ await fetchTestByRulesSetTestInfoAsFirstExposure();
85
86
  }
86
87
  else {
87
88
  // If there is test on session, check if the test on session is still running.
@@ -99,7 +100,7 @@ export async function getTestInfo({ request, testTargetAudienceAttributes, packC
99
100
  else {
100
101
  // If not running, clear test session and fetch a new test for the user
101
102
  session.set("test", undefined);
102
- await fetchTestByRulesSetTestinfoAsFirstExposure();
103
+ await fetchTestByRulesSetTestInfoAsFirstExposure();
103
104
  }
104
105
  }
105
106
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pack/hydrogen",
3
3
  "description": "Pack Hydrogen",
4
- "version": "1.0.1-ab-test.3",
4
+ "version": "1.0.1-ab-test.5",
5
5
  "exports": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "engines": {
@@ -23,7 +23,7 @@
23
23
  ],
24
24
  "dependencies": {
25
25
  "@pack/client": "^1.0.1-ab-test.0",
26
- "@pack/packlytics": "^1.0.1-ab-test.0",
26
+ "@pack/packlytics": "^1.0.1-ab-test.1",
27
27
  "@shopify/hydrogen": "^2023.10.2",
28
28
  "cookie": "^0.6.0",
29
29
  "js-cookie": "^3.0.5"