@sprucelabs/spruce-cli 18.1.6 → 18.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/build/__tests__/behavioral/WatchingSkillViews.test.js +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.d.ts +8 -0
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.js +85 -0
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.js.map +1 -0
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.d.ts +5 -6
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +54 -34
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionStore.test.d.ts +15 -0
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +241 -0
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +7 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +88 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -0
- package/build/__tests__/implementation/{GlobalEmitter.d.ts → GlobalEmitter.test.d.ts} +0 -0
- package/build/__tests__/implementation/{GlobalEmitter.js → GlobalEmitter.test.js} +1 -1
- package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -0
- package/build/features/error/writers/ErrorWriter.js +1 -4
- package/build/features/error/writers/ErrorWriter.js.map +1 -1
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/writers/EventWriter.js +6 -2
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/permission/actions/CreateAction.d.ts +51 -24
- package/build/features/permission/actions/CreateAction.js +36 -10
- package/build/features/permission/actions/CreateAction.js.map +1 -1
- package/build/features/permission/actions/SyncAction.d.ts +16 -0
- package/build/features/permission/actions/SyncAction.js +71 -0
- package/build/features/permission/actions/SyncAction.js.map +1 -0
- package/build/features/permission/stores/PermissionStore.d.ts +6 -0
- package/build/features/permission/stores/PermissionStore.js +102 -0
- package/build/features/permission/stores/PermissionStore.js.map +1 -0
- package/build/features/permission/writers/PermissionWriter.d.ts +10 -0
- package/build/features/permission/writers/PermissionWriter.js +94 -0
- package/build/features/permission/writers/PermissionWriter.js.map +1 -0
- package/build/features/view/actions/WatchAction.js +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/build/stores/StoreFactory.d.ts +2 -0
- package/build/stores/StoreFactory.js +3 -1
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/tests/cleanTestData.js +25 -18
- package/build/tests/cleanTestData.js.map +1 -1
- package/build/writers/WriterFactory.d.ts +2 -0
- package/build/writers/WriterFactory.js +3 -1
- package/build/writers/WriterFactory.js.map +1 -1
- package/package.json +30 -28
- package/src/__tests__/behavioral/WatchingSkillViews.test.ts +1 -1
- package/src/__tests__/behavioral/permissions/AbstractPermissionsTest.ts +20 -0
- package/src/__tests__/behavioral/permissions/CreatingPermissions.test.ts +32 -16
- package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +109 -0
- package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +25 -0
- package/src/__tests__/implementation/{GlobalEmitter.ts → GlobalEmitter.test.ts} +0 -0
- package/src/features/error/writers/ErrorWriter.ts +0 -2
- package/src/features/event/EventFeature.ts +0 -1
- package/src/features/event/writers/EventWriter.ts +4 -0
- package/src/features/permission/actions/CreateAction.ts +39 -16
- package/src/features/permission/actions/SyncAction.ts +23 -0
- package/src/features/permission/stores/PermissionStore.ts +29 -0
- package/src/features/permission/writers/PermissionWriter.ts +54 -0
- package/src/features/view/actions/WatchAction.ts +1 -1
- package/src/stores/StoreFactory.ts +5 -2
- package/src/tests/cleanTestData.ts +7 -3
- package/src/writers/WriterFactory.ts +3 -0
- package/build/__tests__/implementation/GlobalEmitter.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [18.1.8](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.1.7...v18.1.8) (2022-11-21)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
9
|
+
|
|
10
|
+
## [18.1.7](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.1.6...v18.1.7) (2022-11-17)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
13
|
+
|
|
6
14
|
## [18.1.6](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.1.5...v18.1.6) (2022-11-16)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
@@ -83,7 +83,7 @@ var WatchingSkillViewsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
|
|
|
83
83
|
switch (_context3.prev = _context3.next) {
|
|
84
84
|
case 0:
|
|
85
85
|
wasHit = false;
|
|
86
|
-
_CommandService["default"].fakeCommand('ENABLED_SKILL_FEATURES=view,event
|
|
86
|
+
_CommandService["default"].fakeCommand('ENABLED_SKILL_FEATURES=view,event SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot', {
|
|
87
87
|
code: 200,
|
|
88
88
|
callback: function callback() {
|
|
89
89
|
wasHit = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WatchingSkillViews.test.js","names":["WatchingSkillViewsTest","test","action","Action","assert","isFunction","execute","wasHit","CommandService","fakeCommand","code","callback","wait","isTrue","AbstractSkillTest"],"sources":["../../../src/__tests__/behavioral/WatchingSkillViews.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport WatchAction from '../../features/view/actions/WatchAction'\nimport CommandService from '../../services/CommandService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class WatchingSkillViewsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'views'\n\tprotected static oldBootExecute: any\n\tprivate static action: WatchAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('view', 'watch')\n\t}\n\n\t@test()\n\tprotected static async hasWatchSkillViewsEvent() {\n\t\tassert.isFunction(this.action.execute)\n\t}\n\n\t@test()\n\tprotected static async shouldCallBoot() {\n\t\tlet wasHit = false\n\t\tCommandService.fakeCommand(\n\t\t\t'ENABLED_SKILL_FEATURES=view,event
|
|
1
|
+
{"version":3,"file":"WatchingSkillViews.test.js","names":["WatchingSkillViewsTest","test","action","Action","assert","isFunction","execute","wasHit","CommandService","fakeCommand","code","callback","wait","isTrue","AbstractSkillTest"],"sources":["../../../src/__tests__/behavioral/WatchingSkillViews.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport WatchAction from '../../features/view/actions/WatchAction'\nimport CommandService from '../../services/CommandService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class WatchingSkillViewsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'views'\n\tprotected static oldBootExecute: any\n\tprivate static action: WatchAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('view', 'watch')\n\t}\n\n\t@test()\n\tprotected static async hasWatchSkillViewsEvent() {\n\t\tassert.isFunction(this.action.execute)\n\t}\n\n\t@test()\n\tprotected static async shouldCallBoot() {\n\t\tlet wasHit = false\n\t\tCommandService.fakeCommand(\n\t\t\t'ENABLED_SKILL_FEATURES=view,event SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot',\n\t\t\t{\n\t\t\t\tcode: 200,\n\t\t\t\tcallback: () => {\n\t\t\t\t\twasHit = true\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tvoid this.action.execute()\n\n\t\tawait this.wait(10)\n\n\t\tassert.isTrue(wasHit)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAEA;AACA;AAA6D;AAAA;AAAA;AAAA,IAExCA,sBAAsB,WAUzC,IAAAC,eAAI,GAAE,UAKN,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,gGAVP;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;gBAEC,IAAI,CAACC,MAAM,GAAG,IAAI,CAACC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC1C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,6GAED;QAAA;UAAA;YAAA;cAAA;gBAECC,iBAAM,CAACC,UAAU,CAAC,IAAI,CAACH,MAAM,CAACI,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACtC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEKC,MAAM,GAAG,KAAK;gBAClBC,0BAAc,CAACC,WAAW,CACzB,mGAAmG,EACnG;kBACCC,IAAI,EAAE,GAAG;kBACTC,QAAQ,EAAE,oBAAM;oBACfJ,MAAM,GAAG,IAAI;kBACd;gBACD,CAAC,CACD;gBAED,KAAK,IAAI,CAACL,MAAM,CAACI,OAAO,EAAE;gBAAA;gBAAA,OAEpB,IAAI,CAACM,IAAI,CAAC,EAAE,CAAC;cAAA;gBAEnBR,iBAAM,CAACS,MAAM,CAACN,MAAM,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACrB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAjCkDO,8BAAiB,8DACnC,OAAO;AAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import CreateAction from '../../../features/permission/actions/CreateAction';
|
|
2
|
+
import AbstractSkillTest from '../../../tests/AbstractSkillTest';
|
|
3
|
+
export default abstract class AbstractPermissionsTest extends AbstractSkillTest {
|
|
4
|
+
protected static skillCacheKey: string;
|
|
5
|
+
protected static createAction: CreateAction;
|
|
6
|
+
protected static beforeEach(): Promise<void>;
|
|
7
|
+
protected static createPermissionContract(nameReadable: string): Promise<import("../../../features/features.types").FeatureActionResponse>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
18
|
+
var _AbstractSkillTest2 = _interopRequireDefault(require("../../../tests/AbstractSkillTest"));
|
|
19
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
20
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
21
|
+
var AbstractPermissionsTest = /*#__PURE__*/function (_AbstractSkillTest) {
|
|
22
|
+
(0, _inherits2["default"])(AbstractPermissionsTest, _AbstractSkillTest);
|
|
23
|
+
var _super = _createSuper(AbstractPermissionsTest);
|
|
24
|
+
function AbstractPermissionsTest() {
|
|
25
|
+
(0, _classCallCheck2["default"])(this, AbstractPermissionsTest);
|
|
26
|
+
return _super.apply(this, arguments);
|
|
27
|
+
}
|
|
28
|
+
(0, _createClass2["default"])(AbstractPermissionsTest, null, [{
|
|
29
|
+
key: "beforeEach",
|
|
30
|
+
value: function () {
|
|
31
|
+
var _beforeEach = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
32
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
33
|
+
while (1) {
|
|
34
|
+
switch (_context.prev = _context.next) {
|
|
35
|
+
case 0:
|
|
36
|
+
_context.next = 2;
|
|
37
|
+
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(AbstractPermissionsTest), "beforeEach", this).call(this);
|
|
38
|
+
case 2:
|
|
39
|
+
this.createAction = this.Action('permission', 'create');
|
|
40
|
+
case 3:
|
|
41
|
+
case "end":
|
|
42
|
+
return _context.stop();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}, _callee, this);
|
|
46
|
+
}));
|
|
47
|
+
function beforeEach() {
|
|
48
|
+
return _beforeEach.apply(this, arguments);
|
|
49
|
+
}
|
|
50
|
+
return beforeEach;
|
|
51
|
+
}()
|
|
52
|
+
}, {
|
|
53
|
+
key: "createPermissionContract",
|
|
54
|
+
value: function () {
|
|
55
|
+
var _createPermissionContract = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(nameReadable) {
|
|
56
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
57
|
+
while (1) {
|
|
58
|
+
switch (_context2.prev = _context2.next) {
|
|
59
|
+
case 0:
|
|
60
|
+
_context2.next = 2;
|
|
61
|
+
return this.createAction.execute({
|
|
62
|
+
nameReadable: nameReadable,
|
|
63
|
+
nameCamel: _spruceSkillUtils.namesUtil.toCamel(nameReadable)
|
|
64
|
+
});
|
|
65
|
+
case 2:
|
|
66
|
+
return _context2.abrupt("return", _context2.sent);
|
|
67
|
+
case 3:
|
|
68
|
+
case "end":
|
|
69
|
+
return _context2.stop();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}, _callee2, this);
|
|
73
|
+
}));
|
|
74
|
+
function createPermissionContract(_x) {
|
|
75
|
+
return _createPermissionContract.apply(this, arguments);
|
|
76
|
+
}
|
|
77
|
+
return createPermissionContract;
|
|
78
|
+
}()
|
|
79
|
+
}]);
|
|
80
|
+
return AbstractPermissionsTest;
|
|
81
|
+
}(_AbstractSkillTest2["default"]);
|
|
82
|
+
exports["default"] = AbstractPermissionsTest;
|
|
83
|
+
(0, _defineProperty2["default"])(AbstractPermissionsTest, "skillCacheKey", 'permissions');
|
|
84
|
+
(0, _defineProperty2["default"])(AbstractPermissionsTest, "createAction", void 0);
|
|
85
|
+
//# sourceMappingURL=AbstractPermissionsTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractPermissionsTest.js","names":["AbstractPermissionsTest","createAction","Action","nameReadable","execute","nameCamel","namesUtil","toCamel","AbstractSkillTest"],"sources":["../../../../src/__tests__/behavioral/permissions/AbstractPermissionsTest.ts"],"sourcesContent":["import { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport CreateAction from '../../../features/permission/actions/CreateAction'\nimport AbstractSkillTest from '../../../tests/AbstractSkillTest'\n\nexport default abstract class AbstractPermissionsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'permissions'\n\tprotected static createAction: CreateAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.createAction = this.Action('permission', 'create')\n\t}\n\n\tprotected static async createPermissionContract(nameReadable: string) {\n\t\treturn await this.createAction.execute({\n\t\t\tnameReadable,\n\t\t\tnameCamel: namesUtil.toCamel(nameReadable),\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAEA;AAAgE;AAAA;AAAA,IAElCA,uBAAuB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,gGAIpD;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;cAAA;gBAEC,IAAI,CAACC,YAAY,GAAG,IAAI,CAACC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACvD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,8GAED,kBAAgDC,YAAoB;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACtD,IAAI,CAACF,YAAY,CAACG,OAAO,CAAC;kBACtCD,YAAY,EAAZA,YAAY;kBACZE,SAAS,EAAEC,2BAAS,CAACC,OAAO,CAACJ,YAAY;gBAC1C,CAAC,CAAC;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAd4DK,8BAAiB;AAAA;AAAA,iCAAjDR,uBAAuB,mBACnB,aAAa;AAAA,iCADjBA,uBAAuB"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class CreatingPermissionsTest extends
|
|
3
|
-
|
|
4
|
-
protected static
|
|
5
|
-
|
|
6
|
-
protected static createsFileBasedOnName(): Promise<void>;
|
|
1
|
+
import AbstractPermissionsTest from './AbstractPermissionsTest';
|
|
2
|
+
export default class CreatingPermissionsTest extends AbstractPermissionsTest {
|
|
3
|
+
protected static createsFileBasedOnName(nameReadable: string): Promise<void>;
|
|
4
|
+
protected static rendersExpectedTemplate(): Promise<void>;
|
|
5
|
+
private static executeAndGetContract;
|
|
7
6
|
}
|
|
@@ -9,98 +9,118 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
13
12
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
13
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
14
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
15
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
|
|
16
|
+
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
18
17
|
var _testUtils = require("@sprucelabs/test-utils");
|
|
19
|
-
var
|
|
20
|
-
var
|
|
18
|
+
var _test = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
|
|
19
|
+
var _AbstractPermissionsTest = _interopRequireDefault(require("./AbstractPermissionsTest"));
|
|
20
|
+
var _dec, _dec2, _dec3, _dec4, _class;
|
|
21
21
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
22
22
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
23
|
-
var CreatingPermissionsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test)(), (
|
|
24
|
-
(0, _inherits2["default"])(CreatingPermissionsTest,
|
|
23
|
+
var CreatingPermissionsTest = (_dec = (0, _testUtils.test)('can create permission contract named booking', 'booking'), _dec2 = (0, _testUtils.test)('can create permission contract named awesome', 'awesome'), _dec3 = (0, _testUtils.test)('can create permission contract named Point of Sale Checkout', 'Point of Sale Checkout'), _dec4 = (0, _testUtils.test)(), (_class = /*#__PURE__*/function (_AbstractPermissionsT) {
|
|
24
|
+
(0, _inherits2["default"])(CreatingPermissionsTest, _AbstractPermissionsT);
|
|
25
25
|
var _super = _createSuper(CreatingPermissionsTest);
|
|
26
26
|
function CreatingPermissionsTest() {
|
|
27
27
|
(0, _classCallCheck2["default"])(this, CreatingPermissionsTest);
|
|
28
28
|
return _super.apply(this, arguments);
|
|
29
29
|
}
|
|
30
30
|
(0, _createClass2["default"])(CreatingPermissionsTest, null, [{
|
|
31
|
-
key: "
|
|
31
|
+
key: "createsFileBasedOnName",
|
|
32
32
|
value: function () {
|
|
33
|
-
var
|
|
33
|
+
var _createsFileBasedOnName = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(nameReadable) {
|
|
34
|
+
var _yield$this$executeAn, results;
|
|
34
35
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
35
36
|
while (1) {
|
|
36
37
|
switch (_context.prev = _context.next) {
|
|
37
38
|
case 0:
|
|
38
39
|
_context.next = 2;
|
|
39
|
-
return
|
|
40
|
+
return this.executeAndGetContract(nameReadable);
|
|
40
41
|
case 2:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
case
|
|
42
|
+
_yield$this$executeAn = _context.sent;
|
|
43
|
+
results = _yield$this$executeAn.results;
|
|
44
|
+
_context.next = 6;
|
|
45
|
+
return this.assertValidActionResponseFiles(results);
|
|
46
|
+
case 6:
|
|
46
47
|
case "end":
|
|
47
48
|
return _context.stop();
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
}, _callee, this);
|
|
51
52
|
}));
|
|
52
|
-
function
|
|
53
|
-
return
|
|
53
|
+
function createsFileBasedOnName(_x) {
|
|
54
|
+
return _createsFileBasedOnName.apply(this, arguments);
|
|
54
55
|
}
|
|
55
|
-
return
|
|
56
|
+
return createsFileBasedOnName;
|
|
56
57
|
}()
|
|
57
58
|
}, {
|
|
58
|
-
key: "
|
|
59
|
+
key: "rendersExpectedTemplate",
|
|
59
60
|
value: function () {
|
|
60
|
-
var
|
|
61
|
+
var _rendersExpectedTemplate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
62
|
+
var _yield$this$executeAn2, contractPath, contents;
|
|
61
63
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
62
64
|
while (1) {
|
|
63
65
|
switch (_context2.prev = _context2.next) {
|
|
64
66
|
case 0:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
_context2.next = 2;
|
|
68
|
+
return this.executeAndGetContract();
|
|
69
|
+
case 2:
|
|
70
|
+
_yield$this$executeAn2 = _context2.sent;
|
|
71
|
+
contractPath = _yield$this$executeAn2.contractPath;
|
|
72
|
+
contents = _spruceSkillUtils.diskUtil.readFile(contractPath);
|
|
73
|
+
_testUtils.assert.doesInclude(contents, 'const bookingPermissions = buildPermissionContract');
|
|
74
|
+
case 6:
|
|
67
75
|
case "end":
|
|
68
76
|
return _context2.stop();
|
|
69
77
|
}
|
|
70
78
|
}
|
|
71
79
|
}, _callee2, this);
|
|
72
80
|
}));
|
|
73
|
-
function
|
|
74
|
-
return
|
|
81
|
+
function rendersExpectedTemplate() {
|
|
82
|
+
return _rendersExpectedTemplate.apply(this, arguments);
|
|
75
83
|
}
|
|
76
|
-
return
|
|
84
|
+
return rendersExpectedTemplate;
|
|
77
85
|
}()
|
|
78
86
|
}, {
|
|
79
|
-
key: "
|
|
87
|
+
key: "executeAndGetContract",
|
|
80
88
|
value: function () {
|
|
81
|
-
var
|
|
89
|
+
var _executeAndGetContract = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
90
|
+
var nameReadable,
|
|
91
|
+
results,
|
|
92
|
+
expected,
|
|
93
|
+
contractPath,
|
|
94
|
+
_args3 = arguments;
|
|
82
95
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
83
96
|
while (1) {
|
|
84
97
|
switch (_context3.prev = _context3.next) {
|
|
85
98
|
case 0:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
99
|
+
nameReadable = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : 'Booking';
|
|
100
|
+
_context3.next = 3;
|
|
101
|
+
return this.createPermissionContract(nameReadable);
|
|
102
|
+
case 3:
|
|
103
|
+
results = _context3.sent;
|
|
104
|
+
expected = this.resolvePath("src/permissions/".concat(_spruceSkillUtils.namesUtil.toKebab(nameReadable), ".permissions.ts"));
|
|
105
|
+
contractPath = _test["default"].assertFileByPathInGeneratedFiles(expected, results.files);
|
|
106
|
+
return _context3.abrupt("return", {
|
|
107
|
+
contractPath: contractPath,
|
|
108
|
+
results: results
|
|
89
109
|
});
|
|
90
|
-
case
|
|
110
|
+
case 7:
|
|
91
111
|
case "end":
|
|
92
112
|
return _context3.stop();
|
|
93
113
|
}
|
|
94
114
|
}
|
|
95
115
|
}, _callee3, this);
|
|
96
116
|
}));
|
|
97
|
-
function
|
|
98
|
-
return
|
|
117
|
+
function executeAndGetContract() {
|
|
118
|
+
return _executeAndGetContract.apply(this, arguments);
|
|
99
119
|
}
|
|
100
|
-
return
|
|
120
|
+
return executeAndGetContract;
|
|
101
121
|
}()
|
|
102
122
|
}]);
|
|
103
123
|
return CreatingPermissionsTest;
|
|
104
|
-
}(
|
|
124
|
+
}(_AbstractPermissionsTest["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "createsFileBasedOnName", [_dec, _dec2, _dec3], Object.getOwnPropertyDescriptor(_class, "createsFileBasedOnName"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "rendersExpectedTemplate", [_dec4], Object.getOwnPropertyDescriptor(_class, "rendersExpectedTemplate"), _class)), _class));
|
|
105
125
|
exports["default"] = CreatingPermissionsTest;
|
|
106
126
|
//# sourceMappingURL=CreatingPermissions.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatingPermissions.test.js","names":["CreatingPermissionsTest","test","
|
|
1
|
+
{"version":3,"file":"CreatingPermissions.test.js","names":["CreatingPermissionsTest","test","nameReadable","executeAndGetContract","results","assertValidActionResponseFiles","contractPath","contents","diskUtil","readFile","assert","doesInclude","createPermissionContract","expected","resolvePath","namesUtil","toKebab","testUtil","assertFileByPathInGeneratedFiles","files","AbstractPermissionsTest"],"sources":["../../../../src/__tests__/behavioral/permissions/CreatingPermissions.test.ts"],"sourcesContent":["import { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport AbstractPermissionsTest from './AbstractPermissionsTest'\n\nexport default class CreatingPermissionsTest extends AbstractPermissionsTest {\n\t@test('can create permission contract named booking', 'booking')\n\t@test('can create permission contract named awesome', 'awesome')\n\t@test(\n\t\t'can create permission contract named Point of Sale Checkout',\n\t\t'Point of Sale Checkout'\n\t)\n\tprotected static async createsFileBasedOnName(nameReadable: string) {\n\t\tconst { results } = await this.executeAndGetContract(nameReadable)\n\t\tawait this.assertValidActionResponseFiles(results)\n\t}\n\n\t@test()\n\tprotected static async rendersExpectedTemplate() {\n\t\tconst { contractPath } = await this.executeAndGetContract()\n\t\tconst contents = diskUtil.readFile(contractPath)\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'const bookingPermissions = buildPermissionContract'\n\t\t)\n\t}\n\n\tprivate static async executeAndGetContract(nameReadable = 'Booking') {\n\t\tconst results = await this.createPermissionContract(nameReadable)\n\n\t\tconst expected = this.resolvePath(\n\t\t\t`src/permissions/${namesUtil.toKebab(nameReadable)}.permissions.ts`\n\t\t)\n\n\t\tconst contractPath = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\texpected,\n\t\t\tresults.files\n\t\t)\n\t\treturn { contractPath, results }\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAA+D;AAAA;AAAA;AAAA,IAE1CA,uBAAuB,WAC1C,IAAAC,eAAI,EAAC,8CAA8C,EAAE,SAAS,CAAC,UAC/D,IAAAA,eAAI,EAAC,8CAA8C,EAAE,SAAS,CAAC,UAC/D,IAAAA,eAAI,EACJ,6DAA6D,EAC7D,wBAAwB,CACxB,UAMA,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,4GAXP,iBAM8CC,YAAoB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACvC,IAAI,CAACC,qBAAqB,CAACD,YAAY,CAAC;cAAA;gBAAA;gBAA1DE,OAAO,yBAAPA,OAAO;gBAAA;gBAAA,OACT,IAAI,CAACC,8BAA8B,CAACD,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAClD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,6GAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEgC,IAAI,CAACD,qBAAqB,EAAE;cAAA;gBAAA;gBAAnDG,YAAY,0BAAZA,YAAY;gBACdC,QAAQ,GAAGC,0BAAQ,CAACC,QAAQ,CAACH,YAAY,CAAC;gBAChDI,iBAAM,CAACC,WAAW,CACjBJ,QAAQ,EACR,oDAAoD,CACpD;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,2GAED;QAAA;UAAA;UAAA;UAAA;UAAA;QAAA;UAAA;YAAA;cAAA;gBAA2CL,YAAY,8DAAG,SAAS;gBAAA;gBAAA,OAC5C,IAAI,CAACU,wBAAwB,CAACV,YAAY,CAAC;cAAA;gBAA3DE,OAAO;gBAEPS,QAAQ,GAAG,IAAI,CAACC,WAAW,2BACbC,2BAAS,CAACC,OAAO,CAACd,YAAY,CAAC,qBAClD;gBAEKI,YAAY,GAAGW,gBAAQ,CAACC,gCAAgC,CAC7DL,QAAQ,EACRT,OAAO,CAACe,KAAK,CACb;gBAAA,kCACM;kBAAEb,YAAY,EAAZA,YAAY;kBAAEF,OAAO,EAAPA;gBAAQ,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAChC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAlCmDgB,mCAAuB;AAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import AbstractPermissionsTest from './AbstractPermissionsTest';
|
|
2
|
+
export default class PermissionStoreTest extends AbstractPermissionsTest {
|
|
3
|
+
protected static skillCacheKey: string;
|
|
4
|
+
private static permissions;
|
|
5
|
+
private static contractName1;
|
|
6
|
+
private static contractName2;
|
|
7
|
+
protected static beforeAll(): Promise<void>;
|
|
8
|
+
protected static beforeEach(): Promise<void>;
|
|
9
|
+
protected static loadsNoLocalByDefault(): Promise<void>;
|
|
10
|
+
protected static loadsOneContract(): Promise<void>;
|
|
11
|
+
protected static loadsSecondContract(): Promise<void>;
|
|
12
|
+
protected static mixesInAllPermissions(): Promise<void>;
|
|
13
|
+
private static assertLocalPermissionsEqual;
|
|
14
|
+
private static loadLocalPermissions;
|
|
15
|
+
}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
|
|
18
|
+
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
19
|
+
var _testUtils = require("@sprucelabs/test-utils");
|
|
20
|
+
var _AbstractPermissionsTest = _interopRequireDefault(require("./AbstractPermissionsTest"));
|
|
21
|
+
var _dec, _dec2, _dec3, _dec4, _class, _class2;
|
|
22
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
23
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
24
|
+
var PermissionStoreTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test)(), _dec3 = (0, _testUtils.test)(), _dec4 = (0, _testUtils.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractPermissionsT) {
|
|
25
|
+
(0, _inherits2["default"])(PermissionStoreTest, _AbstractPermissionsT);
|
|
26
|
+
var _super = _createSuper(PermissionStoreTest);
|
|
27
|
+
function PermissionStoreTest() {
|
|
28
|
+
(0, _classCallCheck2["default"])(this, PermissionStoreTest);
|
|
29
|
+
return _super.apply(this, arguments);
|
|
30
|
+
}
|
|
31
|
+
(0, _createClass2["default"])(PermissionStoreTest, null, [{
|
|
32
|
+
key: "beforeAll",
|
|
33
|
+
value: function () {
|
|
34
|
+
var _beforeAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
35
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
36
|
+
while (1) {
|
|
37
|
+
switch (_context.prev = _context.next) {
|
|
38
|
+
case 0:
|
|
39
|
+
_context.next = 2;
|
|
40
|
+
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(PermissionStoreTest), "beforeAll", this).call(this);
|
|
41
|
+
case 2:
|
|
42
|
+
this.contractName1 = generateShortAlphaId();
|
|
43
|
+
this.contractName2 = generateShortAlphaId();
|
|
44
|
+
case 4:
|
|
45
|
+
case "end":
|
|
46
|
+
return _context.stop();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}, _callee, this);
|
|
50
|
+
}));
|
|
51
|
+
function beforeAll() {
|
|
52
|
+
return _beforeAll.apply(this, arguments);
|
|
53
|
+
}
|
|
54
|
+
return beforeAll;
|
|
55
|
+
}()
|
|
56
|
+
}, {
|
|
57
|
+
key: "beforeEach",
|
|
58
|
+
value: function () {
|
|
59
|
+
var _beforeEach = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
60
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
61
|
+
while (1) {
|
|
62
|
+
switch (_context2.prev = _context2.next) {
|
|
63
|
+
case 0:
|
|
64
|
+
_context2.next = 2;
|
|
65
|
+
return (0, _get2["default"])((0, _getPrototypeOf2["default"])(PermissionStoreTest), "beforeEach", this).call(this);
|
|
66
|
+
case 2:
|
|
67
|
+
this.permissions = this.Store('permission');
|
|
68
|
+
case 3:
|
|
69
|
+
case "end":
|
|
70
|
+
return _context2.stop();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}, _callee2, this);
|
|
74
|
+
}));
|
|
75
|
+
function beforeEach() {
|
|
76
|
+
return _beforeEach.apply(this, arguments);
|
|
77
|
+
}
|
|
78
|
+
return beforeEach;
|
|
79
|
+
}()
|
|
80
|
+
}, {
|
|
81
|
+
key: "loadsNoLocalByDefault",
|
|
82
|
+
value: function () {
|
|
83
|
+
var _loadsNoLocalByDefault = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
84
|
+
var permissions;
|
|
85
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
86
|
+
while (1) {
|
|
87
|
+
switch (_context3.prev = _context3.next) {
|
|
88
|
+
case 0:
|
|
89
|
+
_context3.next = 2;
|
|
90
|
+
return this.loadLocalPermissions();
|
|
91
|
+
case 2:
|
|
92
|
+
permissions = _context3.sent;
|
|
93
|
+
_testUtils.assert.isEqualDeep(permissions, {});
|
|
94
|
+
case 4:
|
|
95
|
+
case "end":
|
|
96
|
+
return _context3.stop();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}, _callee3, this);
|
|
100
|
+
}));
|
|
101
|
+
function loadsNoLocalByDefault() {
|
|
102
|
+
return _loadsNoLocalByDefault.apply(this, arguments);
|
|
103
|
+
}
|
|
104
|
+
return loadsNoLocalByDefault;
|
|
105
|
+
}()
|
|
106
|
+
}, {
|
|
107
|
+
key: "loadsOneContract",
|
|
108
|
+
value: function () {
|
|
109
|
+
var _loadsOneContract = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
110
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
111
|
+
while (1) {
|
|
112
|
+
switch (_context4.prev = _context4.next) {
|
|
113
|
+
case 0:
|
|
114
|
+
_context4.next = 2;
|
|
115
|
+
return this.createPermissionContract(this.contractName1);
|
|
116
|
+
case 2:
|
|
117
|
+
_context4.next = 4;
|
|
118
|
+
return this.assertLocalPermissionsEqual((0, _defineProperty2["default"])({}, this.contractName1, ['can-high-five']));
|
|
119
|
+
case 4:
|
|
120
|
+
case "end":
|
|
121
|
+
return _context4.stop();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}, _callee4, this);
|
|
125
|
+
}));
|
|
126
|
+
function loadsOneContract() {
|
|
127
|
+
return _loadsOneContract.apply(this, arguments);
|
|
128
|
+
}
|
|
129
|
+
return loadsOneContract;
|
|
130
|
+
}()
|
|
131
|
+
}, {
|
|
132
|
+
key: "loadsSecondContract",
|
|
133
|
+
value: function () {
|
|
134
|
+
var _loadsSecondContract = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
135
|
+
var _this$assertLocalPerm2;
|
|
136
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
137
|
+
while (1) {
|
|
138
|
+
switch (_context5.prev = _context5.next) {
|
|
139
|
+
case 0:
|
|
140
|
+
_context5.next = 2;
|
|
141
|
+
return this.createPermissionContract(this.contractName2);
|
|
142
|
+
case 2:
|
|
143
|
+
_context5.next = 4;
|
|
144
|
+
return this.assertLocalPermissionsEqual((_this$assertLocalPerm2 = {}, (0, _defineProperty2["default"])(_this$assertLocalPerm2, this.contractName1, ['can-high-five']), (0, _defineProperty2["default"])(_this$assertLocalPerm2, this.contractName2, ['can-high-five']), _this$assertLocalPerm2));
|
|
145
|
+
case 4:
|
|
146
|
+
case "end":
|
|
147
|
+
return _context5.stop();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}, _callee5, this);
|
|
151
|
+
}));
|
|
152
|
+
function loadsSecondContract() {
|
|
153
|
+
return _loadsSecondContract.apply(this, arguments);
|
|
154
|
+
}
|
|
155
|
+
return loadsSecondContract;
|
|
156
|
+
}()
|
|
157
|
+
}, {
|
|
158
|
+
key: "mixesInAllPermissions",
|
|
159
|
+
value: function () {
|
|
160
|
+
var _mixesInAllPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
161
|
+
var _this$assertLocalPerm3;
|
|
162
|
+
var file;
|
|
163
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
164
|
+
while (1) {
|
|
165
|
+
switch (_context6.prev = _context6.next) {
|
|
166
|
+
case 0:
|
|
167
|
+
file = this.resolvePath('src', 'permissions', "".concat(this.contractName1, ".permissions.ts"));
|
|
168
|
+
_spruceSkillUtils.diskUtil.writeFile(file, contract1);
|
|
169
|
+
_context6.next = 4;
|
|
170
|
+
return this.assertLocalPermissionsEqual((_this$assertLocalPerm3 = {}, (0, _defineProperty2["default"])(_this$assertLocalPerm3, 'oeu-aoeuao', ['what-the', 'go-dogs']), (0, _defineProperty2["default"])(_this$assertLocalPerm3, this.contractName2, ['can-high-five']), _this$assertLocalPerm3));
|
|
171
|
+
case 4:
|
|
172
|
+
case "end":
|
|
173
|
+
return _context6.stop();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}, _callee6, this);
|
|
177
|
+
}));
|
|
178
|
+
function mixesInAllPermissions() {
|
|
179
|
+
return _mixesInAllPermissions.apply(this, arguments);
|
|
180
|
+
}
|
|
181
|
+
return mixesInAllPermissions;
|
|
182
|
+
}()
|
|
183
|
+
}, {
|
|
184
|
+
key: "assertLocalPermissionsEqual",
|
|
185
|
+
value: function () {
|
|
186
|
+
var _assertLocalPermissionsEqual = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(expected) {
|
|
187
|
+
var perms;
|
|
188
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
189
|
+
while (1) {
|
|
190
|
+
switch (_context7.prev = _context7.next) {
|
|
191
|
+
case 0:
|
|
192
|
+
_context7.next = 2;
|
|
193
|
+
return this.loadLocalPermissions();
|
|
194
|
+
case 2:
|
|
195
|
+
perms = _context7.sent;
|
|
196
|
+
_testUtils.assert.isEqualDeep(perms, expected);
|
|
197
|
+
case 4:
|
|
198
|
+
case "end":
|
|
199
|
+
return _context7.stop();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}, _callee7, this);
|
|
203
|
+
}));
|
|
204
|
+
function assertLocalPermissionsEqual(_x) {
|
|
205
|
+
return _assertLocalPermissionsEqual.apply(this, arguments);
|
|
206
|
+
}
|
|
207
|
+
return assertLocalPermissionsEqual;
|
|
208
|
+
}()
|
|
209
|
+
}, {
|
|
210
|
+
key: "loadLocalPermissions",
|
|
211
|
+
value: function () {
|
|
212
|
+
var _loadLocalPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
213
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
214
|
+
while (1) {
|
|
215
|
+
switch (_context8.prev = _context8.next) {
|
|
216
|
+
case 0:
|
|
217
|
+
_context8.next = 2;
|
|
218
|
+
return this.permissions.loadLocalPermissions();
|
|
219
|
+
case 2:
|
|
220
|
+
return _context8.abrupt("return", _context8.sent);
|
|
221
|
+
case 3:
|
|
222
|
+
case "end":
|
|
223
|
+
return _context8.stop();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}, _callee8, this);
|
|
227
|
+
}));
|
|
228
|
+
function loadLocalPermissions() {
|
|
229
|
+
return _loadLocalPermissions.apply(this, arguments);
|
|
230
|
+
}
|
|
231
|
+
return loadLocalPermissions;
|
|
232
|
+
}()
|
|
233
|
+
}]);
|
|
234
|
+
return PermissionStoreTest;
|
|
235
|
+
}(_AbstractPermissionsTest["default"]), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'permissions'), (0, _defineProperty2["default"])(_class2, "permissions", void 0), (0, _defineProperty2["default"])(_class2, "contractName1", void 0), (0, _defineProperty2["default"])(_class2, "contractName2", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "loadsNoLocalByDefault", [_dec], Object.getOwnPropertyDescriptor(_class, "loadsNoLocalByDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsOneContract", [_dec2], Object.getOwnPropertyDescriptor(_class, "loadsOneContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "loadsSecondContract", [_dec3], Object.getOwnPropertyDescriptor(_class, "loadsSecondContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "mixesInAllPermissions", [_dec4], Object.getOwnPropertyDescriptor(_class, "mixesInAllPermissions"), _class)), _class));
|
|
236
|
+
exports["default"] = PermissionStoreTest;
|
|
237
|
+
function generateShortAlphaId() {
|
|
238
|
+
return (0, _testUtils.generateId)().replace(/[0-9]/g, '').substring(0, 5);
|
|
239
|
+
}
|
|
240
|
+
var contract1 = "import {\n buildPermissionContract\n} from '@sprucelabs/mercury-types'\n\nconst debeePermissions = buildPermissionContract({\n id: 'oeu-aoeuao',\n name: 'debee',\n description: '',\n requireAllPermissions: false,\n permissions: [\n {\n id: 'what-the',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n },\n {\n id: 'go-dogs',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n }\n ]\n})\n\nexport default debeePermissions\n";
|
|
241
|
+
//# sourceMappingURL=PermissionStore.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionStore.test.js","names":["PermissionStoreTest","test","contractName1","generateShortAlphaId","contractName2","permissions","Store","loadLocalPermissions","assert","isEqualDeep","createPermissionContract","assertLocalPermissionsEqual","file","resolvePath","diskUtil","writeFile","contract1","expected","perms","AbstractPermissionsTest","generateId","replace","substring"],"sources":["../../../../src/__tests__/behavioral/permissions/PermissionStore.test.ts"],"sourcesContent":["import { PermissionContractMap } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert, generateId } from '@sprucelabs/test-utils'\nimport PermissionStore from '../../../features/permission/stores/PermissionStore'\nimport AbstractPermissionsTest from './AbstractPermissionsTest'\n\nexport default class PermissionStoreTest extends AbstractPermissionsTest {\n\tprotected static skillCacheKey = 'permissions'\n\tprivate static permissions: PermissionStore\n\tprivate static contractName1: string\n\tprivate static contractName2: string\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.contractName1 = generateShortAlphaId()\n\t\tthis.contractName2 = generateShortAlphaId()\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.permissions = this.Store('permission')\n\t}\n\n\t@test()\n\tprotected static async loadsNoLocalByDefault() {\n\t\tconst permissions = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(permissions, {})\n\t}\n\n\t@test()\n\tprotected static async loadsOneContract() {\n\t\tawait this.createPermissionContract(this.contractName1)\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[this.contractName1]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async loadsSecondContract() {\n\t\tawait this.createPermissionContract(this.contractName2)\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t[this.contractName1]: ['can-high-five'],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async mixesInAllPermissions() {\n\t\tconst file = this.resolvePath(\n\t\t\t'src',\n\t\t\t'permissions',\n\t\t\t`${this.contractName1}.permissions.ts`\n\t\t)\n\t\tdiskUtil.writeFile(file, contract1)\n\n\t\tawait this.assertLocalPermissionsEqual({\n\t\t\t['oeu-aoeuao']: ['what-the', 'go-dogs'],\n\t\t\t[this.contractName2]: ['can-high-five'],\n\t\t})\n\t}\n\n\tprivate static async assertLocalPermissionsEqual(\n\t\texpected: PermissionContractMap\n\t) {\n\t\tconst perms = await this.loadLocalPermissions()\n\t\tassert.isEqualDeep(perms, expected)\n\t}\n\n\tprivate static async loadLocalPermissions() {\n\t\treturn await this.permissions.loadLocalPermissions()\n\t}\n}\nfunction generateShortAlphaId() {\n\treturn generateId().replace(/[0-9]/g, '').substring(0, 5)\n}\n\nconst contract1 = `import {\n buildPermissionContract\n} from '@sprucelabs/mercury-types'\n\nconst debeePermissions = buildPermissionContract({\n id: 'oeu-aoeuao',\n name: 'debee',\n description: '',\n requireAllPermissions: false,\n permissions: [\n {\n id: 'what-the',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n },\n {\n id: 'go-dogs',\n name: 'Can give high five',\n description: 'Will this person be allowed to high five?',\n defaults: {\n skill: false,\n },\n requireAllStatuses: false,\n }\n ]\n})\n\nexport default debeePermissions\n`\n"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AbstractSkillTest from '../../../tests/AbstractSkillTest';
|
|
2
|
+
export default class SyncingPermissionsTest extends AbstractSkillTest {
|
|
3
|
+
protected static skillCacheKey: string;
|
|
4
|
+
private static sync;
|
|
5
|
+
protected static beforeEach(): Promise<void>;
|
|
6
|
+
protected static generatesExpectedTypesFile(): Promise<void>;
|
|
7
|
+
}
|