import { RedisLockProvider } from "alepha/lock/redis";
import { describe, test } from "vitest";
import { SharedLockProvider, testSchedulerBasic } from "./shared.ts";

describe("$scheduler - cron", () => {
  const scheduler = { cron: "0 * * * *" };

  test("should trigger all apps", async () => {
    await testSchedulerBasic({
      scheduler,
    });
  });
  test("should trigger one app (memory)", async () => {
    await testSchedulerBasic({
      lock: SharedLockProvider,
      scheduler,
    });
  });
  test("should trigger one app (redis)", { retry: 3 }, async () => {
    await testSchedulerBasic({
      lock: RedisLockProvider,
      scheduler,
    });
  });
});
