@bash-app/bash-common 30.427.0 → 30.429.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ticketTierReleaseWindow.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticketTierReleaseWindow.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/ticketTierReleaseWindow.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,90 @@
1
+ import { resolveTicketTierScheduleState, scheduleValidationHasErrors, validateTicketTierScheduleInput, } from "../ticketTierSchedule.js";
2
+ /** Sale opens at availableAt and closes at expiresAt. Boundaries are inclusive on open, exclusive on the last millisecond before close. */
3
+ const RELEASE = new Date("2026-12-11T01:00:00.000Z");
4
+ const EXPIRES = new Date("2026-12-17T13:00:00.000Z");
5
+ const INVENTORY = { availableInventory: 40 };
6
+ function shift(instant, ms) {
7
+ return new Date(instant.getTime() + ms);
8
+ }
9
+ describe("ticket release and expiry windows", () => {
10
+ it("keeps a release-only tier off sale until the release instant, then on sale", () => {
11
+ const tier = { availabilityType: "OnDate", availableAt: RELEASE };
12
+ const before = resolveTicketTierScheduleState(tier, {
13
+ ...INVENTORY,
14
+ now: shift(RELEASE, -1),
15
+ });
16
+ const atRelease = resolveTicketTierScheduleState(tier, {
17
+ ...INVENTORY,
18
+ now: RELEASE,
19
+ });
20
+ const later = resolveTicketTierScheduleState(tier, {
21
+ ...INVENTORY,
22
+ now: shift(RELEASE, 7 * 24 * 60 * 60 * 1000),
23
+ });
24
+ expect(before.canPurchase).toBe(false);
25
+ expect(before.phase).toBe("TeasePreRelease");
26
+ expect(atRelease.canPurchase).toBe(true);
27
+ expect(atRelease.phase).toBe("Live");
28
+ expect(later.canPurchase).toBe(true);
29
+ expect(later.phase).toBe("Live");
30
+ });
31
+ it("treats a past release as already on sale", () => {
32
+ const issues = validateTicketTierScheduleInput({
33
+ availabilityType: "OnDate",
34
+ availableAt: shift(RELEASE, -60_000),
35
+ });
36
+ expect(scheduleValidationHasErrors(issues)).toBe(false);
37
+ const state = resolveTicketTierScheduleState({ availabilityType: "OnDate", availableAt: shift(RELEASE, -60_000) }, { ...INVENTORY, now: RELEASE });
38
+ expect(state.canPurchase).toBe(true);
39
+ expect(state.phase).toBe("Live");
40
+ });
41
+ it("keeps an expiry-only tier on sale until the expiration instant", () => {
42
+ const tier = { availabilityType: "Immediate", expiresAt: EXPIRES };
43
+ const before = resolveTicketTierScheduleState(tier, {
44
+ ...INVENTORY,
45
+ now: shift(EXPIRES, -1),
46
+ });
47
+ const atExpiry = resolveTicketTierScheduleState(tier, {
48
+ ...INVENTORY,
49
+ now: EXPIRES,
50
+ });
51
+ expect(before.canPurchase).toBe(true);
52
+ expect(before.phase).toBe("Live");
53
+ expect(atExpiry.canPurchase).toBe(false);
54
+ expect(atExpiry.phase).toBe("Expired");
55
+ expect(atExpiry.guestVisible).toBe(false);
56
+ });
57
+ it("sells a dated tier only inside the release-to-expiry window", () => {
58
+ const tier = {
59
+ availabilityType: "OnDate",
60
+ availableAt: RELEASE,
61
+ expiresAt: EXPIRES,
62
+ };
63
+ expect(resolveTicketTierScheduleState(tier, {
64
+ ...INVENTORY,
65
+ now: shift(RELEASE, -1),
66
+ }).canPurchase).toBe(false);
67
+ expect(resolveTicketTierScheduleState(tier, {
68
+ ...INVENTORY,
69
+ now: RELEASE,
70
+ }).phase).toBe("Live");
71
+ expect(resolveTicketTierScheduleState(tier, {
72
+ ...INVENTORY,
73
+ now: shift(EXPIRES, -1),
74
+ }).canPurchase).toBe(true);
75
+ expect(resolveTicketTierScheduleState(tier, {
76
+ ...INVENTORY,
77
+ now: EXPIRES,
78
+ }).phase).toBe("Expired");
79
+ });
80
+ it("rejects an expiration that is not after the release", () => {
81
+ const issues = validateTicketTierScheduleInput({
82
+ availabilityType: "OnDate",
83
+ availableAt: EXPIRES,
84
+ expiresAt: RELEASE,
85
+ });
86
+ expect(scheduleValidationHasErrors(issues)).toBe(true);
87
+ expect(issues.some((issue) => issue.field === "expiresAt")).toBe(true);
88
+ });
89
+ });
90
+ //# sourceMappingURL=ticketTierReleaseWindow.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticketTierReleaseWindow.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/ticketTierReleaseWindow.test.ts"],"names":[],"mappings":"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"}
@@ -68,9 +68,21 @@ describe("resolveTicketTierScheduleState", () => {
68
68
  });
69
69
  });
70
70
  describe("validateTicketTierScheduleInput", () => {
71
- it("requires availableAt for OnDate", () => {
72
- const issues = validateTicketTierScheduleInput({ availabilityType: "OnDate" });
73
- expect(scheduleValidationHasErrors(issues)).toBe(true);
71
+ it("treats a missing release datetime as already on sale", () => {
72
+ const releaseOnly = validateTicketTierScheduleInput({
73
+ availabilityType: "OnDate",
74
+ availableAt: new Date("2030-06-02T12:00:00Z"),
75
+ });
76
+ const expireOnly = validateTicketTierScheduleInput({
77
+ availabilityType: "Immediate",
78
+ expiresAt: new Date("2030-06-02T12:00:00Z"),
79
+ });
80
+ const unsetRelease = validateTicketTierScheduleInput({
81
+ availabilityType: "OnDate",
82
+ });
83
+ expect(scheduleValidationHasErrors(releaseOnly)).toBe(false);
84
+ expect(scheduleValidationHasErrors(expireOnly)).toBe(false);
85
+ expect(scheduleValidationHasErrors(unsetRelease)).toBe(false);
74
86
  });
75
87
  it("rejects expires before release", () => {
76
88
  const issues = validateTicketTierScheduleInput({
@@ -1 +1 @@
1
- {"version":3,"file":"ticketTierSchedule.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/ticketTierSchedule.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticketTierSchedule.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/ticketTierSchedule.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ticketTierSchedule.d.ts","sourceRoot":"","sources":["../../src/utils/ticketTierSchedule.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,CAAC;AAEpF,MAAM,MAAM,uBAAuB,GAC/B,YAAY,GACZ,kBAAkB,GAClB,iBAAiB,GACjB,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,4BAA4B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,sBAAsB,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B,CAAC;AAmEF;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,uBAAuB,EAC7B,GAAG,GAAE,yBAA8B,GAClC,uBAAuB,CAgKzB;AA6BD,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,uBAAuB,EAC7B,SAAS,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,GACnD,uBAAuB,EAAE,CAgD3B;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAEtF;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAMpF"}
1
+ {"version":3,"file":"ticketTierSchedule.d.ts","sourceRoot":"","sources":["../../src/utils/ticketTierSchedule.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,CAAC;AAEpF,MAAM,MAAM,uBAAuB,GAC/B,YAAY,GACZ,kBAAkB,GAClB,iBAAiB,GACjB,MAAM,GACN,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,4BAA4B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,sBAAsB,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B,CAAC;AAmEF;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,uBAAuB,EAC7B,GAAG,GAAE,yBAA8B,GAClC,uBAAuB,CAgKzB;AA6BD,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,uBAAuB,EAC7B,SAAS,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,GACnD,uBAAuB,EAAE,CAyC3B;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAEtF;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAMpF"}
@@ -226,17 +226,11 @@ function buildState(args) {
226
226
  }
227
227
  export function validateTicketTierScheduleInput(tier, bashEvent) {
228
228
  const issues = [];
229
- const type = tier.availabilityType ?? "Immediate";
230
229
  const availableAt = toDate(tier.availableAt);
231
230
  const expiresAt = toDate(tier.expiresAt);
232
231
  const start = bashEvent ? toDate(bashEvent.startDateTime) : null;
233
- if (isOnDate(type) && !availableAt) {
234
- issues.push({
235
- field: "availableAt",
236
- message: "Release date and time are required when scheduling a tier.",
237
- severity: "error",
238
- });
239
- }
232
+ // No release datetime means the tier is already on sale. Expiration can
233
+ // stand alone, and a release date does not require an expiration.
240
234
  if (availableAt && expiresAt && expiresAt <= availableAt) {
241
235
  issues.push({
242
236
  field: "expiresAt",
@@ -1 +1 @@
1
- {"version":3,"file":"ticketTierSchedule.js","sourceRoot":"","sources":["../../src/utils/ticketTierSchedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticketTierSchedule.js","sourceRoot":"","sources":["../../src/utils/ticketTierSchedule.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "30.427.0",
3
+ "version": "30.429.0",
4
4
  "description": "Common data and scripts to use on the frontend and backend",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,117 @@
1
+ import {
2
+ resolveTicketTierScheduleState,
3
+ scheduleValidationHasErrors,
4
+ validateTicketTierScheduleInput,
5
+ } from "../ticketTierSchedule.js";
6
+
7
+ /** Sale opens at availableAt and closes at expiresAt. Boundaries are inclusive on open, exclusive on the last millisecond before close. */
8
+ const RELEASE = new Date("2026-12-11T01:00:00.000Z");
9
+ const EXPIRES = new Date("2026-12-17T13:00:00.000Z");
10
+ const INVENTORY = { availableInventory: 40 };
11
+
12
+ function shift(instant: Date, ms: number): Date {
13
+ return new Date(instant.getTime() + ms);
14
+ }
15
+
16
+ describe("ticket release and expiry windows", () => {
17
+ it("keeps a release-only tier off sale until the release instant, then on sale", () => {
18
+ const tier = { availabilityType: "OnDate", availableAt: RELEASE };
19
+
20
+ const before = resolveTicketTierScheduleState(tier, {
21
+ ...INVENTORY,
22
+ now: shift(RELEASE, -1),
23
+ });
24
+ const atRelease = resolveTicketTierScheduleState(tier, {
25
+ ...INVENTORY,
26
+ now: RELEASE,
27
+ });
28
+ const later = resolveTicketTierScheduleState(tier, {
29
+ ...INVENTORY,
30
+ now: shift(RELEASE, 7 * 24 * 60 * 60 * 1000),
31
+ });
32
+
33
+ expect(before.canPurchase).toBe(false);
34
+ expect(before.phase).toBe("TeasePreRelease");
35
+ expect(atRelease.canPurchase).toBe(true);
36
+ expect(atRelease.phase).toBe("Live");
37
+ expect(later.canPurchase).toBe(true);
38
+ expect(later.phase).toBe("Live");
39
+ });
40
+
41
+ it("treats a past release as already on sale", () => {
42
+ const issues = validateTicketTierScheduleInput({
43
+ availabilityType: "OnDate",
44
+ availableAt: shift(RELEASE, -60_000),
45
+ });
46
+ expect(scheduleValidationHasErrors(issues)).toBe(false);
47
+
48
+ const state = resolveTicketTierScheduleState(
49
+ { availabilityType: "OnDate", availableAt: shift(RELEASE, -60_000) },
50
+ { ...INVENTORY, now: RELEASE }
51
+ );
52
+ expect(state.canPurchase).toBe(true);
53
+ expect(state.phase).toBe("Live");
54
+ });
55
+
56
+ it("keeps an expiry-only tier on sale until the expiration instant", () => {
57
+ const tier = { availabilityType: "Immediate", expiresAt: EXPIRES };
58
+
59
+ const before = resolveTicketTierScheduleState(tier, {
60
+ ...INVENTORY,
61
+ now: shift(EXPIRES, -1),
62
+ });
63
+ const atExpiry = resolveTicketTierScheduleState(tier, {
64
+ ...INVENTORY,
65
+ now: EXPIRES,
66
+ });
67
+
68
+ expect(before.canPurchase).toBe(true);
69
+ expect(before.phase).toBe("Live");
70
+ expect(atExpiry.canPurchase).toBe(false);
71
+ expect(atExpiry.phase).toBe("Expired");
72
+ expect(atExpiry.guestVisible).toBe(false);
73
+ });
74
+
75
+ it("sells a dated tier only inside the release-to-expiry window", () => {
76
+ const tier = {
77
+ availabilityType: "OnDate",
78
+ availableAt: RELEASE,
79
+ expiresAt: EXPIRES,
80
+ };
81
+
82
+ expect(
83
+ resolveTicketTierScheduleState(tier, {
84
+ ...INVENTORY,
85
+ now: shift(RELEASE, -1),
86
+ }).canPurchase
87
+ ).toBe(false);
88
+ expect(
89
+ resolveTicketTierScheduleState(tier, {
90
+ ...INVENTORY,
91
+ now: RELEASE,
92
+ }).phase
93
+ ).toBe("Live");
94
+ expect(
95
+ resolveTicketTierScheduleState(tier, {
96
+ ...INVENTORY,
97
+ now: shift(EXPIRES, -1),
98
+ }).canPurchase
99
+ ).toBe(true);
100
+ expect(
101
+ resolveTicketTierScheduleState(tier, {
102
+ ...INVENTORY,
103
+ now: EXPIRES,
104
+ }).phase
105
+ ).toBe("Expired");
106
+ });
107
+
108
+ it("rejects an expiration that is not after the release", () => {
109
+ const issues = validateTicketTierScheduleInput({
110
+ availabilityType: "OnDate",
111
+ availableAt: EXPIRES,
112
+ expiresAt: RELEASE,
113
+ });
114
+ expect(scheduleValidationHasErrors(issues)).toBe(true);
115
+ expect(issues.some((issue) => issue.field === "expiresAt")).toBe(true);
116
+ });
117
+ });
@@ -115,9 +115,21 @@ describe("resolveTicketTierScheduleState", () => {
115
115
  });
116
116
 
117
117
  describe("validateTicketTierScheduleInput", () => {
118
- it("requires availableAt for OnDate", () => {
119
- const issues = validateTicketTierScheduleInput({ availabilityType: "OnDate" });
120
- expect(scheduleValidationHasErrors(issues)).toBe(true);
118
+ it("treats a missing release datetime as already on sale", () => {
119
+ const releaseOnly = validateTicketTierScheduleInput({
120
+ availabilityType: "OnDate",
121
+ availableAt: new Date("2030-06-02T12:00:00Z"),
122
+ });
123
+ const expireOnly = validateTicketTierScheduleInput({
124
+ availabilityType: "Immediate",
125
+ expiresAt: new Date("2030-06-02T12:00:00Z"),
126
+ });
127
+ const unsetRelease = validateTicketTierScheduleInput({
128
+ availabilityType: "OnDate",
129
+ });
130
+ expect(scheduleValidationHasErrors(releaseOnly)).toBe(false);
131
+ expect(scheduleValidationHasErrors(expireOnly)).toBe(false);
132
+ expect(scheduleValidationHasErrors(unsetRelease)).toBe(false);
121
133
  });
122
134
 
123
135
  it("rejects expires before release", () => {
@@ -325,19 +325,12 @@ export function validateTicketTierScheduleInput(
325
325
  bashEvent?: { startDateTime?: Date | string | null }
326
326
  ): ScheduleValidationIssue[] {
327
327
  const issues: ScheduleValidationIssue[] = [];
328
- const type = tier.availabilityType ?? "Immediate";
329
328
  const availableAt = toDate(tier.availableAt);
330
329
  const expiresAt = toDate(tier.expiresAt);
331
330
  const start = bashEvent ? toDate(bashEvent.startDateTime) : null;
332
331
 
333
- if (isOnDate(type) && !availableAt) {
334
- issues.push({
335
- field: "availableAt",
336
- message: "Release date and time are required when scheduling a tier.",
337
- severity: "error",
338
- });
339
- }
340
-
332
+ // No release datetime means the tier is already on sale. Expiration can
333
+ // stand alone, and a release date does not require an expiration.
341
334
  if (availableAt && expiresAt && expiresAt <= availableAt) {
342
335
  issues.push({
343
336
  field: "expiresAt",