UNPKG

solid-panes

Version:

Solid-compatible Panes: applets and views for the mashlib and databrowser

64 lines (62 loc) 4.13 kB
"use strict"; 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