@kilterset/auth0-actions-testing
Version:
Test and develop Auth0 Actions or Okta CIC Actions locally.
139 lines • 6.99 kB
JavaScript
;
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