import { evalPromiseValues } from "$common/space_lua/util.ts";
import { assertEquals } from "@std/assert/equals";
import { assert } from "@std/assert";

Deno.test("Test promise helpers", async () => {
  const r = evalPromiseValues([1, 2, 3]);
  // should return the same array not as a promise
  assertEquals(r, [1, 2, 3]);
  const asyncR = evalPromiseValues([
    new Promise((resolve) => {
      setTimeout(() => {
        resolve(1);
      }, 5);
    }),
    Promise.resolve(2),
    3,
  ]);
  // should return a promise
  assert(asyncR instanceof Promise);
  assertEquals(await asyncR, [1, 2, 3]);
});