realm-object-server
Version:
123 lines • 6.75 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 TestServer_1 = require("../../TestServer");
const auth = require("../../auth");
const Token_1 = require("../../shared/Token");
const chai_1 = require("chai");
const chai = require("chai");
chai.use(require("chai-as-promised"));
const superagent = require("superagent");
const realmUtil_1 = require("../../shared/realmUtil");
const uuid = require("uuid");
const URI = require("urijs");
describe("PermissionsService Default Access Integration Tests", function () {
let server;
let authService;
let authAccessTokenUrl;
before(() => __awaiter(this, void 0, void 0, function* () {
server = new TestServer_1.TestServer();
yield server.start({
authProviders: [new auth.PasswordAuthProvider({ iterations: 1 }), new auth.AnonymousAuthProvider()]
});
authService = server.getService("auth");
authAccessTokenUrl = new URI(server.url).segment("auth").toString();
}));
after(() => __awaiter(this, void 0, void 0, function* () {
yield server.shutdown();
}));
describe("a regular user creation of ~/myrealm for first time", () => {
describe("when realm file doesn't exist", () => {
it("should have download, upload, and manage access", () => __awaiter(this, void 0, void 0, function* () {
const credentials = realmUtil_1.Realm.Sync.Credentials.anonymous();
const user = yield realmUtil_1.Realm.Sync.User.login(server.url, credentials);
const userRefreshToken = user.token;
const response = yield superagent
.post(authAccessTokenUrl)
.send({
path: `~/myrealm${uuid.v4()}`,
data: userRefreshToken,
provider: "realm"
});
chai_1.expect(response.body["access_token"]).to.be.not.undefined;
chai_1.expect(response.body["access_token"]["token_data"]).to.be.not.undefined;
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.exist;
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.include("download");
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.include("upload");
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.include("manage");
}));
});
});
describe("a regular user creation of global realm for first time", () => {
describe("when realm file doesn't exist", () => {
it("should throw a 403 Access Denied Error", () => __awaiter(this, void 0, void 0, function* () {
const user = yield authService.createOrUpdateUser(uuid.v4(), "nickname", false);
const userRefreshToken = new Token_1.RefreshToken({
isAdmin: false,
identity: user.userId,
appId: "io.realm.Auth",
}).sign(server.privateKey);
try {
yield superagent
.post(authAccessTokenUrl)
.send({
path: "/someglobalrealm",
data: userRefreshToken,
provider: "realm"
});
}
catch (err) {
chai_1.expect(err["status"]).to.eq(403);
}
}));
});
});
describe("an admin user creation of ~/myrealm for first time", () => {
describe("when realm file doesn't exist", () => {
it("should have download, upload, manage access", () => __awaiter(this, void 0, void 0, function* () {
const userRefreshToken = yield server.createSignedAdminToken();
const response = yield superagent
.post(authAccessTokenUrl)
.send({
path: `/someglobalrealm-${uuid.v4()}`,
data: userRefreshToken,
provider: "realm"
});
chai_1.expect(response.body["access_token"]).to.be.not.undefined;
chai_1.expect(response.body["access_token"]["token_data"]).to.be.not.undefined;
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.exist;
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.include("download");
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.include("upload");
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.include("manage");
}));
});
});
describe("an admin user creation of global realm for first time", () => {
describe("when realm file doesn't exist", () => {
it("should have download, upload, and manage access", () => __awaiter(this, void 0, void 0, function* () {
const userRefreshToken = yield server.createSignedAdminToken();
const response = yield superagent
.post(authAccessTokenUrl)
.send({
path: `/someglobalrealm-${uuid.v4()}`,
data: userRefreshToken,
provider: "realm"
});
chai_1.expect(response.body["access_token"]).to.be.not.undefined;
chai_1.expect(response.body["access_token"]["token_data"]).to.be.not.undefined;
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.exist;
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.include("download");
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.include("upload");
chai_1.expect(response.body["access_token"]["token_data"]["access"]).to.include("manage");
}));
});
});
});
//# sourceMappingURL=permission-service-default-access-integration-tests.spec.js.map