UNPKG

realm-object-server

Version:

Realm Object Server

99 lines 4.49 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const chai = require("chai"); chai.use(require("chai-as-promised")); const NicknameAuthProvider_1 = require("./NicknameAuthProvider"); const TestServer_1 = require("../../TestServer"); const errors = require("../../errors"); const uuid = require("uuid"); describe("NicknameAuthProvider", () => { let provider; let server; before(() => __awaiter(this, void 0, void 0, function* () { server = new TestServer_1.TestServer(); provider = new NicknameAuthProvider_1.NicknameAuthProvider(); yield server.start({ authProviders: [provider] }); })); after(() => __awaiter(this, void 0, void 0, function* () { if (server) { yield server.shutdown(); } })); describe("when nickname provided", () => { it("logs a user in", () => __awaiter(this, void 0, void 0, function* () { const user = yield provider.authenticateOrCreateUser({ data: "foo" }); chai_1.assert.isDefined(user); chai_1.assert.isTrue(user.created); chai_1.assert.isFalse(user.isAdmin); chai_1.assert.isDefined(user.userId); chai_1.assert.equal(user.accounts[0].provider, "nickname"); chai_1.assert.isDefined(user.accounts[0].providerId); })); it("logs the same user every time", () => __awaiter(this, void 0, void 0, function* () { const first = yield provider.authenticateOrCreateUser({ data: "bar" }); chai_1.assert.isDefined(first); chai_1.assert.isTrue(first.created); const second = yield provider.authenticateOrCreateUser({ data: "bar" }); chai_1.assert.isFalse(second.created); chai_1.assert.equal(second.userId, first.userId); })); describe('when nickname is "admin"', () => { it("logs an admin user", () => __awaiter(this, void 0, void 0, function* () { const user = yield provider.authenticateOrCreateUser({ data: "admin" }); chai_1.assert.isFalse(user.isAdmin); })); }); describe("admin tests", () => { it("when is_admin is requested, is logged in as a regular user", () => __awaiter(this, void 0, void 0, function* () { const nickname = uuid.v4(); const user = (yield chai_1.assert.isFulfilled(provider.authenticateOrCreateUser({ data: nickname, user_info: { is_admin: true } }))); chai_1.assert.isFalse(user.isAdmin); })); it("cannot be promoted to admin", () => __awaiter(this, void 0, void 0, function* () { const nickname = uuid.v4(); let user = yield provider.authenticateOrCreateUser({ data: nickname }); chai_1.assert.isTrue(user.created); chai_1.assert.isFalse(user.isAdmin); user = (yield chai_1.assert.isFulfilled(provider.authenticateOrCreateUser({ data: nickname, user_info: { is_admin: true } }))); chai_1.assert.isFalse(user.isAdmin); })); }); }); describe("when nickname not provided", () => { it("throws an error", () => __awaiter(this, void 0, void 0, function* () { yield chai_1.assert.isRejected(provider.authenticateOrCreateUser({}), errors.realm.MissingParameters); })); }); }); //# sourceMappingURL=NicknameAuthProvider.spec.js.map