UNPKG

realm-object-server

Version:

Realm Object Server

105 lines 5.47 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 tmp = require("tmp"); const fs = require("fs-extra"); const path = require("path"); const tos = require("./termsofservice"); describe("termsofservice", () => { describe("when in docker", () => { let tmpDir; let tmpAgreementFile; before(() => { tmpDir = tmp.dirSync(); tmpAgreementFile = path.join(tmpDir.name, "realm-object-server-agreement.json"); process.env.DOCKER_DATA_PATH = tmpDir.name; }); after(() => { delete process.env.DOCKER_DATA_PATH; delete process.env.ROS_TOS_EMAIL_ADDRESS; }); describe("without ROS_TOS_EMAIL_ADDRESS set", () => { it("should throw an exception", () => __awaiter(this, void 0, void 0, function* () { yield chai_1.assert.isRejected(tos.agreeToTerms(), "Please enter a valid email"); })); }); describe("with an invalid ROS_TOS_EMAIL_ADDRESS set", () => { beforeEach(() => process.env.ROS_TOS_EMAIL_ADDRESS = "not-an-email.address"); it("should throw an exception", () => __awaiter(this, void 0, void 0, function* () { yield chai_1.assert.isRejected(tos.agreeToTerms(), "Please enter a valid email"); })); }); describe("with a valid ROS_TOS_EMAIL_ADDRESS set", () => { beforeEach(() => process.env.ROS_TOS_EMAIL_ADDRESS = "ci@realm.io"); it("should write the agreement data", () => __awaiter(this, void 0, void 0, function* () { yield chai_1.assert.isFulfilled(tos.agreeToTerms()); const data = yield fs.readFile(tmpAgreementFile, "utf-8"); const tosData = JSON.parse(data); chai_1.assert.equal(tosData.email, "ci@realm.io"); chai_1.assert.equal(tosData.terms, "https://realm.io/legal/developer-license-terms/"); chai_1.assert.equal(tosData.agreeToLearnAboutUpdatesAndFixes, false); chai_1.assert.isDefined(tosData.distinctId); })); it("should not require the ROS_TOS_EMAIL_ADDRESS when the agreement has been written", () => __awaiter(this, void 0, void 0, function* () { delete process.env.ROS_TOS_EMAIL_ADDRESS; yield chai_1.assert.isFulfilled(tos.agreeToTerms()); })); }); describe("with agreement file with missing keys", () => { beforeEach(() => __awaiter(this, void 0, void 0, function* () { const agreement = { email: "realm@realm.io", agreeToLearnAboutUpdatesAndFixes: false }; yield fs.writeFile(tmpAgreementFile, agreement, { encoding: "utf-8" }); })); it("ros should fail to start", () => __awaiter(this, void 0, void 0, function* () { yield chai_1.assert.isRejected(tos.agreeToTerms()); })); afterEach(() => __awaiter(this, void 0, void 0, function* () { yield fs.remove(tmpAgreementFile); })); }); describe("with agreement file with invalid email", () => { beforeEach(() => __awaiter(this, void 0, void 0, function* () { const agreement = { email: "foo@bar", terms: "https://realm.io/legal/developer-license-terms/", agreeToLearnAboutUpdatesAndFixes: false }; yield fs.writeFile(tmpAgreementFile, agreement, { encoding: "utf-8" }); })); it("ros should fail to start", () => __awaiter(this, void 0, void 0, function* () { yield chai_1.assert.isRejected(tos.agreeToTerms()); })); afterEach(() => __awaiter(this, void 0, void 0, function* () { yield fs.remove(tmpAgreementFile); })); }); describe("with agreement file with invalid terms url", () => { beforeEach(() => __awaiter(this, void 0, void 0, function* () { const agreement = { email: "foo@bar", terms: "", agreeToLearnAboutUpdatesAndFixes: false }; yield fs.writeFile(tmpAgreementFile, agreement, { encoding: "utf-8" }); })); it("ros should fail to start", () => __awaiter(this, void 0, void 0, function* () { yield chai_1.assert.isRejected(tos.agreeToTerms()); })); afterEach(() => __awaiter(this, void 0, void 0, function* () { yield fs.remove(tmpAgreementFile); })); }); }); }); //# sourceMappingURL=termsofservice.spec.js.map