Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ import {
sleepRawWsAddEventListenerMessage,
sleepWithLongRpc,
sleepWithNoSleepOption,
sleepWithPreventSleep,
sleepWithRawHttp,
sleepWithRawWebSocket,
sleepWithWaitUntilMessage,
Expand Down Expand Up @@ -179,7 +178,6 @@ export const registry = setup({
sleepWithRawHttp,
sleepWithRawWebSocket,
sleepWithNoSleepOption,
sleepWithPreventSleep,
sleepWithWaitUntilMessage,
sleepRawWsAddEventListenerMessage,
sleepRawWsAddEventListenerClose,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import { actor, event, type UniversalWebSocket } from "rivetkit";

Check failure on line 1 in rivetkit-typescript/packages/rivetkit/fixtures/driver-test-suite/sleep.ts

View workflow job for this annotation

GitHub Actions / RivetKit / Quality Check

format

Formatter would have printed the following content:
import { promiseWithResolvers } from "rivetkit/utils";
import { scheduleActorSleep } from "./schedule-sleep";

export const SLEEP_TIMEOUT = 1000;
export const PREVENT_SLEEP_TIMEOUT = 250;
export const RAW_WS_HANDLER_SLEEP_TIMEOUT = 100;
export const RAW_WS_HANDLER_DELAY = 250;

Expand Down Expand Up @@ -487,60 +486,3 @@
},
});

export const sleepWithPreventSleep = actor({
state: {
startCount: 0,
sleepCount: 0,
preventSleepOnWake: false,
delayPreventSleepDuringShutdown: false,
preventSleepClearedDuringShutdown: false,
},
onWake: (c) => {
c.state.startCount += 1;
c.setPreventSleep(c.state.preventSleepOnWake);
},
onSleep: (c) => {
c.state.sleepCount += 1;
if (c.state.delayPreventSleepDuringShutdown) {
c.setPreventSleep(true);
setTimeout(() => {
c.state.preventSleepClearedDuringShutdown = true;
c.setPreventSleep(false);
}, PREVENT_SLEEP_TIMEOUT / 2);
}
},
actions: {
triggerSleep: (c) => {
c.sleep();
},
getStatus: (c) => {
return {
startCount: c.state.startCount,
sleepCount: c.state.sleepCount,
preventSleep: c.preventSleep,
preventSleepOnWake: c.state.preventSleepOnWake,
delayPreventSleepDuringShutdown:
c.state.delayPreventSleepDuringShutdown,
preventSleepClearedDuringShutdown:
c.state.preventSleepClearedDuringShutdown,
};
},
setPreventSleep: (c, prevent: boolean) => {
c.setPreventSleep(prevent);
return c.preventSleep;
},
setPreventSleepOnWake: (c, prevent: boolean) => {
c.state.preventSleepOnWake = prevent;
return c.state.preventSleepOnWake;
},
setDelayPreventSleepDuringShutdown: (c, enabled: boolean) => {
c.state.delayPreventSleepDuringShutdown = enabled;
c.state.preventSleepClearedDuringShutdown = false;
return c.state.delayPreventSleepDuringShutdown;
},
},
options: {
sleepTimeout: SLEEP_TIMEOUT,
sleepGracePeriod: PREVENT_SLEEP_TIMEOUT,
},
});
100 changes: 0 additions & 100 deletions rivetkit-typescript/packages/rivetkit/tests/driver/actor-sleep.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import { describe, expect, test, vi } from "vitest";
import {
PREVENT_SLEEP_TIMEOUT,
RAW_WS_HANDLER_DELAY,
RAW_WS_HANDLER_SLEEP_TIMEOUT,
SLEEP_TIMEOUT,
Expand Down Expand Up @@ -593,105 +592,6 @@ describeDriverMatrix("Actor Sleep", (driverTestConfig) => {
}
});

test("preventSleep blocks auto sleep until cleared", async (c) => {
const { client } = await setupDriverTest(c, driverTestConfig);

const sleepActor = client.sleepWithPreventSleep.getOrCreate();

{
const status = await sleepActor.getStatus();
expect(status.sleepCount).toBe(0);
expect(status.startCount).toBe(1);
expect(status.preventSleep).toBe(false);
expect(status.preventSleepOnWake).toBe(false);
}

expect(await sleepActor.setPreventSleep(true)).toBe(true);
await waitFor(driverTestConfig, SLEEP_TIMEOUT + 250);

{
const status = await sleepActor.getStatus();
expect(status.sleepCount).toBe(0);
expect(status.startCount).toBe(1);
expect(status.preventSleep).toBe(true);
}

expect(await sleepActor.setPreventSleep(false)).toBe(false);
await waitFor(driverTestConfig, SLEEP_TIMEOUT * 3);

{
const status = await sleepActor.getStatus();
expect(status.sleepCount).toBe(1);
expect(status.startCount).toBe(2);
expect(status.preventSleep).toBe(false);
}
});

test("preventSleep delays shutdown until cleared", async (c) => {
const { client } = await setupDriverTest(c, driverTestConfig);

const sleepActor = client.sleepWithPreventSleep.getOrCreate([
"prevent-sleep-shutdown-delay",
]);

expect(
await sleepActor.setDelayPreventSleepDuringShutdown(true),
).toBe(true);
await sleepActor.triggerSleep();
await waitFor(driverTestConfig, PREVENT_SLEEP_TIMEOUT + 150);

{
const status = await sleepActor.getStatus();
expect(status.sleepCount).toBe(1);
expect(status.startCount).toBe(2);
expect(status.preventSleep).toBe(false);
expect(status.delayPreventSleepDuringShutdown).toBe(true);
expect(status.preventSleepClearedDuringShutdown).toBe(true);
}
});

test("preventSleep can be restored during onWake", async (c) => {
const { client } = await setupDriverTest(c, driverTestConfig);

const sleepActor = client.sleepWithPreventSleep.getOrCreate();

expect(await sleepActor.setPreventSleepOnWake(true)).toBe(true);

await sleepActor.triggerSleep();
await waitFor(driverTestConfig, 250);

{
const status = await sleepActor.getStatus();
expect(status.sleepCount).toBe(1);
expect(status.startCount).toBe(2);
expect(status.preventSleep).toBe(true);
expect(status.preventSleepOnWake).toBe(true);
}

await waitFor(driverTestConfig, SLEEP_TIMEOUT + 250);

{
const status = await sleepActor.getStatus();
expect(status.sleepCount).toBe(1);
expect(status.startCount).toBe(2);
expect(status.preventSleep).toBe(true);
expect(status.preventSleepOnWake).toBe(true);
}

expect(await sleepActor.setPreventSleepOnWake(false)).toBe(false);
expect(await sleepActor.setPreventSleep(false)).toBe(false);

await waitFor(driverTestConfig, SLEEP_TIMEOUT + 250);

{
const status = await sleepActor.getStatus();
expect(status.sleepCount).toBe(2);
expect(status.startCount).toBe(3);
expect(status.preventSleep).toBe(false);
expect(status.preventSleepOnWake).toBe(false);
}
});

test("async websocket addEventListener message handler delays sleep", async (c) => {
const { client } = await setupDriverTest(c, driverTestConfig);

Expand Down
Loading