UNPKG

@kilterset/auth0-actions-testing

Version:

Test and develop Auth0 Actions or Okta CIC Actions locally.

116 lines (95 loc) 3.39 kB
import test from "node:test"; import { ok, strictEqual } from "node:assert"; import { postLogin } from "../../../mock/events/post-login"; import { connection } from "../../../mock"; test("Post-login event", async (t) => { await t.test("tenant ID informs other values", async (t) => { await t.test("when not explicitly set", () => { const { tenant, resource_server, request } = postLogin(); strictEqual( resource_server.identifier, `https://${tenant.id}.auth0.com/userinfo`, "resource_server does does not match expected tenant value" ); strictEqual( request.hostname, `${tenant.id}.auth0.com`, "resource_server does does not match expected tenant value" ); }); await t.test("when customized", () => { const { resource_server, request } = postLogin({ tenant: { id: "custom" }, }); strictEqual( resource_server.identifier, "https://custom.auth0.com/userinfo", "resource_server does does not match expected tenant value" ); strictEqual( request.hostname, `custom.auth0.com`, "resource_server does does not match expected tenant value" ); }); }); await t.test("connection informs other values", async (t) => { await t.test("when not explicitly set", () => { const { connection, user, request } = postLogin(); strictEqual( user.user_id.split("|")[0], connection.strategy, "user.user_id prefix does does not match expected connection strategy" ); ok(user.identities?.length, "expected at least one user identity"); strictEqual( user.identities[0].connection, connection.name, "user.identity.connection does does not match expected connection name" ); strictEqual( request.query.connection, connection.name, "request.query.connection does does not match expected connection name" ); }); await t.test("when customized", () => { const customConnection = connection({ name: "custom-name", strategy: "custom", }); const { user, request } = postLogin({ connection: customConnection }); strictEqual( user.user_id.split("|")[0], "custom", "user.user_id prefix does does not match expected connection strategy" ); ok(user.identities?.length, "expected at least one user identity"); strictEqual( user.identities[0].connection, "custom-name", "user.identity.connection does does not match expected connection name" ); strictEqual( request.query.connection, "custom-name", "request.query.connection does does not match expected connection name" ); }); }); await t.test("request informs other values", async (t) => { await t.test("when not explicitly set", () => { const { request, session, resource_server } = postLogin(); strictEqual( resource_server.identifier, `https://${request.hostname}/userinfo`, "resource_server does does not match expected request hostname" ); strictEqual( session.device?.initial_ip || session.device?.last_ip, request.ip, "ip in session does does not match expected request ip" ); }); }); });