@bash-app/bash-common 30.186.0 → 30.193.0
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.
- package/dist/__tests__/stripeListingSubscriptionMessages.test.d.ts +2 -0
- package/dist/__tests__/stripeListingSubscriptionMessages.test.d.ts.map +1 -0
- package/dist/__tests__/stripeListingSubscriptionMessages.test.js +10 -0
- package/dist/__tests__/stripeListingSubscriptionMessages.test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/stripeListingSubscriptionMessages.d.ts +7 -0
- package/dist/stripeListingSubscriptionMessages.d.ts.map +1 -0
- package/dist/stripeListingSubscriptionMessages.js +13 -0
- package/dist/stripeListingSubscriptionMessages.js.map +1 -0
- package/dist/utils/__tests__/cancellationPolicyRefundResolver.test.d.ts +6 -0
- package/dist/utils/__tests__/cancellationPolicyRefundResolver.test.d.ts.map +1 -0
- package/dist/utils/__tests__/cancellationPolicyRefundResolver.test.js +104 -0
- package/dist/utils/__tests__/cancellationPolicyRefundResolver.test.js.map +1 -0
- package/dist/utils/addressUtils.d.ts.map +1 -1
- package/dist/utils/addressUtils.js +157 -54
- package/dist/utils/addressUtils.js.map +1 -1
- package/dist/utils/discountEngine/__tests__/eligibilityValidator.test.js +6 -2
- package/dist/utils/discountEngine/__tests__/eligibilityValidator.test.js.map +1 -1
- package/dist/utils/mediaClientDefaults.d.ts +7 -0
- package/dist/utils/mediaClientDefaults.d.ts.map +1 -0
- package/dist/utils/mediaClientDefaults.js +7 -0
- package/dist/utils/mediaClientDefaults.js.map +1 -0
- package/dist/utils/service/__tests__/partnerServiceProfileWizardPaymentMethod.test.d.ts +2 -0
- package/dist/utils/service/__tests__/partnerServiceProfileWizardPaymentMethod.test.d.ts.map +1 -0
- package/dist/utils/service/__tests__/partnerServiceProfileWizardPaymentMethod.test.js +18 -0
- package/dist/utils/service/__tests__/partnerServiceProfileWizardPaymentMethod.test.js.map +1 -0
- package/dist/utils/service/cancellationPolicyRefundResolver.d.ts +30 -0
- package/dist/utils/service/cancellationPolicyRefundResolver.d.ts.map +1 -0
- package/dist/utils/service/cancellationPolicyRefundResolver.js +82 -0
- package/dist/utils/service/cancellationPolicyRefundResolver.js.map +1 -0
- package/dist/utils/service/serviceUtils.d.ts +7 -0
- package/dist/utils/service/serviceUtils.d.ts.map +1 -1
- package/dist/utils/service/serviceUtils.js +173 -11
- package/dist/utils/service/serviceUtils.js.map +1 -1
- package/dist/utils/slugUtils.d.ts +5 -0
- package/dist/utils/slugUtils.d.ts.map +1 -1
- package/dist/utils/slugUtils.js +12 -0
- package/dist/utils/slugUtils.js.map +1 -1
- package/package.json +3 -2
- package/prisma/schema.prisma +6 -0
- package/src/__tests__/stripeListingSubscriptionMessages.test.ts +20 -0
- package/src/index.ts +3 -0
- package/src/stripeListingSubscriptionMessages.ts +18 -0
- package/src/utils/addressUtils.ts +175 -59
- package/src/utils/discountEngine/__tests__/eligibilityValidator.test.ts +6 -2
- package/src/utils/mediaClientDefaults.ts +6 -0
- package/src/utils/service/__tests__/partnerServiceProfileWizardPaymentMethod.test.ts +29 -0
- package/src/utils/service/cancellationPolicyRefundResolver.ts +112 -0
- package/src/utils/service/serviceUtils.ts +215 -15
- package/src/utils/slugUtils.ts +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripeListingSubscriptionMessages.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/stripeListingSubscriptionMessages.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LISTING_SUBSCRIPTION_PAYMENT_ALREADY_LINKING_USER_MESSAGE, userFacingMessageForListingSubscriptionStripeError, } from "../stripeListingSubscriptionMessages";
|
|
2
|
+
describe("userFacingMessageForListingSubscriptionStripeError", () => {
|
|
3
|
+
it("maps Stripe already-attached wording to actionable copy", () => {
|
|
4
|
+
expect(userFacingMessageForListingSubscriptionStripeError("The payment method has already been attached to a customer.")).toBe(LISTING_SUBSCRIPTION_PAYMENT_ALREADY_LINKING_USER_MESSAGE);
|
|
5
|
+
});
|
|
6
|
+
it("passes through other messages", () => {
|
|
7
|
+
expect(userFacingMessageForListingSubscriptionStripeError("Something else went wrong.")).toBe("Something else went wrong.");
|
|
8
|
+
});
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=stripeListingSubscriptionMessages.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripeListingSubscriptionMessages.test.js","sourceRoot":"","sources":["../../src/__tests__/stripeListingSubscriptionMessages.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yDAAyD,EACzD,kDAAkD,GACnD,MAAM,sCAAsC,CAAC;AAE9C,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAClE,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CACJ,kDAAkD,CAChD,6DAA6D,CAC9D,CACF,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CACJ,kDAAkD,CAAC,4BAA4B,CAAC,CACjF,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./definitions.js";
|
|
2
|
+
export * from "./stripeListingSubscriptionMessages.js";
|
|
2
3
|
export * from "./extendedSchemas.js";
|
|
3
4
|
export * from "./bashFeedTypes.js";
|
|
4
5
|
export * from "./membershipDefinitions.js";
|
|
@@ -21,6 +22,7 @@ export * from "./utils/recurrenceUtils.js";
|
|
|
21
22
|
export * from "./utils/service/attendeeOptionUtils.js";
|
|
22
23
|
export * from "./utils/service/regexUtils.js";
|
|
23
24
|
export * from "./utils/service/serviceUtils.js";
|
|
25
|
+
export * from "./utils/service/cancellationPolicyRefundResolver.js";
|
|
24
26
|
export * from "./utils/slugUtils.js";
|
|
25
27
|
export * from "./utils/sortUtils.js";
|
|
26
28
|
export * from "./utils/stringUtils.js";
|
|
@@ -33,6 +35,7 @@ export * from "./utils/blogUtils.js";
|
|
|
33
35
|
export * from "./utils/entityUtils.js";
|
|
34
36
|
export * from "./utils/generalDateTimeUtils.js";
|
|
35
37
|
export * from "./utils/luxonUtils.js";
|
|
38
|
+
export * from "./utils/mediaClientDefaults.js";
|
|
36
39
|
export * from "./utils/mathUtils.js";
|
|
37
40
|
export * from "./utils/birthdayExperienceQuality.js";
|
|
38
41
|
export * from "./utils/service/apiServiceBookingApiUtils.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAG3C,YAAY,EACV,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,OAAO,GACR,MAAM,gBAAgB,CAAC;AAExB,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAG3C,YAAY,EACV,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,OAAO,GACR,MAAM,gBAAgB,CAAC;AAExB,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qDAAqD,CAAC;AAEpE,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAG9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EACR,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,QAAQ,EAAE,sBAAsB,EAAE,cAAc,EACjE,MAAM,sBAAsB,CAAC;AAG9B,cAAc,+BAA+B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./definitions.js";
|
|
2
|
+
export * from "./stripeListingSubscriptionMessages.js";
|
|
2
3
|
export * from "./extendedSchemas.js";
|
|
3
4
|
export * from "./bashFeedTypes.js";
|
|
4
5
|
export * from "./membershipDefinitions.js";
|
|
@@ -20,6 +21,7 @@ export * from "./utils/recurrenceUtils.js";
|
|
|
20
21
|
export * from "./utils/service/attendeeOptionUtils.js";
|
|
21
22
|
export * from "./utils/service/regexUtils.js";
|
|
22
23
|
export * from "./utils/service/serviceUtils.js";
|
|
24
|
+
export * from "./utils/service/cancellationPolicyRefundResolver.js";
|
|
23
25
|
// Venue utils moved to paymentUtils.ts for better organization
|
|
24
26
|
export * from "./utils/slugUtils.js";
|
|
25
27
|
export * from "./utils/sortUtils.js";
|
|
@@ -33,6 +35,7 @@ export * from "./utils/blogUtils.js";
|
|
|
33
35
|
export * from "./utils/entityUtils.js";
|
|
34
36
|
export * from "./utils/generalDateTimeUtils.js";
|
|
35
37
|
export * from "./utils/luxonUtils.js";
|
|
38
|
+
export * from "./utils/mediaClientDefaults.js";
|
|
36
39
|
export * from "./utils/mathUtils.js";
|
|
37
40
|
export * from "./utils/birthdayExperienceQuality.js";
|
|
38
41
|
export * from "./utils/service/apiServiceBookingApiUtils.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAa3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,+DAA+D;AAC/D,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAE9C,iFAAiF;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAM3D,kBAAkB;AAClB,cAAc,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAa3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qDAAqD,CAAC;AACpE,+DAA+D;AAC/D,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAE9C,iFAAiF;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAM3D,kBAAkB;AAClB,cAAc,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-facing copy for listing-subscription (Connect billing customer) payment flows.
|
|
3
|
+
* Kept in bash-common so api and bash-app stay aligned without casts.
|
|
4
|
+
*/
|
|
5
|
+
export declare const LISTING_SUBSCRIPTION_PAYMENT_ALREADY_LINKING_USER_MESSAGE = "Your card is still linking to billing. Wait a few seconds and tap Confirm again.";
|
|
6
|
+
export declare function userFacingMessageForListingSubscriptionStripeError(raw: string): string;
|
|
7
|
+
//# sourceMappingURL=stripeListingSubscriptionMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripeListingSubscriptionMessages.d.ts","sourceRoot":"","sources":["../src/stripeListingSubscriptionMessages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,eAAO,MAAM,yDAAyD,qFACc,CAAC;AAErF,wBAAgB,kDAAkD,CAChE,GAAG,EAAE,MAAM,GACV,MAAM,CAKR"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-facing copy for listing-subscription (Connect billing customer) payment flows.
|
|
3
|
+
* Kept in bash-common so api and bash-app stay aligned without casts.
|
|
4
|
+
*/
|
|
5
|
+
const STRIPE_ALREADY_ATTACHED_SUBSTR = /already been attached to a customer/i;
|
|
6
|
+
export const LISTING_SUBSCRIPTION_PAYMENT_ALREADY_LINKING_USER_MESSAGE = "Your card is still linking to billing. Wait a few seconds and tap Confirm again.";
|
|
7
|
+
export function userFacingMessageForListingSubscriptionStripeError(raw) {
|
|
8
|
+
if (STRIPE_ALREADY_ATTACHED_SUBSTR.test(raw)) {
|
|
9
|
+
return LISTING_SUBSCRIPTION_PAYMENT_ALREADY_LINKING_USER_MESSAGE;
|
|
10
|
+
}
|
|
11
|
+
return raw;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=stripeListingSubscriptionMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripeListingSubscriptionMessages.js","sourceRoot":"","sources":["../src/stripeListingSubscriptionMessages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,8BAA8B,GAAG,sCAAsC,CAAC;AAE9E,MAAM,CAAC,MAAM,yDAAyD,GACpE,kFAAkF,CAAC;AAErF,MAAM,UAAU,kDAAkD,CAChE,GAAW;IAEX,IAAI,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,yDAAyD,CAAC;IACnE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellationPolicyRefundResolver.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/cancellationPolicyRefundResolver.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for cancellation refund resolution (single source of truth:
|
|
3
|
+
* SERVICE_CANCELLATION_POLICY_DATA).
|
|
4
|
+
*/
|
|
5
|
+
import { ServiceCancellationPolicy } from "@prisma/client";
|
|
6
|
+
import { cancellationRuleThresholdHours, getMatchingCancellationRefundRule, hoursUntilEventStart, resolveCancellationRefundFraction, } from "../service/cancellationPolicyRefundResolver.js";
|
|
7
|
+
describe("cancellationPolicyRefundResolver", () => {
|
|
8
|
+
const fixedNow = new Date("2026-01-01T12:00:00.000Z");
|
|
9
|
+
describe("hoursUntilEventStart", () => {
|
|
10
|
+
test("returns 0 when event is in the past", () => {
|
|
11
|
+
expect(hoursUntilEventStart(new Date("2025-12-01T12:00:00.000Z"), fixedNow)).toBe(0);
|
|
12
|
+
});
|
|
13
|
+
test("returns positive hours until start", () => {
|
|
14
|
+
const start = new Date("2026-01-03T12:00:00.000Z");
|
|
15
|
+
expect(hoursUntilEventStart(start, fixedNow)).toBe(48);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
describe("cancellationRuleThresholdHours", () => {
|
|
19
|
+
test("converts days to hours", () => {
|
|
20
|
+
expect(cancellationRuleThresholdHours({ days: 7, refundPercentage: 100 })).toBe(168);
|
|
21
|
+
});
|
|
22
|
+
test("uses hours when set", () => {
|
|
23
|
+
expect(cancellationRuleThresholdHours({ hours: 24, refundPercentage: 50 })).toBe(24);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
describe("VendorStandard (14d full, 3d partial)", () => {
|
|
27
|
+
test("20 days before: 100%", () => {
|
|
28
|
+
const eventStart = new Date("2026-01-21T12:00:00.000Z");
|
|
29
|
+
expect(resolveCancellationRefundFraction(ServiceCancellationPolicy.VendorStandard, {
|
|
30
|
+
eventStart,
|
|
31
|
+
now: fixedNow,
|
|
32
|
+
})).toBe(1);
|
|
33
|
+
});
|
|
34
|
+
test("10 days before: 50%", () => {
|
|
35
|
+
const eventStart = new Date("2026-01-11T12:00:00.000Z");
|
|
36
|
+
expect(resolveCancellationRefundFraction(ServiceCancellationPolicy.VendorStandard, {
|
|
37
|
+
eventStart,
|
|
38
|
+
now: fixedNow,
|
|
39
|
+
})).toBe(0.5);
|
|
40
|
+
});
|
|
41
|
+
test("2 days before: 0%", () => {
|
|
42
|
+
const eventStart = new Date("2026-01-03T12:00:00.000Z");
|
|
43
|
+
expect(resolveCancellationRefundFraction(ServiceCancellationPolicy.VendorStandard, {
|
|
44
|
+
eventStart,
|
|
45
|
+
now: fixedNow,
|
|
46
|
+
})).toBe(0);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe("VendorFlexible (7d full, 24h partial)", () => {
|
|
50
|
+
test("8 days before: 100%", () => {
|
|
51
|
+
const eventStart = new Date("2026-01-09T12:00:00.000Z");
|
|
52
|
+
expect(resolveCancellationRefundFraction(ServiceCancellationPolicy.VendorFlexible, {
|
|
53
|
+
eventStart,
|
|
54
|
+
now: fixedNow,
|
|
55
|
+
})).toBe(1);
|
|
56
|
+
});
|
|
57
|
+
test("5 days before: 50%", () => {
|
|
58
|
+
const eventStart = new Date("2026-01-06T12:00:00.000Z");
|
|
59
|
+
expect(resolveCancellationRefundFraction(ServiceCancellationPolicy.VendorFlexible, {
|
|
60
|
+
eventStart,
|
|
61
|
+
now: fixedNow,
|
|
62
|
+
})).toBe(0.5);
|
|
63
|
+
});
|
|
64
|
+
test("12 hours before: 0%", () => {
|
|
65
|
+
const eventStart = new Date("2026-01-02T00:00:00.000Z");
|
|
66
|
+
expect(resolveCancellationRefundFraction(ServiceCancellationPolicy.VendorFlexible, {
|
|
67
|
+
eventStart,
|
|
68
|
+
now: fixedNow,
|
|
69
|
+
})).toBe(0);
|
|
70
|
+
});
|
|
71
|
+
test("6d 23h before (~167h): still 50% tier, not full 7d", () => {
|
|
72
|
+
const eventStart = new Date("2026-01-08T11:00:00.000Z");
|
|
73
|
+
expect(hoursUntilEventStart(eventStart, fixedNow)).toBeCloseTo(167, 0);
|
|
74
|
+
expect(resolveCancellationRefundFraction(ServiceCancellationPolicy.VendorFlexible, {
|
|
75
|
+
eventStart,
|
|
76
|
+
now: fixedNow,
|
|
77
|
+
})).toBe(0.5);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe("VeryFlexible (24h full only)", () => {
|
|
81
|
+
test("2 days before: 100%", () => {
|
|
82
|
+
const eventStart = new Date("2026-01-03T12:00:00.000Z");
|
|
83
|
+
expect(resolveCancellationRefundFraction(ServiceCancellationPolicy.VeryFlexible, {
|
|
84
|
+
eventStart,
|
|
85
|
+
now: fixedNow,
|
|
86
|
+
})).toBe(1);
|
|
87
|
+
});
|
|
88
|
+
test("12 hours before: 0%", () => {
|
|
89
|
+
const eventStart = new Date("2026-01-02T00:00:00.000Z");
|
|
90
|
+
expect(resolveCancellationRefundFraction(ServiceCancellationPolicy.VeryFlexible, {
|
|
91
|
+
eventStart,
|
|
92
|
+
now: fixedNow,
|
|
93
|
+
})).toBe(0);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
describe("getMatchingCancellationRefundRule", () => {
|
|
97
|
+
test("returns the winning tier rule object", () => {
|
|
98
|
+
const eventStart = new Date("2026-01-11T12:00:00.000Z");
|
|
99
|
+
const rule = getMatchingCancellationRefundRule(ServiceCancellationPolicy.VendorStandard, { eventStart, now: fixedNow });
|
|
100
|
+
expect(rule).toEqual({ days: 3, refundPercentage: 50 });
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=cancellationPolicyRefundResolver.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellationPolicyRefundResolver.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/cancellationPolicyRefundResolver.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressUtils.d.ts","sourceRoot":"","sources":["../../src/utils/addressUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAE7E;AAED,wBAAgB,oCAAoC,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAGpF;
|
|
1
|
+
{"version":3,"file":"addressUtils.d.ts","sourceRoot":"","sources":["../../src/utils/addressUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAE7E;AAED,wBAAgB,oCAAoC,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAGpF;AAoED,wBAAgB,oCAAoC,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,QAAQ,CA4BvG;AAGD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAKR;AAED,wBAAgB,oCAAoC,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CA2BrG;AAED,wBAAgB,oCAAoC,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAWrG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAKhE;AA0BD,wBAAsB,yBAAyB,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAI,OAAO,CAAC,QAAQ,CAAC,CA6D7F;AAED,UAAU,sBAAsB;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,kBAAkB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,QAAQ,CA0C3E;AAGD,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,CAAC,CAuBrH"}
|
|
@@ -7,16 +7,89 @@ export function addressValuesToDatabaseAddressString(addressValues) {
|
|
|
7
7
|
const { place = '', street, city, state, zipCode, country } = addressValues;
|
|
8
8
|
return [place, street, city, state, zipCode, country].join(ADDRESS_DELIM);
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Older Where step saved locations with a " • " join and dropped empty segments,
|
|
12
|
+
* so the value no longer contained `|` and the full address was mis-parsed as `place`.
|
|
13
|
+
*/
|
|
14
|
+
function parseLegacyBulletDelimitedAddress(trimmed) {
|
|
15
|
+
if (!trimmed.includes(' • ')) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const parts = trimmed.split(' • ').map((p) => p.trim()).filter((p) => p.length > 0);
|
|
19
|
+
const zipLike = (s) => /^\d{5}(-\d{4})?$/.test(s);
|
|
20
|
+
if (parts.length === 6) {
|
|
21
|
+
return {
|
|
22
|
+
place: parts[0] ?? '',
|
|
23
|
+
street: parts[1] ?? '',
|
|
24
|
+
city: parts[2] ?? '',
|
|
25
|
+
state: parts[3] ?? '',
|
|
26
|
+
zipCode: parts[4] ?? '',
|
|
27
|
+
country: parts[5] ?? 'USA',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const zip3 = parts[3] ?? '';
|
|
31
|
+
const zip4 = parts[4] ?? '';
|
|
32
|
+
// Typical corruption: empty place dropped → "street • city • state • zip • USA"
|
|
33
|
+
if (parts.length === 5 &&
|
|
34
|
+
zipLike(zip3) &&
|
|
35
|
+
/^(USA|United States)$/i.test(zip4)) {
|
|
36
|
+
return {
|
|
37
|
+
place: '',
|
|
38
|
+
street: parts[0] ?? '',
|
|
39
|
+
city: parts[1] ?? '',
|
|
40
|
+
state: parts[2] ?? '',
|
|
41
|
+
zipCode: parts[3] ?? '',
|
|
42
|
+
country: 'USA',
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// "place • street • city • state • zip" (no country segment)
|
|
46
|
+
if (parts.length === 5 && zipLike(zip4)) {
|
|
47
|
+
return {
|
|
48
|
+
place: parts[0] ?? '',
|
|
49
|
+
street: parts[1] ?? '',
|
|
50
|
+
city: parts[2] ?? '',
|
|
51
|
+
state: parts[3] ?? '',
|
|
52
|
+
zipCode: parts[4] ?? '',
|
|
53
|
+
country: 'USA',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (parts.length === 4 && zipLike(parts[3] ?? '')) {
|
|
57
|
+
return {
|
|
58
|
+
place: '',
|
|
59
|
+
street: parts[0] ?? '',
|
|
60
|
+
city: parts[1] ?? '',
|
|
61
|
+
state: parts[2] ?? '',
|
|
62
|
+
zipCode: parts[3] ?? '',
|
|
63
|
+
country: 'USA',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
10
68
|
export function databaseAddressStringToAddressValues(addressString) {
|
|
11
69
|
if (addressString) {
|
|
12
|
-
const
|
|
70
|
+
const trimmed = addressString.trim();
|
|
71
|
+
if (trimmed.includes(ADDRESS_DELIM)) {
|
|
72
|
+
const addressArray = trimmed.split(ADDRESS_DELIM);
|
|
73
|
+
return {
|
|
74
|
+
place: addressArray[0] ?? '',
|
|
75
|
+
street: addressArray[1] ?? '',
|
|
76
|
+
city: addressArray[2] ?? '',
|
|
77
|
+
state: addressArray[3] ?? '',
|
|
78
|
+
zipCode: addressArray[4] ?? '',
|
|
79
|
+
country: addressArray[5]?.trim() || 'USA',
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const legacyBullet = parseLegacyBulletDelimitedAddress(trimmed);
|
|
83
|
+
if (legacyBullet) {
|
|
84
|
+
return legacyBullet;
|
|
85
|
+
}
|
|
13
86
|
return {
|
|
14
|
-
place:
|
|
15
|
-
street:
|
|
16
|
-
city:
|
|
17
|
-
state:
|
|
18
|
-
zipCode:
|
|
19
|
-
country: '
|
|
87
|
+
place: trimmed,
|
|
88
|
+
street: '',
|
|
89
|
+
city: '',
|
|
90
|
+
state: '',
|
|
91
|
+
zipCode: '',
|
|
92
|
+
country: '',
|
|
20
93
|
};
|
|
21
94
|
}
|
|
22
95
|
return { place: '', street: '', city: '', state: '', zipCode: '', country: '' };
|
|
@@ -30,49 +103,40 @@ export function formatLocalityForCardDisplay(city, state, country) {
|
|
|
30
103
|
return parts.join(", ");
|
|
31
104
|
}
|
|
32
105
|
export function databaseAddressStringToOneLineString(addressString) {
|
|
33
|
-
if (addressString) {
|
|
34
|
-
|
|
35
|
-
if (!addressString.includes(ADDRESS_DELIM)) {
|
|
36
|
-
return addressString.trim();
|
|
37
|
-
}
|
|
38
|
-
const address = databaseAddressStringToAddressValues(addressString);
|
|
39
|
-
// If only place exists, just return it
|
|
40
|
-
if (address.place &&
|
|
41
|
-
(!address.street || address.street === 'undefined') &&
|
|
42
|
-
(!address.city || address.city === 'undefined') &&
|
|
43
|
-
(!address.state || address.state === 'undefined')) {
|
|
44
|
-
return address.place.trim();
|
|
45
|
-
}
|
|
46
|
-
let addressArr = address.place ? [address.place] : [];
|
|
47
|
-
// Add non-empty and non-undefined parts
|
|
48
|
-
if (address.street && address.street !== 'undefined')
|
|
49
|
-
addressArr.push(address.street);
|
|
50
|
-
if (address.city && address.city !== 'undefined')
|
|
51
|
-
addressArr.push(address.city);
|
|
52
|
-
if (address.state && address.state !== 'undefined')
|
|
53
|
-
addressArr.push(address.state);
|
|
54
|
-
const addressStr = addressArr.filter(str => !!str && str !== 'undefined').join(', ');
|
|
55
|
-
// Only add zip code if it exists and isn't 'undefined'
|
|
56
|
-
return address.zipCode && address.zipCode !== 'undefined'
|
|
57
|
-
? `${addressStr} ${address.zipCode}`
|
|
58
|
-
: addressStr;
|
|
106
|
+
if (!addressString) {
|
|
107
|
+
return '';
|
|
59
108
|
}
|
|
60
|
-
|
|
109
|
+
const address = databaseAddressStringToAddressValues(addressString);
|
|
110
|
+
// If only place exists, just return it (includes place-only strings with no delimiters)
|
|
111
|
+
if (address.place &&
|
|
112
|
+
(!address.street || address.street === 'undefined') &&
|
|
113
|
+
(!address.city || address.city === 'undefined') &&
|
|
114
|
+
(!address.state || address.state === 'undefined')) {
|
|
115
|
+
return address.place.trim();
|
|
116
|
+
}
|
|
117
|
+
let addressArr = address.place ? [address.place] : [];
|
|
118
|
+
if (address.street && address.street !== 'undefined')
|
|
119
|
+
addressArr.push(address.street);
|
|
120
|
+
if (address.city && address.city !== 'undefined')
|
|
121
|
+
addressArr.push(address.city);
|
|
122
|
+
if (address.state && address.state !== 'undefined')
|
|
123
|
+
addressArr.push(address.state);
|
|
124
|
+
const addressStr = addressArr.filter((str) => !!str && str !== 'undefined').join(', ');
|
|
125
|
+
return address.zipCode && address.zipCode !== 'undefined'
|
|
126
|
+
? `${addressStr} ${address.zipCode}`
|
|
127
|
+
: addressStr;
|
|
61
128
|
}
|
|
62
129
|
export function databaseAddressStringToDisplayString(addressString) {
|
|
63
|
-
if (addressString) {
|
|
64
|
-
|
|
65
|
-
if (!addressString.includes(ADDRESS_DELIM)) {
|
|
66
|
-
return addressString.trim();
|
|
67
|
-
}
|
|
68
|
-
const oneLineString = databaseAddressStringToOneLineString(addressString);
|
|
69
|
-
const formatted = oneLineString.replace(/([A-Z])(?=[A-Z][a-z])/g, "$1 ") // Add space between a single uppercase letter and a capitalized word
|
|
70
|
-
.replace(/(\d)(?=[A-Z])/g, "$1 ") // Add space between numbers and letters
|
|
71
|
-
.replace(/,/g, ", ") // Add space after commas
|
|
72
|
-
.replace(/undefined/g, ""); // Remove any "undefined" strings
|
|
73
|
-
return formatted;
|
|
130
|
+
if (!addressString) {
|
|
131
|
+
return '';
|
|
74
132
|
}
|
|
75
|
-
|
|
133
|
+
const oneLineString = databaseAddressStringToOneLineString(addressString);
|
|
134
|
+
const formatted = oneLineString
|
|
135
|
+
.replace(/([A-Z])(?=[A-Z][a-z])/g, '$1 ') // Add space between a single uppercase letter and a capitalized word
|
|
136
|
+
.replace(/(\d)(?=[A-Z])/g, '$1 ') // Add space between numbers and letters
|
|
137
|
+
.replace(/,/g, ', ') // Add space after commas
|
|
138
|
+
.replace(/undefined/g, ''); // Remove any "undefined" strings
|
|
139
|
+
return formatted;
|
|
76
140
|
}
|
|
77
141
|
export function addressToDisplayString(address) {
|
|
78
142
|
let addressArr = address.place ? [address.place] : [];
|
|
@@ -80,32 +144,71 @@ export function addressToDisplayString(address) {
|
|
|
80
144
|
const addressStr = addressArr.filter((str) => !!str).join(', ');
|
|
81
145
|
return `${addressStr} ${address.zipCode}`;
|
|
82
146
|
}
|
|
147
|
+
/** Prefer a precise street-level result; `results[0]` is often a coarse area (wrong street line). */
|
|
148
|
+
function pickBestGeocodeResult(results) {
|
|
149
|
+
if (!results?.length)
|
|
150
|
+
return undefined;
|
|
151
|
+
const streetAddress = results.find((r) => r.types?.includes("street_address"));
|
|
152
|
+
if (streetAddress)
|
|
153
|
+
return streetAddress;
|
|
154
|
+
const premise = results.find((r) => r.types?.includes("premise"));
|
|
155
|
+
if (premise)
|
|
156
|
+
return premise;
|
|
157
|
+
const rooftop = results.find((r) => r.geometry?.location_type === "ROOFTOP");
|
|
158
|
+
if (rooftop)
|
|
159
|
+
return rooftop;
|
|
160
|
+
const interpolated = results.find((r) => r.geometry?.location_type === "RANGE_INTERPOLATED");
|
|
161
|
+
if (interpolated)
|
|
162
|
+
return interpolated;
|
|
163
|
+
return results[0];
|
|
164
|
+
}
|
|
83
165
|
export async function getAddressFromCoordinates(lat, lng) {
|
|
84
166
|
const apiUrl = `https://maps.googleapis.com/maps/api/geocode/json?latlng=${lat},${lng}&key=${googleMapsApiKey}&loading=async`;
|
|
85
167
|
try {
|
|
86
168
|
const response = await fetch(apiUrl);
|
|
87
169
|
const data = await response.json();
|
|
88
170
|
if (data.results.length > 0) {
|
|
89
|
-
const
|
|
90
|
-
|
|
171
|
+
const firstResult = pickBestGeocodeResult(data.results);
|
|
172
|
+
if (!firstResult?.address_components) {
|
|
173
|
+
throw new Error("No address found");
|
|
174
|
+
}
|
|
175
|
+
const addressComponents = firstResult.address_components;
|
|
176
|
+
let streetNumber = "";
|
|
177
|
+
let route = "";
|
|
91
178
|
let city = "";
|
|
92
179
|
let state = "";
|
|
93
180
|
let zipCode = "";
|
|
94
181
|
addressComponents.forEach((component) => {
|
|
95
|
-
|
|
96
|
-
|
|
182
|
+
const types = component.types;
|
|
183
|
+
if (types.includes("street_number")) {
|
|
184
|
+
streetNumber = component.long_name;
|
|
185
|
+
}
|
|
186
|
+
if (types.includes("route")) {
|
|
187
|
+
route = component.long_name;
|
|
97
188
|
}
|
|
98
|
-
else if (
|
|
189
|
+
else if (types.includes("locality")) {
|
|
99
190
|
city = component.long_name;
|
|
100
191
|
}
|
|
101
|
-
else if (
|
|
192
|
+
else if (types.includes("administrative_area_level_1")) {
|
|
102
193
|
state = component.short_name;
|
|
103
194
|
}
|
|
104
|
-
else if (
|
|
195
|
+
else if (types.includes("postal_code")) {
|
|
105
196
|
zipCode = component.long_name;
|
|
106
197
|
}
|
|
107
198
|
});
|
|
108
|
-
|
|
199
|
+
// Match extractAddressComponents: US addresses split street across street_number + route.
|
|
200
|
+
let street = `${streetNumber} ${route}`.trim();
|
|
201
|
+
if (!street && firstResult.formatted_address) {
|
|
202
|
+
const firstSeg = firstResult.formatted_address.split(",")[0]?.trim() ?? "";
|
|
203
|
+
if (firstSeg && city && !firstSeg.toLowerCase().includes(city.toLowerCase())) {
|
|
204
|
+
street = firstSeg;
|
|
205
|
+
}
|
|
206
|
+
else if (firstSeg && !city) {
|
|
207
|
+
street = firstSeg;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Place is intentionally empty here — only filled when user picks a Place in Maps UI or types it.
|
|
211
|
+
return { place: "", street, city, state, zipCode, country: "USA" };
|
|
109
212
|
}
|
|
110
213
|
else {
|
|
111
214
|
throw new Error("No address found");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressUtils.js","sourceRoot":"","sources":["../../src/utils/addressUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"addressUtils.js","sourceRoot":"","sources":["../../src/utils/addressUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -471,9 +471,13 @@ describe("eligibilityValidator", () => {
|
|
|
471
471
|
it("should handle timezone differences in dates", () => {
|
|
472
472
|
const currentDate = new Date("2024-07-15T23:59:59Z");
|
|
473
473
|
const expiryDate = new Date("2024-07-16T00:00:01Z");
|
|
474
|
-
const offer = {
|
|
474
|
+
const offer = {
|
|
475
|
+
id: "offer-1",
|
|
476
|
+
isActive: true,
|
|
477
|
+
endDate: expiryDate,
|
|
478
|
+
};
|
|
475
479
|
const result = validateOfferEligibility(offer, "user-1", 2, currentDate, 0);
|
|
476
|
-
expect(result.eligible).toBe(true); // Still valid by 2 seconds
|
|
480
|
+
expect(result.eligible).toBe(true); // Still valid by 2 seconds (UTC)
|
|
477
481
|
});
|
|
478
482
|
});
|
|
479
483
|
});
|