64 lines
2.3 KiB
TypeScript
64 lines
2.3 KiB
TypeScript
|
|
import assert from "node:assert/strict";
|
||
|
|
import { test } from "node:test";
|
||
|
|
|
||
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||
|
|
import { createInstance } from "i18next";
|
||
|
|
import { renderToStaticMarkup } from "react-dom/server";
|
||
|
|
import { I18nextProvider } from "react-i18next";
|
||
|
|
|
||
|
|
import { accessKeys } from "./access-api";
|
||
|
|
import { AccessForm } from "./access-form";
|
||
|
|
import { AccessWorkspacePage } from "./access-workspace";
|
||
|
|
import { accessEnglish, accessSpanish } from "./i18n";
|
||
|
|
|
||
|
|
test("los catálogos presentan alta mediante acción y no un formulario junto al listado", async () => {
|
||
|
|
for (const [language, label] of [
|
||
|
|
["es", "Nuevo sistema"],
|
||
|
|
["en", "New system"],
|
||
|
|
] as const) {
|
||
|
|
const i18n = createInstance();
|
||
|
|
await i18n.init({
|
||
|
|
lng: language,
|
||
|
|
resources: { es: { access: accessSpanish }, en: { access: accessEnglish } },
|
||
|
|
});
|
||
|
|
const client = new QueryClient();
|
||
|
|
client.setQueryData(accessKeys.scope("global"), { items: [], reviews: [], coverage: [] });
|
||
|
|
const markup = renderToStaticMarkup(
|
||
|
|
<I18nextProvider i18n={i18n}>
|
||
|
|
<QueryClientProvider client={client}>
|
||
|
|
<AccessWorkspacePage csrfToken="test" scope="global" />
|
||
|
|
</QueryClientProvider>
|
||
|
|
</I18nextProvider>
|
||
|
|
);
|
||
|
|
assert.ok(markup.includes(label));
|
||
|
|
assert.equal(markup.includes("<form"), false);
|
||
|
|
client.clear();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
test("cuentas ofrecen caducidad opcional y campos sin contraseña", async () => {
|
||
|
|
const i18n = createInstance();
|
||
|
|
await i18n.init({ lng: "es", resources: { es: { access: accessSpanish } } });
|
||
|
|
const client = new QueryClient();
|
||
|
|
const markup = renderToStaticMarkup(
|
||
|
|
<I18nextProvider i18n={i18n}>
|
||
|
|
<QueryClientProvider client={client}>
|
||
|
|
<AccessForm
|
||
|
|
csrfToken="test"
|
||
|
|
data={{ items: [], reviews: [], coverage: [] }}
|
||
|
|
kind="account"
|
||
|
|
onSaved={() => undefined}
|
||
|
|
people={[]}
|
||
|
|
scope="e0420eb9-2aab-4368-96a0-2ce83dd23eb4"
|
||
|
|
/>
|
||
|
|
</QueryClientProvider>
|
||
|
|
</I18nextProvider>
|
||
|
|
);
|
||
|
|
assert.ok(markup.includes("Fecha de caducidad"));
|
||
|
|
assert.ok(markup.includes("Sistema, entorno y uso quedan fijos"));
|
||
|
|
assert.equal(markup.includes('type="password"'), false);
|
||
|
|
const field = markup.match(/<input[^>]*name="expiresOn"[^>]*>/)?.[0];
|
||
|
|
assert.ok(field);
|
||
|
|
assert.equal(field.includes("required"), false);
|
||
|
|
client.clear();
|
||
|
|
});
|