typestar

Pruebas async en JavaScript

Devuelve una promesa o recibe un callback; el runner espera igual.

import test from "node:test";
import assert from "node:assert/strict";

async function load(lang) {
  if (!lang) throw new RangeError("lang is required");
  return { lang, steps: 45 };
}

test("resolves with the tour", async () => {
  const tour = await load("javascript");
  assert.deepStrictEqual(tour, { lang: "javascript", steps: 45 });
});

test("rejects without a language", async () => {
  await assert.rejects(() => load(""), {
    name: "RangeError",
    message: /required/,
  });
});

Cómo funciona

  1. Una función de prueba async se espera con await.
  2. assert.rejects es la forma con promesas de assert.throws.
  3. Una prueba que olvida el await pasa por la razón equivocada.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
474
Tokens
114
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 65 segundos.

Escribe este fragmento

Paso 1 de 2 en Async y hooks; paso 3 de 9 en Pruebas con node:test.

← Anterior Siguiente →