solid-panes
Version:
Solid-compatible Panes: applets and views for the mashlib and databrowser
64 lines (62 loc) • 4.13 kB
JavaScript
;
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
var _util = require("util");
var $rdf = _interopRequireWildcard(require("rdflib"));
var _solidNamespace = _interopRequireDefault(require("solid-namespace"));
var _trustedApplications = require("./trustedApplications.utils");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
/* eslint-env jest */
global.TextEncoder = _util.TextEncoder;
global.TextDecoder = _util.TextDecoder;
var ns = (0, _solidNamespace["default"])($rdf);
describe('generateRandomString', function () {
it('generates a random string five characters long', function () {
expect((0, _trustedApplications.generateRandomString)().length).toBe(5);
});
});
describe('getStatementsToDelete', function () {
it('should return an empty array when there are no statements', function () {
var mockStore = $rdf.graph();
var mockOrigin = $rdf.sym('https://origin.example');
var mockProfile = $rdf.sym('https://profile.example#me');
expect((0, _trustedApplications.getStatementsToDelete)(mockOrigin, mockProfile, mockStore, ns)).toEqual([]);
});
it('should return all statements for the given origin', function () {
var mockStore = $rdf.graph();
var mockApplication = $rdf.sym('https://app.example');
var mockOrigin = $rdf.sym('https://origin.example');
var mockProfile = $rdf.sym('https://profile.example#me');
mockStore.add(mockApplication, ns.acl('origin'), mockOrigin);
mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'));
mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication);
var statementsToDelete = (0, _trustedApplications.getStatementsToDelete)(mockOrigin, mockProfile, mockStore, ns);
expect(statementsToDelete.length).toBe(3);
expect(statementsToDelete).toMatchSnapshot();
});
it('should not return statements for a different origin', function () {
var mockStore = $rdf.graph();
var mockApplication = $rdf.sym('https://app.example');
var mockOrigin = $rdf.sym('https://origin.example');
var mockProfile = $rdf.sym('https://profile.example#me');
mockStore.add(mockApplication, ns.acl('origin'), mockOrigin);
mockStore.add(mockApplication, ns.acl('mode'), ns.acl('Read'));
mockStore.add(mockProfile, ns.acl('trustedApp'), mockApplication);
var statementsToDelete = (0, _trustedApplications.getStatementsToDelete)($rdf.lit('A different origin'),
// @@ TODO Remove casting
mockProfile, mockStore, ns);
expect(statementsToDelete.length).toBe(0);
expect(statementsToDelete).toEqual([]);
});
});
describe('getStatementsToAdd', function () {
it('should return all required statements to add the given permissions for a given origin', function () {
var mockOrigin = $rdf.sym('https://origin.example');
var mockProfile = $rdf.sym('https://profile.example#me');
var modes = [ns.acl('Read').value, ns.acl('Write').value];
var statementsToAdd = (0, _trustedApplications.getStatementsToAdd)(mockOrigin, 'mock_app_id', modes, mockProfile, ns);
expect(statementsToAdd.length).toBe(4);
expect(statementsToAdd).toMatchSnapshot();
});
});
//# sourceMappingURL=trustedApplications.test.js.map