Skip to content

Commit d19fd5f

Browse files
committed
scheduling fix test module for ts
1 parent d52fcfb commit d19fd5f

1 file changed

Lines changed: 51 additions & 1 deletion

File tree

  • modules/sdk-test-procedure-ts/src

modules/sdk-test-procedure-ts/src/index.ts

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// ─────────────────────────────────────────────────────────────────────────────
44
import {
55
errors,
6+
ScheduleAt,
67
schema,
78
t,
89
table,
@@ -25,7 +26,30 @@ const MyTable = table(
2526
{ field: ReturnStruct }
2627
);
2728

28-
const spacetimedb = schema(MyTable);
29+
const ScheduledProcTable = t.row({
30+
scheduled_id: t.u64().primaryKey().autoInc(),
31+
scheduled_at: t.scheduleAt(),
32+
reducer_ts: t.timestamp(),
33+
x: t.u8(),
34+
y: t.u8(),
35+
});
36+
const ScheduledProcTableTable = table(
37+
{ name: 'scheduled_proc_table', scheduled: 'scheduled_proc' },
38+
ScheduledProcTable
39+
);
40+
41+
const ProcInsertsInto = t.row({
42+
reducer_ts: t.timestamp(),
43+
procedure_ts: t.timestamp(),
44+
x: t.u8(),
45+
y: t.u8(),
46+
});
47+
const ProcInsertsIntoTable = table(
48+
{ name: 'proc_inserts_into', public: true },
49+
ProcInsertsInto
50+
);
51+
52+
const spacetimedb = schema(MyTable, ScheduledProcTableTable, ProcInsertsIntoTable);
2953

3054
spacetimedb.procedure(
3155
'return_primitive',
@@ -119,3 +143,29 @@ spacetimedb.procedure('insert_with_tx_rollback', t.unit(), ctx => {
119143
assertRowCount(ctx, 0);
120144
return {};
121145
});
146+
147+
spacetimedb.reducer('schedule_proc', {}, ctx => {
148+
ctx.db.scheduled_proc_table.insert({
149+
scheduled_id: 0n,
150+
scheduled_at: ScheduleAt.interval(1000000n),
151+
reducer_ts: ctx.timestamp,
152+
x: 42,
153+
y: 24,
154+
})
155+
});
156+
157+
spacetimedb.procedure('scheduled_proc', { data: ScheduledProcTable }, t.unit(), (ctx, { data }) => {
158+
const reducer_ts = data.reducer_ts;
159+
const x = data.x;
160+
const y = data.y;
161+
const procedure_ts = ctx.timestamp;
162+
ctx.withTx(ctx => {
163+
ctx.db.proc_inserts_into.insert({
164+
reducer_ts,
165+
procedure_ts,
166+
x,
167+
y
168+
});
169+
});
170+
return {};
171+
});

0 commit comments

Comments
 (0)