realm-object-server
Version:
105 lines • 5.47 kB
JavaScript
;
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