UNPKG

@kilterset/auth0-actions-testing

Version:

Test and develop Auth0 Actions or Okta CIC Actions locally.

139 lines 6.99 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const node_test_1 = __importDefault(require("node:test")); const node_assert_1 = require("node:assert"); const user_1 = require("../../mock/user"); const identity_1 = require("../../mock/identity"); (0, node_test_1.default)("User mock", (t) => __awaiter(void 0, void 0, void 0, function* () { yield t.test("generates a realistic user", () => { const mock = (0, user_1.user)(); const guaranteed = [ "user_id", "email_verified", "user_metadata", "app_metadata", "created_at", "updated_at", ]; for (const field of guaranteed) { (0, node_assert_1.ok)(mock[field] !== undefined, `${field} was not present`); } }); yield t.test("can have properties overridden", () => { const overrides = { user_id: "custom-id", username: "hamlet", name: "Hamlet", given_name: "Ham", family_name: "Let", nickname: "hammy", email: "hamlet@avon.info", email_verified: true, phone_number: "+1234567890", phone_verified: true, picture: "https://example/hamster.jpg", app_metadata: { custom: "data", }, user_metadata: { custom: "data", }, created_at: "2021-01-01T00:00:00.000Z", updated_at: "2021-01-01T00:00:00.000Z", last_password_reset: undefined, identities: [(0, identity_1.identity)()], extra_field: "present", }; const actual = (0, user_1.user)(overrides); (0, node_assert_1.deepStrictEqual)(actual, overrides, "expected properties were not overridden"); }); yield t.test("name attributes", (t) => __awaiter(void 0, void 0, void 0, function* () { yield t.test("are excluded by default", () => { const { given_name, family_name } = (0, user_1.user)(); (0, node_assert_1.ok)(given_name === undefined, "given_name was found"); (0, node_assert_1.ok)(family_name === undefined, "family_name was found"); }); yield t.test("can be included", () => { const { given_name, family_name } = (0, user_1.user)({}, { includeFullName: true }); (0, node_assert_1.ok)(typeof given_name === "string" && given_name, "given_name absent"); (0, node_assert_1.ok)(typeof family_name === "string" && family_name, "family_name absent"); }); yield t.test("derives name from custom given and family names", () => { const { given_name, family_name, name } = (0, user_1.user)({ given_name: "Joel", family_name: "Miller", }); (0, node_assert_1.strictEqual)(given_name, "Joel", "given_name was not customized"); (0, node_assert_1.strictEqual)(family_name, "Miller", "family_name was not customized"); (0, node_assert_1.strictEqual)(name, "Joel Miller", "name was not correctly derived"); }); yield t.test("can have name customized", () => { const { given_name, family_name, name } = (0, user_1.user)({ given_name: "Joel", family_name: "Miller", name: "JM", }); (0, node_assert_1.strictEqual)(given_name, "Joel", "given_name was not customized"); (0, node_assert_1.strictEqual)(family_name, "Miller", "family_name was not customized"); (0, node_assert_1.strictEqual)(name, "JM", "name was not customized"); }); })); yield t.test("user ID", (t) => __awaiter(void 0, void 0, void 0, function* () { yield t.test("matches first identity", () => { const { user_id, identities } = (0, user_1.user)(); (0, node_assert_1.ok)(identities, "no identities found"); const identity = identities[0]; (0, node_assert_1.strictEqual)(user_id, `${identity.provider}|${identity.user_id}`, "user_id does not match identity"); }); yield t.test("matches customised identity", () => { const { user_id } = (0, user_1.user)({ identities: [ (0, identity_1.identity)({ provider: "google-oauth-2", user_id: "g42" }), (0, identity_1.identity)({ provider: "windowslive", user_id: "w10" }), ], }); (0, node_assert_1.strictEqual)(user_id, "google-oauth-2|g42", "unexpected user_id"); }); yield t.test("handles no ID", () => { const { user_id } = (0, user_1.user)({ identities: [], }); (0, node_assert_1.ok)(user_id.startsWith("auth0|"), "expected auth0 ID prefix"); }); })); yield t.test("email_verified is false when no email is set", (t) => __awaiter(void 0, void 0, void 0, function* () { const { email_verified } = (0, user_1.user)({ email: undefined }); (0, node_assert_1.strictEqual)(email_verified, false, "email_verified was not false"); })); yield t.test("nickname defaults to first part of email", (t) => __awaiter(void 0, void 0, void 0, function* () { const { nickname } = (0, user_1.user)({ email: "hello@example.com" }); (0, node_assert_1.strictEqual)(nickname, "hello", "nickname was not derived from email"); })); yield t.test("username", (t) => __awaiter(void 0, void 0, void 0, function* () { yield t.test("can be customized", () => { const { username } = (0, user_1.user)({ username: "custom", }); (0, node_assert_1.strictEqual)(username, "custom", "nickname was not customized"); }); yield t.test("can be omitted", () => { const { username } = (0, user_1.user)({ username: undefined, }); (0, node_assert_1.strictEqual)(username, undefined, "nickname was not omitted"); }); })); })); //# sourceMappingURL=user.test.js.map