placementt-core 1.400.1104 → 1.400.1106

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.
@@ -884,34 +884,6 @@ export declare const allCallables: {
884
884
  resolvedCount?: number | undefined;
885
885
  }>;
886
886
  };
887
- "surveys-setSurveySendPolicy": {
888
- request: z.ZodObject<{
889
- oId: z.ZodString;
890
- kind: z.ZodEnum<[string, ...string[]]>;
891
- policy: z.ZodEnum<["auto", "manual"]>;
892
- }, "strip", z.ZodTypeAny, {
893
- oId: string;
894
- kind: string;
895
- policy: "auto" | "manual";
896
- }, {
897
- oId: string;
898
- kind: string;
899
- policy: "auto" | "manual";
900
- }>;
901
- response: z.ZodObject<{
902
- oId: z.ZodString;
903
- kind: z.ZodEnum<[string, ...string[]]>;
904
- policy: z.ZodEnum<["auto", "manual"]>;
905
- }, "strip", z.ZodTypeAny, {
906
- oId: string;
907
- kind: string;
908
- policy: "auto" | "manual";
909
- }, {
910
- oId: string;
911
- kind: string;
912
- policy: "auto" | "manual";
913
- }>;
914
- };
915
887
  "surveys-provisionSurveysNow": {
916
888
  request: z.ZodObject<{
917
889
  oId: z.ZodString;
@@ -1564,34 +1536,6 @@ export declare const callableGroups: {
1564
1536
  resolvedCount?: number | undefined;
1565
1537
  }>;
1566
1538
  };
1567
- "surveys-setSurveySendPolicy": {
1568
- request: z.ZodObject<{
1569
- oId: z.ZodString;
1570
- kind: z.ZodEnum<[string, ...string[]]>;
1571
- policy: z.ZodEnum<["auto", "manual"]>;
1572
- }, "strip", z.ZodTypeAny, {
1573
- oId: string;
1574
- kind: string;
1575
- policy: "auto" | "manual";
1576
- }, {
1577
- oId: string;
1578
- kind: string;
1579
- policy: "auto" | "manual";
1580
- }>;
1581
- response: z.ZodObject<{
1582
- oId: z.ZodString;
1583
- kind: z.ZodEnum<[string, ...string[]]>;
1584
- policy: z.ZodEnum<["auto", "manual"]>;
1585
- }, "strip", z.ZodTypeAny, {
1586
- oId: string;
1587
- kind: string;
1588
- policy: "auto" | "manual";
1589
- }, {
1590
- oId: string;
1591
- kind: string;
1592
- policy: "auto" | "manual";
1593
- }>;
1594
- };
1595
1539
  "surveys-provisionSurveysNow": {
1596
1540
  request: z.ZodObject<{
1597
1541
  oId: z.ZodString;
@@ -409,36 +409,6 @@ export declare const surveyCallables: {
409
409
  resolvedCount?: number | undefined;
410
410
  }>;
411
411
  };
412
- "surveys-setSurveySendPolicy": {
413
- request: z.ZodObject<{
414
- oId: z.ZodString;
415
- kind: z.ZodEnum<[string, ...string[]]>;
416
- /** "manual" leaves the cycle scheduled but stops the cron sending it, and
417
- * emails the cycle's owner on the day instead. */
418
- policy: z.ZodEnum<["auto", "manual"]>;
419
- }, "strip", z.ZodTypeAny, {
420
- oId: string;
421
- kind: string;
422
- policy: "auto" | "manual";
423
- }, {
424
- oId: string;
425
- kind: string;
426
- policy: "auto" | "manual";
427
- }>;
428
- response: z.ZodObject<{
429
- oId: z.ZodString;
430
- kind: z.ZodEnum<[string, ...string[]]>;
431
- policy: z.ZodEnum<["auto", "manual"]>;
432
- }, "strip", z.ZodTypeAny, {
433
- oId: string;
434
- kind: string;
435
- policy: "auto" | "manual";
436
- }, {
437
- oId: string;
438
- kind: string;
439
- policy: "auto" | "manual";
440
- }>;
441
- };
442
412
  "surveys-provisionSurveysNow": {
443
413
  request: z.ZodObject<{
444
414
  oId: z.ZodString;
@@ -169,20 +169,6 @@ exports.surveyCallables = {
169
169
  resolvedCount: zod_1.z.number().optional(),
170
170
  }),
171
171
  },
172
- "surveys-setSurveySendPolicy": {
173
- request: zod_1.z.object({
174
- oId: zod_1.z.string(),
175
- kind: surveyKind,
176
- /** "manual" leaves the cycle scheduled but stops the cron sending it, and
177
- * emails the cycle's owner on the day instead. */
178
- policy: zod_1.z.enum(["auto", "manual"]),
179
- }),
180
- response: zod_1.z.object({
181
- oId: zod_1.z.string(),
182
- kind: surveyKind,
183
- policy: zod_1.z.enum(["auto", "manual"]),
184
- }),
185
- },
186
172
  "surveys-provisionSurveysNow": {
187
173
  request: zod_1.z.object({
188
174
  oId: zod_1.z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"surveys.js","sourceRoot":"","sources":["../../src/callables/surveys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"surveys.js","sourceRoot":"","sources":["../../src/callables/surveys.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,31 @@ const timeOf = (value) => {
31
31
  const time = new Date(value).getTime();
32
32
  return Number.isNaN(time) ? undefined : time;
33
33
  };
34
+ /** A day with no time on it, e.g. "2026-09-20". */
35
+ const DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/;
36
+ const DAY = 24 * 60 * 60 * 1000;
37
+ /**
38
+ * One piece of evidence as a moment to compare against the ask.
39
+ *
40
+ * Not every record carries a timestamp. An activity's `dateCreated` is written as a
41
+ * day, and a day read as midnight throws away the whole of the day the ask went out
42
+ * on: a pupil asked at 08:00 who logs something at 10:00 would go on being asked
43
+ * until tomorrow, which is exactly the nag the task exists to stop.
44
+ *
45
+ * So a day-stamped record counts at the END of its day. The cost is that something
46
+ * logged earlier on the morning of the ask counts too, which is the right way round
47
+ * to be wrong: it is the pupil's own day's work either way, and the alternative is
48
+ * telling them they have not done the thing they have just done.
49
+ *
50
+ * @param {string} [value] the stored date.
51
+ * @return {number|undefined} the moment to compare, or nothing when unparseable.
52
+ */
53
+ const evidenceTime = (value) => {
54
+ const time = timeOf(value);
55
+ if (time === undefined)
56
+ return undefined;
57
+ return DATE_ONLY.test(value) ? time + DAY - 1 : time;
58
+ };
34
59
  /**
35
60
  * The dates one source's evidence carries, unfiltered and unsorted.
36
61
  *
@@ -69,7 +94,7 @@ const evaluateSurveyEvidence = (args) => {
69
94
  const asked = Math.max(1, Math.floor(args.minimum ?? rule.minimum ?? 1));
70
95
  const from = timeOf(sentAt);
71
96
  const qualifying = (0, exports.surveyEvidenceDates)(rule.source, evidence)
72
- .map((date) => ({ date, time: timeOf(date) }))
97
+ .map((date) => ({ date, time: evidenceTime(date) }))
73
98
  .filter((e) => e.time !== undefined && (from === undefined || e.time >= from))
74
99
  .sort((a, b) => a.time - b.time);
75
100
  const satisfied = qualifying.length >= asked;
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/surveys/evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/surveys/evidence.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,36 @@ describe("evaluateSurveyEvidence", () => {
65
65
  });
66
66
  expect(result).toMatchObject({ count: 1, satisfied: true, satisfiedAt: SENT });
67
67
  });
68
+ /**
69
+ * An activity's `dateCreated` is a day, not a timestamp — see the web's
70
+ * CreateStudentActivity, which writes it through convertDate's "dbstring". Read
71
+ * as midnight it loses the day of the ask, and a pupil who logs something the
72
+ * same morning they are emailed goes on being chased until tomorrow.
73
+ */
74
+ it("counts a day-stamped record logged on the day of the ask", () => {
75
+ const result = (0, evidence_1.evaluateSurveyEvidence)({
76
+ rule: activitiesRule,
77
+ sentAt: SENT,
78
+ evidence: { activities: [{ dateCreated: "2026-10-01" }] },
79
+ });
80
+ expect(result).toMatchObject({ count: 1, satisfied: true, satisfiedAt: "2026-10-01" });
81
+ });
82
+ it("still ignores a day-stamped record from before the ask", () => {
83
+ expect((0, evidence_1.evaluateSurveyEvidence)({
84
+ rule: activitiesRule,
85
+ sentAt: SENT,
86
+ evidence: { activities: [{ dateCreated: "2026-09-30" }] },
87
+ })).toMatchObject({ count: 0, satisfied: false });
88
+ });
89
+ it("takes a timestamp on the day of the ask at its own time", () => {
90
+ // Only a date-only value is stretched across its day; something that says
91
+ // what time it happened is taken at its word.
92
+ expect((0, evidence_1.evaluateSurveyEvidence)({
93
+ rule: activitiesRule,
94
+ sentAt: SENT,
95
+ evidence: { activities: [{ dateCreated: "2026-10-01T07:00:00.000Z" }] },
96
+ })).toMatchObject({ count: 0, satisfied: false });
97
+ });
68
98
  it("honours a per-launch minimum over the kind's own", () => {
69
99
  const evidence = { savedNextSteps: entries(AFTER, LATER) };
70
100
  expect((0, evidence_1.evaluateSurveyEvidence)({ rule: nextStepsRule, sentAt: SENT, evidence }).satisfied).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.test.js","sourceRoot":"","sources":["../../src/surveys/evidence.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence.test.js","sourceRoot":"","sources":["../../src/surveys/evidence.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "placementt-core",
4
4
  "author": "Placementt",
5
- "version": "1.400.1104",
5
+ "version": "1.400.1106",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
@@ -171,20 +171,6 @@ export const surveyCallables = {
171
171
  resolvedCount: z.number().optional(),
172
172
  }),
173
173
  },
174
- "surveys-setSurveySendPolicy": {
175
- request: z.object({
176
- oId: z.string(),
177
- kind: surveyKind,
178
- /** "manual" leaves the cycle scheduled but stops the cron sending it, and
179
- * emails the cycle's owner on the day instead. */
180
- policy: z.enum(["auto", "manual"]),
181
- }),
182
- response: z.object({
183
- oId: z.string(),
184
- kind: surveyKind,
185
- policy: z.enum(["auto", "manual"]),
186
- }),
187
- },
188
174
  "surveys-provisionSurveysNow": {
189
175
  request: z.object({
190
176
  oId: z.string(),
@@ -81,6 +81,39 @@ describe("evaluateSurveyEvidence", () => {
81
81
  expect(result).toMatchObject({count: 1, satisfied: true, satisfiedAt: SENT});
82
82
  });
83
83
 
84
+ /**
85
+ * An activity's `dateCreated` is a day, not a timestamp — see the web's
86
+ * CreateStudentActivity, which writes it through convertDate's "dbstring". Read
87
+ * as midnight it loses the day of the ask, and a pupil who logs something the
88
+ * same morning they are emailed goes on being chased until tomorrow.
89
+ */
90
+ it("counts a day-stamped record logged on the day of the ask", () => {
91
+ const result = evaluateSurveyEvidence({
92
+ rule: activitiesRule,
93
+ sentAt: SENT,
94
+ evidence: {activities: [{dateCreated: "2026-10-01"}]},
95
+ });
96
+ expect(result).toMatchObject({count: 1, satisfied: true, satisfiedAt: "2026-10-01"});
97
+ });
98
+
99
+ it("still ignores a day-stamped record from before the ask", () => {
100
+ expect(evaluateSurveyEvidence({
101
+ rule: activitiesRule,
102
+ sentAt: SENT,
103
+ evidence: {activities: [{dateCreated: "2026-09-30"}]},
104
+ })).toMatchObject({count: 0, satisfied: false});
105
+ });
106
+
107
+ it("takes a timestamp on the day of the ask at its own time", () => {
108
+ // Only a date-only value is stretched across its day; something that says
109
+ // what time it happened is taken at its word.
110
+ expect(evaluateSurveyEvidence({
111
+ rule: activitiesRule,
112
+ sentAt: SENT,
113
+ evidence: {activities: [{dateCreated: "2026-10-01T07:00:00.000Z"}]},
114
+ })).toMatchObject({count: 0, satisfied: false});
115
+ });
116
+
84
117
  it("honours a per-launch minimum over the kind's own", () => {
85
118
  const evidence = {savedNextSteps: entries(AFTER, LATER)};
86
119
  expect(evaluateSurveyEvidence({rule: nextStepsRule, sentAt: SENT, evidence}).satisfied).toBe(false);
@@ -58,6 +58,33 @@ const timeOf = (value?: string): number|undefined => {
58
58
  return Number.isNaN(time) ? undefined : time;
59
59
  };
60
60
 
61
+ /** A day with no time on it, e.g. "2026-09-20". */
62
+ const DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/;
63
+
64
+ const DAY = 24 * 60 * 60 * 1000;
65
+
66
+ /**
67
+ * One piece of evidence as a moment to compare against the ask.
68
+ *
69
+ * Not every record carries a timestamp. An activity's `dateCreated` is written as a
70
+ * day, and a day read as midnight throws away the whole of the day the ask went out
71
+ * on: a pupil asked at 08:00 who logs something at 10:00 would go on being asked
72
+ * until tomorrow, which is exactly the nag the task exists to stop.
73
+ *
74
+ * So a day-stamped record counts at the END of its day. The cost is that something
75
+ * logged earlier on the morning of the ask counts too, which is the right way round
76
+ * to be wrong: it is the pupil's own day's work either way, and the alternative is
77
+ * telling them they have not done the thing they have just done.
78
+ *
79
+ * @param {string} [value] the stored date.
80
+ * @return {number|undefined} the moment to compare, or nothing when unparseable.
81
+ */
82
+ const evidenceTime = (value?: string): number|undefined => {
83
+ const time = timeOf(value);
84
+ if (time === undefined) return undefined;
85
+ return DATE_ONLY.test(value as string) ? time + DAY - 1 : time;
86
+ };
87
+
61
88
  /**
62
89
  * The dates one source's evidence carries, unfiltered and unsorted.
63
90
  *
@@ -107,7 +134,7 @@ export const evaluateSurveyEvidence = (args: {
107
134
  const from = timeOf(sentAt);
108
135
 
109
136
  const qualifying = surveyEvidenceDates(rule.source, evidence)
110
- .map((date) => ({date, time: timeOf(date)}))
137
+ .map((date) => ({date, time: evidenceTime(date)}))
111
138
  .filter((e): e is {date: string, time: number} =>
112
139
  e.time !== undefined && (from === undefined || e.time >= from))
113
140
  .sort((a, b) => a.time - b.time);