# All files / test-utils use.ts

0% Statements 0/34
0% Branches 0/1
0% Functions 0/1
0% Lines 0/34

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35

     type UsePromise<T> = Promise<T> & {
      status?: "fulfilled" | "pending" | "rejected";
      value?: T;
      reason?: unknown;
    };

    // TODO: replace with real implementation when React.use is stable
    export function use<T>(promise: UsePromise<T>): T {
      if (promise.status === "fulfilled") {
        console.log("promise.value:", promise.value);
        return promise.value as T;
      } else if (promise.status === "rejected") {
        console.log("promise.reason:", promise.reason);
        throw promise.reason;
      } else if (promise.status === "pending") {
        throw promise;
      } else {
        promise.status = "pending";
        promise.then(
          (result) => {
            console.log("FULFILLED");
            promise.status = "fulfilled";
            promise.value = result;
            console.log("result:", result);
          },
          (reason) => {
            console.log("REJECTED");
            promise.status = "rejected";
            promise.reason = reason;
          }
        );
        throw promise;
      }
    }