cojson 0.18.28 → 0.18.30
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +16 -0
- package/dist/PeerState.d.ts +23 -14
- package/dist/PeerState.d.ts.map +1 -1
- package/dist/PeerState.js +74 -23
- package/dist/PeerState.js.map +1 -1
- package/dist/SyncStateManager.d.ts +3 -3
- package/dist/SyncStateManager.d.ts.map +1 -1
- package/dist/SyncStateManager.js +18 -44
- package/dist/SyncStateManager.js.map +1 -1
- package/dist/coValueContentMessage.d.ts.map +1 -1
- package/dist/coValueContentMessage.js +2 -1
- package/dist/coValueContentMessage.js.map +1 -1
- package/dist/coValueCore/PeerKnownState.d.ts +21 -0
- package/dist/coValueCore/PeerKnownState.d.ts.map +1 -0
- package/dist/coValueCore/PeerKnownState.js +52 -0
- package/dist/coValueCore/PeerKnownState.js.map +1 -0
- package/dist/coValueCore/coValueCore.d.ts +39 -8
- package/dist/coValueCore/coValueCore.d.ts.map +1 -1
- package/dist/coValueCore/coValueCore.js +139 -40
- package/dist/coValueCore/coValueCore.js.map +1 -1
- package/dist/coValueCore/decryptTransactionChangesAndMeta.d.ts.map +1 -1
- package/dist/coValueCore/decryptTransactionChangesAndMeta.js +0 -5
- package/dist/coValueCore/decryptTransactionChangesAndMeta.js.map +1 -1
- package/dist/coValueCore/verifiedState.d.ts +0 -14
- package/dist/coValueCore/verifiedState.d.ts.map +1 -1
- package/dist/coValueCore/verifiedState.js +2 -32
- package/dist/coValueCore/verifiedState.js.map +1 -1
- package/dist/coValues/coList.d.ts +3 -4
- package/dist/coValues/coList.d.ts.map +1 -1
- package/dist/coValues/coList.js +4 -4
- package/dist/coValues/coList.js.map +1 -1
- package/dist/coValues/coMap.d.ts +3 -4
- package/dist/coValues/coMap.d.ts.map +1 -1
- package/dist/coValues/coMap.js +5 -4
- package/dist/coValues/coMap.js.map +1 -1
- package/dist/coValues/coStream.d.ts +3 -3
- package/dist/coValues/coStream.d.ts.map +1 -1
- package/dist/coValues/coStream.js +3 -4
- package/dist/coValues/coStream.js.map +1 -1
- package/dist/coValues/group.d.ts +3 -3
- package/dist/coValues/group.d.ts.map +1 -1
- package/dist/coValues/group.js +74 -52
- package/dist/coValues/group.js.map +1 -1
- package/dist/exports.d.ts +2 -2
- package/dist/exports.d.ts.map +1 -1
- package/dist/exports.js +2 -2
- package/dist/exports.js.map +1 -1
- package/dist/localNode.d.ts.map +1 -1
- package/dist/localNode.js +7 -5
- package/dist/localNode.js.map +1 -1
- package/dist/permissions.d.ts +5 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +173 -109
- package/dist/permissions.js.map +1 -1
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +33 -44
- package/dist/sync.js.map +1 -1
- package/dist/tests/PeerKnownState.test.d.ts +2 -0
- package/dist/tests/PeerKnownState.test.d.ts.map +1 -0
- package/dist/tests/PeerKnownState.test.js +342 -0
- package/dist/tests/PeerKnownState.test.js.map +1 -0
- package/dist/tests/PeerState.test.js +17 -16
- package/dist/tests/PeerState.test.js.map +1 -1
- package/dist/tests/StorageApiAsync.test.js +12 -12
- package/dist/tests/StorageApiAsync.test.js.map +1 -1
- package/dist/tests/StorageApiSync.test.js +11 -11
- package/dist/tests/StorageApiSync.test.js.map +1 -1
- package/dist/tests/SyncStateManager.test.js +16 -21
- package/dist/tests/SyncStateManager.test.js.map +1 -1
- package/dist/tests/coValueCore.dependencies.test.js +59 -0
- package/dist/tests/coValueCore.dependencies.test.js.map +1 -1
- package/dist/tests/coValueCore.test.js +41 -21
- package/dist/tests/coValueCore.test.js.map +1 -1
- package/dist/tests/group.addMember.test.js +266 -219
- package/dist/tests/group.addMember.test.js.map +1 -1
- package/dist/tests/group.inheritance.test.js +12 -0
- package/dist/tests/group.inheritance.test.js.map +1 -1
- package/dist/tests/group.invite.test.js +77 -0
- package/dist/tests/group.invite.test.js.map +1 -1
- package/dist/tests/group.removeMember.test.js +64 -7
- package/dist/tests/group.removeMember.test.js.map +1 -1
- package/dist/tests/group.roleOf.test.js +14 -4
- package/dist/tests/group.roleOf.test.js.map +1 -1
- package/dist/tests/permissions.test.js +51 -202
- package/dist/tests/permissions.test.js.map +1 -1
- package/dist/tests/sync.content.test.js +2 -2
- package/dist/tests/sync.content.test.js.map +1 -1
- package/dist/tests/sync.invite.test.js +6 -6
- package/dist/tests/sync.load.test.js +22 -22
- package/dist/tests/sync.mesh.test.js +9 -9
- package/dist/tests/sync.storage.test.js +13 -7
- package/dist/tests/sync.storage.test.js.map +1 -1
- package/dist/tests/sync.storageAsync.test.js +3 -3
- package/dist/tests/sync.test.js +13 -33
- package/dist/tests/sync.test.js.map +1 -1
- package/dist/tests/sync.upload.test.js +2 -2
- package/package.json +3 -3
- package/src/PeerState.ts +86 -34
- package/src/SyncStateManager.ts +25 -60
- package/src/coValueContentMessage.ts +3 -1
- package/src/coValueCore/PeerKnownState.ts +74 -0
- package/src/coValueCore/coValueCore.ts +180 -49
- package/src/coValueCore/decryptTransactionChangesAndMeta.ts +0 -6
- package/src/coValueCore/verifiedState.ts +2 -37
- package/src/coValues/coList.ts +7 -7
- package/src/coValues/coMap.ts +9 -7
- package/src/coValues/coStream.ts +6 -5
- package/src/coValues/group.ts +99 -60
- package/src/exports.ts +2 -1
- package/src/localNode.ts +7 -5
- package/src/permissions.ts +204 -123
- package/src/sync.ts +37 -53
- package/src/tests/PeerKnownState.test.ts +426 -0
- package/src/tests/PeerState.test.ts +24 -24
- package/src/tests/StorageApiAsync.test.ts +12 -12
- package/src/tests/StorageApiSync.test.ts +11 -11
- package/src/tests/SyncStateManager.test.ts +23 -53
- package/src/tests/coValueCore.dependencies.test.ts +87 -0
- package/src/tests/coValueCore.test.ts +64 -22
- package/src/tests/group.addMember.test.ts +384 -345
- package/src/tests/group.inheritance.test.ts +33 -0
- package/src/tests/group.invite.test.ts +117 -0
- package/src/tests/group.removeMember.test.ts +95 -9
- package/src/tests/group.roleOf.test.ts +16 -4
- package/src/tests/permissions.test.ts +56 -295
- package/src/tests/sync.content.test.ts +2 -2
- package/src/tests/sync.invite.test.ts +6 -6
- package/src/tests/sync.load.test.ts +22 -22
- package/src/tests/sync.mesh.test.ts +9 -9
- package/src/tests/sync.storage.test.ts +13 -8
- package/src/tests/sync.storageAsync.test.ts +3 -3
- package/src/tests/sync.test.ts +21 -50
- package/src/tests/sync.upload.test.ts +2 -2
- package/dist/PeerKnownStates.d.ts +0 -19
- package/dist/PeerKnownStates.d.ts.map +0 -1
- package/dist/PeerKnownStates.js +0 -64
- package/dist/PeerKnownStates.js.map +0 -1
- package/dist/tests/PeerKnownStates.test.d.ts +0 -2
- package/dist/tests/PeerKnownStates.test.d.ts.map +0 -1
- package/dist/tests/PeerKnownStates.test.js +0 -77
- package/dist/tests/PeerKnownStates.test.js.map +0 -1
- package/src/PeerKnownStates.ts +0 -93
- package/src/tests/PeerKnownStates.test.ts +0 -99
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.roleOf.test.js","sourceRoot":"","sources":["../../src/tests/group.roleOf.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"group.roleOf.test.js","sourceRoot":"","sources":["../../src/tests/group.roleOf.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,+BAA+B,EAC/B,uBAAuB,EACvB,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC3C,MAAM,IAAI,GAAG,+BAA+B,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,GAAG,uBAAuB,EAAE,CAAC;QAE3C,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG,+BAA+B,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,GAAG,uBAAuB,EAAE,CAAC;QAE3C,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,+BAA+B,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,GAAG,uBAAuB,EAAE,CAAC;QAE3C,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG,+BAA+B,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,uBAAuB,EAAE,CAAC;QAEvD,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,MAAM,IAAI,GAAG,+BAA+B,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,uBAAuB,EAAE,CAAC;QAEvD,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9C,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC/E,MAAM,IAAI,GAAG,+BAA+B,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,uBAAuB,EAAE,CAAC;QAEvD,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9C,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC9E,MAAM,IAAI,GAAG,+BAA+B,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,uBAAuB,EAAE,CAAC;QAEvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,WAAW,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEpD,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1B,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAElC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtE,yCAAyC;QACzC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEpC,uDAAuD;QACvD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAExD,yBAAyB;QACzB,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEtC,wCAAwC;QACxC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3E,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtE,qBAAqB;QACrB,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE/B,8CAA8C;QAC9C,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5C,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEzC,0EAA0E;QAC1E,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEvC,yBAAyB;QACzB,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEtC,6DAA6D;QAC7D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3E,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE5C,qBAAqB;QACrB,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE/B,8BAA8B;QAC9B,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE5C,6CAA6C;QAC7C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3E,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE5C,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAC/C,KAAK,CAAC,IAAI,EACV,UAAU,CAAC,EAAE,CACd,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtE,2BAA2B;QAC3B,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACrC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE/B,8BAA8B;QAC9B,gBAAgB,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEjD,kDAAkD;QAClD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE7D,8BAA8B;QAC9B,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE1C,2EAA2E;QAC3E,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE7D,6BAA6B;QAC7B,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpC,mCAAmC;QACnC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5D,+BAA+B;QAC/B,MAAM,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE3C,6CAA6C;QAC7C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE7D,gCAAgC;QAChC,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpC,kDAAkD;QAClD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC5D,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CACpD,QAAQ,EACR,QAAQ,CACT,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEvC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAE9B,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEnD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE/D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAEhD,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CACpD,QAAQ,EACR,QAAQ,CACT,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEvC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEtC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAE9B,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;YAEtC,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEnD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAEhD,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CACpD,QAAQ,EACR,QAAQ,CACT,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEvC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEtC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAE9B,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;YAEtC,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEnD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAEhD,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CACpD,QAAQ,EACR,QAAQ,CACT,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEvC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAE9B,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YAE3C,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEnD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAEhD,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEtC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAE/B,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;YAEtD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAEhE,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAClE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CACpD,QAAQ,EACR,QAAQ,CACT,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEvC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAE9B,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YAE3C,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEnD,IAAI,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE7D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAEhD,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEtC,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;YAEpD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAEpE,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAClE,oEAAoE;gBACpE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,yBAAyB,CAC7D,QAAQ,EACR,QAAQ,EACR,QAAQ,CACT,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEvC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAE9B,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YAE3C,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEnD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAEhD,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAEtE,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEpC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAE/B,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,yBAAyB,CAC7D,QAAQ,EACR,QAAQ,EACR,QAAQ,CACT,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAEvC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEzC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAE9B,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YAE3C,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEnD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEpC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAEhD,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAE/B,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -39,7 +39,7 @@ test("Admins can't demote other admins in a group", async () => {
|
|
|
39
39
|
test("Admins can't demote other admins in a group (high level)", async () => {
|
|
40
40
|
const { group, admin, otherAdmin } = groupWithTwoAdminsHighLevel();
|
|
41
41
|
const groupAsOtherAdmin = expectGroup(await group.core.contentInClonedNodeWithDifferentAccount(otherAdmin));
|
|
42
|
-
expect(() => groupAsOtherAdmin.addMemberInternal(admin.id, "writer")).toThrow(
|
|
42
|
+
expect(() => groupAsOtherAdmin.addMemberInternal(admin.id, "writer")).toThrow(`Failed to set role writer to ${admin.id} (role of current account is admin)`);
|
|
43
43
|
expect(groupAsOtherAdmin.get(admin.id)).toEqual("admin");
|
|
44
44
|
});
|
|
45
45
|
test("Admins an add writers to a group, who can't add admins, writers, or readers", async () => {
|
|
@@ -67,9 +67,9 @@ test("Admins an add writers to a group, who can't add admins, writers, or reader
|
|
|
67
67
|
const groupAsWriter = expectGroup(await group.core.contentInClonedNodeWithDifferentAccount(writer));
|
|
68
68
|
expect(groupAsWriter.get(writer.id)).toEqual("writer");
|
|
69
69
|
const otherAgent = createAccountInNode(groupAsWriter.core.node);
|
|
70
|
-
expect(() => groupAsWriter.addMember(otherAgent, "admin")).toThrow(
|
|
71
|
-
expect(() => groupAsWriter.addMember(otherAgent, "writer")).toThrow(
|
|
72
|
-
expect(() => groupAsWriter.addMember(otherAgent, "reader")).toThrow(
|
|
70
|
+
expect(() => groupAsWriter.addMember(otherAgent, "admin")).toThrow(`Failed to set role admin to ${otherAgent.id} (role of current account is writer)`);
|
|
71
|
+
expect(() => groupAsWriter.addMember(otherAgent, "writer")).toThrow(`Failed to set role writer to ${otherAgent.id} (role of current account is writer)`);
|
|
72
|
+
expect(() => groupAsWriter.addMember(otherAgent, "reader")).toThrow(`Failed to set role reader to ${otherAgent.id} (role of current account is writer)`);
|
|
73
73
|
expect(groupAsWriter.get(otherAgent.id)).toBeUndefined();
|
|
74
74
|
});
|
|
75
75
|
test("Admins can add readers to a group, who can't add admins, writers, or readers", async () => {
|
|
@@ -96,9 +96,9 @@ test("Admins can add readers to a group, who can't add admins, writers, or reade
|
|
|
96
96
|
const groupAsReader = expectGroup(await group.core.contentInClonedNodeWithDifferentAccount(reader));
|
|
97
97
|
expect(groupAsReader.get(reader.id)).toEqual("reader");
|
|
98
98
|
const otherAgent = createAccountInNode(groupAsReader.core.node);
|
|
99
|
-
expect(() => groupAsReader.addMember(otherAgent, "admin")).toThrow(
|
|
100
|
-
expect(() => groupAsReader.addMember(otherAgent, "writer")).toThrow(
|
|
101
|
-
expect(() => groupAsReader.addMember(otherAgent, "reader")).toThrow(
|
|
99
|
+
expect(() => groupAsReader.addMember(otherAgent, "admin")).toThrow(`Failed to set role admin to ${otherAgent.id} (role of current account is reader)`);
|
|
100
|
+
expect(() => groupAsReader.addMember(otherAgent, "writer")).toThrow(`Failed to set role writer to ${otherAgent.id} (role of current account is reader)`);
|
|
101
|
+
expect(() => groupAsReader.addMember(otherAgent, "reader")).toThrow(`Failed to set role reader to ${otherAgent.id} (role of current account is reader)`);
|
|
102
102
|
expect(groupAsReader.get(otherAgent.id)).toBeUndefined();
|
|
103
103
|
});
|
|
104
104
|
test("Admins can write to an object that is owned by their group", () => {
|
|
@@ -832,7 +832,29 @@ test("Admins can create a readerInvite, which can add a reader (high-level)", as
|
|
|
832
832
|
expect(groupAsInvitedReader.get(invitedReaderID)).toEqual("reader");
|
|
833
833
|
expect(groupAsInvitedReader.core.getCurrentReadKey().secret).toBeDefined();
|
|
834
834
|
});
|
|
835
|
-
test(
|
|
835
|
+
test.each([
|
|
836
|
+
// [inviteRole, finalRole]
|
|
837
|
+
["adminInvite", "manager"],
|
|
838
|
+
["adminInvite", "writer"],
|
|
839
|
+
["adminInvite", "reader"],
|
|
840
|
+
["adminInvite", "writeOnly"],
|
|
841
|
+
["managerInvite", "admin"],
|
|
842
|
+
["managerInvite", "writer"],
|
|
843
|
+
["managerInvite", "reader"],
|
|
844
|
+
["managerInvite", "writeOnly"],
|
|
845
|
+
["writerInvite", "admin"],
|
|
846
|
+
["writerInvite", "reader"],
|
|
847
|
+
["writerInvite", "manager"],
|
|
848
|
+
["writerInvite", "writeOnly"],
|
|
849
|
+
["readerInvite", "admin"],
|
|
850
|
+
["readerInvite", "writer"],
|
|
851
|
+
["readerInvite", "manager"],
|
|
852
|
+
["readerInvite", "writeOnly"],
|
|
853
|
+
["writeOnlyInvite", "admin"],
|
|
854
|
+
["writeOnlyInvite", "manager"],
|
|
855
|
+
["writeOnlyInvite", "writer"],
|
|
856
|
+
["writeOnlyInvite", "reader"],
|
|
857
|
+
])("%s can not invite %s", async (inviteRole, finalRole) => {
|
|
836
858
|
const { groupCore, admin } = newGroup();
|
|
837
859
|
const inviteSecret = Crypto.newRandomAgentSecret();
|
|
838
860
|
const inviteID = Crypto.getAgentID(inviteSecret);
|
|
@@ -849,8 +871,8 @@ test("WriterInvites can not invite admins", async () => {
|
|
|
849
871
|
});
|
|
850
872
|
group.set(`${readKeyID}_for_${admin.id}`, revelation, "trusting");
|
|
851
873
|
group.set("readKey", readKeyID, "trusting");
|
|
852
|
-
group.set(inviteID,
|
|
853
|
-
expect(group.get(inviteID)).toEqual(
|
|
874
|
+
group.set(inviteID, inviteRole, "trusting");
|
|
875
|
+
expect(group.get(inviteID)).toEqual(inviteRole);
|
|
854
876
|
const revelationForInvite = Crypto.seal({
|
|
855
877
|
message: readKey,
|
|
856
878
|
from: admin.currentSealerSecret(),
|
|
@@ -864,10 +886,17 @@ test("WriterInvites can not invite admins", async () => {
|
|
|
864
886
|
const groupAsInvite = expectGroup(await groupCore.contentInClonedNodeWithDifferentAccount(new ControlledAgent(inviteSecret, Crypto)));
|
|
865
887
|
const invitedAdminSecret = Crypto.newRandomAgentSecret();
|
|
866
888
|
const invitedAdminID = Crypto.getAgentID(invitedAdminSecret);
|
|
867
|
-
groupAsInvite.set(invitedAdminID,
|
|
889
|
+
groupAsInvite.set(invitedAdminID, finalRole, "trusting");
|
|
868
890
|
expect(groupAsInvite.get(invitedAdminID)).toBeUndefined();
|
|
869
891
|
});
|
|
870
|
-
test(
|
|
892
|
+
test.each([
|
|
893
|
+
// [inviteRole, finalRole]
|
|
894
|
+
["adminInvite", "admin"],
|
|
895
|
+
["managerInvite", "manager"],
|
|
896
|
+
["writerInvite", "writer"],
|
|
897
|
+
["readerInvite", "reader"],
|
|
898
|
+
["writeOnlyInvite", "writeOnly"],
|
|
899
|
+
])("%s can invite %s", async (inviteRole, finalRole) => {
|
|
871
900
|
const { groupCore, admin } = newGroup();
|
|
872
901
|
const inviteSecret = Crypto.newRandomAgentSecret();
|
|
873
902
|
const inviteID = Crypto.getAgentID(inviteSecret);
|
|
@@ -884,8 +913,8 @@ test("ReaderInvites can not invite admins", async () => {
|
|
|
884
913
|
});
|
|
885
914
|
group.set(`${readKeyID}_for_${admin.id}`, revelation, "trusting");
|
|
886
915
|
group.set("readKey", readKeyID, "trusting");
|
|
887
|
-
group.set(inviteID,
|
|
888
|
-
expect(group.get(inviteID)).toEqual(
|
|
916
|
+
group.set(inviteID, inviteRole, "trusting");
|
|
917
|
+
expect(group.get(inviteID)).toEqual(inviteRole);
|
|
889
918
|
const revelationForInvite = Crypto.seal({
|
|
890
919
|
message: readKey,
|
|
891
920
|
from: admin.currentSealerSecret(),
|
|
@@ -899,148 +928,8 @@ test("ReaderInvites can not invite admins", async () => {
|
|
|
899
928
|
const groupAsInvite = expectGroup(await groupCore.contentInClonedNodeWithDifferentAccount(new ControlledAgent(inviteSecret, Crypto)));
|
|
900
929
|
const invitedAdminSecret = Crypto.newRandomAgentSecret();
|
|
901
930
|
const invitedAdminID = Crypto.getAgentID(invitedAdminSecret);
|
|
902
|
-
groupAsInvite.set(invitedAdminID,
|
|
903
|
-
expect(groupAsInvite.get(invitedAdminID)).
|
|
904
|
-
});
|
|
905
|
-
test("ReaderInvites can not invite writers", async () => {
|
|
906
|
-
const { groupCore, admin } = newGroup();
|
|
907
|
-
const inviteSecret = Crypto.newRandomAgentSecret();
|
|
908
|
-
const inviteID = Crypto.getAgentID(inviteSecret);
|
|
909
|
-
const group = expectGroup(groupCore.getCurrentContent());
|
|
910
|
-
const { secret: readKey, id: readKeyID } = Crypto.newRandomKeySecret();
|
|
911
|
-
const revelation = Crypto.seal({
|
|
912
|
-
message: readKey,
|
|
913
|
-
from: admin.currentSealerSecret(),
|
|
914
|
-
to: admin.currentSealerID(),
|
|
915
|
-
nOnceMaterial: {
|
|
916
|
-
in: groupCore.id,
|
|
917
|
-
tx: groupCore.nextTransactionID(),
|
|
918
|
-
},
|
|
919
|
-
});
|
|
920
|
-
group.set(`${readKeyID}_for_${admin.id}`, revelation, "trusting");
|
|
921
|
-
group.set("readKey", readKeyID, "trusting");
|
|
922
|
-
group.set(inviteID, "readerInvite", "trusting");
|
|
923
|
-
expect(group.get(inviteID)).toEqual("readerInvite");
|
|
924
|
-
const revelationForInvite = Crypto.seal({
|
|
925
|
-
message: readKey,
|
|
926
|
-
from: admin.currentSealerSecret(),
|
|
927
|
-
to: Crypto.getAgentSealerID(inviteID),
|
|
928
|
-
nOnceMaterial: {
|
|
929
|
-
in: groupCore.id,
|
|
930
|
-
tx: groupCore.nextTransactionID(),
|
|
931
|
-
},
|
|
932
|
-
});
|
|
933
|
-
group.set(`${readKeyID}_for_${inviteID}`, revelationForInvite, "trusting");
|
|
934
|
-
const groupAsInvite = expectGroup(await groupCore.contentInClonedNodeWithDifferentAccount(new ControlledAgent(inviteSecret, Crypto)));
|
|
935
|
-
const invitedWriterSecret = Crypto.newRandomAgentSecret();
|
|
936
|
-
const invitedWriterID = Crypto.getAgentID(invitedWriterSecret);
|
|
937
|
-
groupAsInvite.set(invitedWriterID, "writer", "trusting");
|
|
938
|
-
expect(groupAsInvite.get(invitedWriterID)).toBeUndefined();
|
|
939
|
-
});
|
|
940
|
-
test("WriteOnlyInvites can not invite writers", async () => {
|
|
941
|
-
const { groupCore, admin } = newGroup();
|
|
942
|
-
const inviteSecret = Crypto.newRandomAgentSecret();
|
|
943
|
-
const inviteID = Crypto.getAgentID(inviteSecret);
|
|
944
|
-
const group = expectGroup(groupCore.getCurrentContent());
|
|
945
|
-
const { secret: readKey, id: readKeyID } = Crypto.newRandomKeySecret();
|
|
946
|
-
const revelation = Crypto.seal({
|
|
947
|
-
message: readKey,
|
|
948
|
-
from: admin.currentSealerSecret(),
|
|
949
|
-
to: admin.currentSealerID(),
|
|
950
|
-
nOnceMaterial: {
|
|
951
|
-
in: groupCore.id,
|
|
952
|
-
tx: groupCore.nextTransactionID(),
|
|
953
|
-
},
|
|
954
|
-
});
|
|
955
|
-
group.set(`${readKeyID}_for_${admin.id}`, revelation, "trusting");
|
|
956
|
-
group.set("readKey", readKeyID, "trusting");
|
|
957
|
-
group.set(inviteID, "writeOnlyInvite", "trusting");
|
|
958
|
-
expect(group.get(inviteID)).toEqual("writeOnlyInvite");
|
|
959
|
-
const revelationForInvite = Crypto.seal({
|
|
960
|
-
message: readKey,
|
|
961
|
-
from: admin.currentSealerSecret(),
|
|
962
|
-
to: Crypto.getAgentSealerID(inviteID),
|
|
963
|
-
nOnceMaterial: {
|
|
964
|
-
in: groupCore.id,
|
|
965
|
-
tx: groupCore.nextTransactionID(),
|
|
966
|
-
},
|
|
967
|
-
});
|
|
968
|
-
group.set(`${readKeyID}_for_${inviteID}`, revelationForInvite, "trusting");
|
|
969
|
-
const groupAsInvite = expectGroup(await groupCore.contentInClonedNodeWithDifferentAccount(new ControlledAgent(inviteSecret, Crypto)));
|
|
970
|
-
const invitedWriterSecret = Crypto.newRandomAgentSecret();
|
|
971
|
-
const invitedWriterID = Crypto.getAgentID(invitedWriterSecret);
|
|
972
|
-
groupAsInvite.set(invitedWriterID, "writer", "trusting");
|
|
973
|
-
expect(groupAsInvite.get(invitedWriterID)).toBeUndefined();
|
|
974
|
-
});
|
|
975
|
-
test("WriteOnlyInvites can not invite admins", async () => {
|
|
976
|
-
const { groupCore, admin } = newGroup();
|
|
977
|
-
const inviteSecret = Crypto.newRandomAgentSecret();
|
|
978
|
-
const inviteID = Crypto.getAgentID(inviteSecret);
|
|
979
|
-
const group = expectGroup(groupCore.getCurrentContent());
|
|
980
|
-
const { secret: readKey, id: readKeyID } = Crypto.newRandomKeySecret();
|
|
981
|
-
const revelation = Crypto.seal({
|
|
982
|
-
message: readKey,
|
|
983
|
-
from: admin.currentSealerSecret(),
|
|
984
|
-
to: admin.currentSealerID(),
|
|
985
|
-
nOnceMaterial: {
|
|
986
|
-
in: groupCore.id,
|
|
987
|
-
tx: groupCore.nextTransactionID(),
|
|
988
|
-
},
|
|
989
|
-
});
|
|
990
|
-
group.set(`${readKeyID}_for_${admin.id}`, revelation, "trusting");
|
|
991
|
-
group.set("readKey", readKeyID, "trusting");
|
|
992
|
-
group.set(inviteID, "writeOnlyInvite", "trusting");
|
|
993
|
-
expect(group.get(inviteID)).toEqual("writeOnlyInvite");
|
|
994
|
-
const revelationForInvite = Crypto.seal({
|
|
995
|
-
message: readKey,
|
|
996
|
-
from: admin.currentSealerSecret(),
|
|
997
|
-
to: Crypto.getAgentSealerID(inviteID),
|
|
998
|
-
nOnceMaterial: {
|
|
999
|
-
in: groupCore.id,
|
|
1000
|
-
tx: groupCore.nextTransactionID(),
|
|
1001
|
-
},
|
|
1002
|
-
});
|
|
1003
|
-
group.set(`${readKeyID}_for_${inviteID}`, revelationForInvite, "trusting");
|
|
1004
|
-
const groupAsInvite = expectGroup(await groupCore.contentInClonedNodeWithDifferentAccount(new ControlledAgent(inviteSecret, Crypto)));
|
|
1005
|
-
const invitedWriterSecret = Crypto.newRandomAgentSecret();
|
|
1006
|
-
const invitedWriterID = Crypto.getAgentID(invitedWriterSecret);
|
|
1007
|
-
groupAsInvite.set(invitedWriterID, "admin", "trusting");
|
|
1008
|
-
expect(groupAsInvite.get(invitedWriterID)).toBeUndefined();
|
|
1009
|
-
});
|
|
1010
|
-
test("WriteOnlyInvites can invite writeOnly", async () => {
|
|
1011
|
-
const { groupCore, admin } = newGroup();
|
|
1012
|
-
const inviteSecret = Crypto.newRandomAgentSecret();
|
|
1013
|
-
const inviteID = Crypto.getAgentID(inviteSecret);
|
|
1014
|
-
const group = expectGroup(groupCore.getCurrentContent());
|
|
1015
|
-
const { secret: readKey, id: readKeyID } = Crypto.newRandomKeySecret();
|
|
1016
|
-
const revelation = Crypto.seal({
|
|
1017
|
-
message: readKey,
|
|
1018
|
-
from: admin.currentSealerSecret(),
|
|
1019
|
-
to: admin.currentSealerID(),
|
|
1020
|
-
nOnceMaterial: {
|
|
1021
|
-
in: groupCore.id,
|
|
1022
|
-
tx: groupCore.nextTransactionID(),
|
|
1023
|
-
},
|
|
1024
|
-
});
|
|
1025
|
-
group.set(`${readKeyID}_for_${admin.id}`, revelation, "trusting");
|
|
1026
|
-
group.set("readKey", readKeyID, "trusting");
|
|
1027
|
-
group.set(inviteID, "writeOnlyInvite", "trusting");
|
|
1028
|
-
expect(group.get(inviteID)).toEqual("writeOnlyInvite");
|
|
1029
|
-
const revelationForInvite = Crypto.seal({
|
|
1030
|
-
message: readKey,
|
|
1031
|
-
from: admin.currentSealerSecret(),
|
|
1032
|
-
to: Crypto.getAgentSealerID(inviteID),
|
|
1033
|
-
nOnceMaterial: {
|
|
1034
|
-
in: groupCore.id,
|
|
1035
|
-
tx: groupCore.nextTransactionID(),
|
|
1036
|
-
},
|
|
1037
|
-
});
|
|
1038
|
-
group.set(`${readKeyID}_for_${inviteID}`, revelationForInvite, "trusting");
|
|
1039
|
-
const groupAsInvite = expectGroup(await groupCore.contentInClonedNodeWithDifferentAccount(new ControlledAgent(inviteSecret, Crypto)));
|
|
1040
|
-
const invitedWriterSecret = Crypto.newRandomAgentSecret();
|
|
1041
|
-
const invitedWriterID = Crypto.getAgentID(invitedWriterSecret);
|
|
1042
|
-
groupAsInvite.set(invitedWriterID, "writeOnly", "trusting");
|
|
1043
|
-
expect(groupAsInvite.get(invitedWriterID)).toEqual("writeOnly");
|
|
931
|
+
groupAsInvite.set(invitedAdminID, finalRole, "trusting");
|
|
932
|
+
expect(groupAsInvite.get(invitedAdminID)).toEqual(finalRole);
|
|
1044
933
|
});
|
|
1045
934
|
test("WriteOnlyInvites can set writeKeys", async () => {
|
|
1046
935
|
const { groupCore, admin } = newGroup();
|
|
@@ -1217,41 +1106,11 @@ test("Writers, readers and invitees can not set parent extensions", async () =>
|
|
|
1217
1106
|
groupAsReaderInvite.set(`parent_${parentGroup.id}`, "extend", "trusting");
|
|
1218
1107
|
expect(groupAsReaderInvite.get(`parent_${parentGroup.id}`)).toBeUndefined();
|
|
1219
1108
|
});
|
|
1220
|
-
test("
|
|
1109
|
+
test("Child extensions are ignored", () => {
|
|
1221
1110
|
const { group, node } = newGroupHighLevel();
|
|
1222
1111
|
const childGroup = node.createGroup();
|
|
1223
1112
|
group.set(`child_${childGroup.id}`, "extend", "trusting");
|
|
1224
|
-
expect(group.get(`child_${childGroup.id}`)).toEqual(
|
|
1225
|
-
});
|
|
1226
|
-
test("Admins can set child extensions when the admin role is inherited", async () => {
|
|
1227
|
-
const { node1, node2 } = await createTwoConnectedNodes("server", "server");
|
|
1228
|
-
const node2AccountOnNode1 = await loadCoValueOrFail(node1.node, node2.accountID);
|
|
1229
|
-
const group = node1.node.createGroup();
|
|
1230
|
-
group.addMember(node2AccountOnNode1, "admin");
|
|
1231
|
-
const groupOnNode2 = await loadCoValueOrFail(node2.node, group.id);
|
|
1232
|
-
const childGroup = node2.node.createGroup();
|
|
1233
|
-
childGroup.extend(groupOnNode2);
|
|
1234
|
-
const childGroupOnNode1 = await loadCoValueOrFail(node1.node, childGroup.id);
|
|
1235
|
-
const grandChildGroup = node2.node.createGroup();
|
|
1236
|
-
grandChildGroup.extend(childGroupOnNode1);
|
|
1237
|
-
expect(childGroupOnNode1.get(`child_${grandChildGroup.id}`)).toEqual("extend");
|
|
1238
|
-
expect(grandChildGroup.get(`parent_${childGroupOnNode1.id}`)).toEqual("extend");
|
|
1239
|
-
});
|
|
1240
|
-
test("Writers, readers and writeOnly can set child extensions", async () => {
|
|
1241
|
-
const { group, node } = newGroupHighLevel();
|
|
1242
|
-
const childGroup = node.createGroup();
|
|
1243
|
-
const writer = createAccountInNode(node);
|
|
1244
|
-
const reader = createAccountInNode(node);
|
|
1245
|
-
const writeOnly = createAccountInNode(node);
|
|
1246
|
-
group.addMember(writer, "writer");
|
|
1247
|
-
group.addMember(reader, "reader");
|
|
1248
|
-
group.addMember(writeOnly, "writeOnly");
|
|
1249
|
-
const groupAsWriter = expectGroup(await group.core.contentInClonedNodeWithDifferentAccount(writer));
|
|
1250
|
-
groupAsWriter.set(`child_${childGroup.id}`, "extend", "trusting");
|
|
1251
|
-
expect(groupAsWriter.get(`child_${childGroup.id}`)).toEqual("extend");
|
|
1252
|
-
const groupAsReader = expectGroup(await group.core.contentInClonedNodeWithDifferentAccount(reader));
|
|
1253
|
-
groupAsReader.set(`child_${childGroup.id}`, "extend", "trusting");
|
|
1254
|
-
expect(groupAsReader.get(`child_${childGroup.id}`)).toEqual("extend");
|
|
1113
|
+
expect(group.get(`child_${childGroup.id}`)).toEqual(undefined);
|
|
1255
1114
|
});
|
|
1256
1115
|
test("Member roles are inherited by child groups (except invites)", () => {
|
|
1257
1116
|
const { group, node, admin } = newGroupHighLevel();
|
|
@@ -1509,10 +1368,9 @@ test("When rotating the key of a child group, the new child key is exposed to th
|
|
|
1509
1368
|
console.log("Checking", `${newReadKeyID}_for_${parentReadKeyID}`);
|
|
1510
1369
|
expect(group.get(`${newReadKeyID}_for_${parentReadKeyID}`)).toBeDefined();
|
|
1511
1370
|
});
|
|
1512
|
-
test("When rotating the key of a parent group, the keys of all child groups are also rotated", () => {
|
|
1371
|
+
test("When rotating the key of a parent group, the keys of all loaded child groups are also rotated", () => {
|
|
1513
1372
|
const { group, node } = newGroupHighLevel();
|
|
1514
1373
|
const parentGroup = node.createGroup();
|
|
1515
|
-
parentGroup.set(`child_${group.id}`, "extend", "trusting");
|
|
1516
1374
|
group.set(`parent_${parentGroup.id}`, "extend", "trusting");
|
|
1517
1375
|
group.rotateReadKey();
|
|
1518
1376
|
const currentChildReadKeyID = group.get("readKey");
|
|
@@ -1548,8 +1406,6 @@ test("When rotating the key of a grand-parent group, the keys of all child and g
|
|
|
1548
1406
|
const { group, node } = newGroupHighLevel();
|
|
1549
1407
|
const grandParentGroup = node.createGroup();
|
|
1550
1408
|
const parentGroup = node.createGroup();
|
|
1551
|
-
grandParentGroup.set(`child_${parentGroup.id}`, "extend", "trusting");
|
|
1552
|
-
parentGroup.set(`child_${group.id}`, "extend", "trusting");
|
|
1553
1409
|
parentGroup.set(`parent_${grandParentGroup.id}`, "extend", "trusting");
|
|
1554
1410
|
group.set(`parent_${grandParentGroup.id}`, "extend", "trusting");
|
|
1555
1411
|
const currentGrandParentReadKeyID = grandParentGroup.get("readKey");
|
|
@@ -1586,7 +1442,7 @@ test("Calling extend on group sets up parent and child references and reveals ch
|
|
|
1586
1442
|
const parentGroup = node.createGroup();
|
|
1587
1443
|
group.extend(parentGroup);
|
|
1588
1444
|
expect(group.get(`parent_${parentGroup.id}`)).toEqual("extend");
|
|
1589
|
-
expect(parentGroup.get(`child_${group.id}`)).toEqual(
|
|
1445
|
+
expect(parentGroup.get(`child_${group.id}`)).toEqual(undefined);
|
|
1590
1446
|
const parentReadKeyID = parentGroup.get("readKey");
|
|
1591
1447
|
if (!parentReadKeyID) {
|
|
1592
1448
|
throw new Error("Can't get parent group read key");
|
|
@@ -1617,8 +1473,8 @@ test("Calling extend to create grand-child groups parent and child references an
|
|
|
1617
1473
|
parentGroup.extend(grandParentGroup);
|
|
1618
1474
|
expect(group.get(`parent_${parentGroup.id}`)).toEqual("extend");
|
|
1619
1475
|
expect(parentGroup.get(`parent_${grandParentGroup.id}`)).toEqual("extend");
|
|
1620
|
-
expect(parentGroup.get(`child_${group.id}`)).toEqual(
|
|
1621
|
-
expect(grandParentGroup.get(`child_${parentGroup.id}`)).toEqual(
|
|
1476
|
+
expect(parentGroup.get(`child_${group.id}`)).toEqual(undefined);
|
|
1477
|
+
expect(grandParentGroup.get(`child_${parentGroup.id}`)).toEqual(undefined);
|
|
1622
1478
|
const reader = createAccountInNode(node);
|
|
1623
1479
|
grandParentGroup.addMember(reader, "reader");
|
|
1624
1480
|
const childObject = node.createCoValue({
|
|
@@ -1838,7 +1694,6 @@ test("High-level permissions work correctly when a group is extended", async ()
|
|
|
1838
1694
|
});
|
|
1839
1695
|
test("self-extensions should not break the permissions checks", () => {
|
|
1840
1696
|
const { group } = newGroupHighLevel();
|
|
1841
|
-
group.set(`child_${group.id}`, "extend", "trusting");
|
|
1842
1697
|
group.set(`parent_${group.id}`, "extend", "trusting");
|
|
1843
1698
|
const map = group.createMap();
|
|
1844
1699
|
map.set("test", "Hello!");
|
|
@@ -1848,9 +1703,6 @@ test("extend cycles should not break the permissions checks", () => {
|
|
|
1848
1703
|
const { group, node } = newGroupHighLevel();
|
|
1849
1704
|
const group2 = node.createGroup();
|
|
1850
1705
|
const group3 = node.createGroup();
|
|
1851
|
-
group.set(`child_${group2.id}`, "extend", "trusting");
|
|
1852
|
-
group2.set(`child_${group3.id}`, "extend", "trusting");
|
|
1853
|
-
group3.set(`child_${group.id}`, "extend", "trusting");
|
|
1854
1706
|
group.set(`parent_${group2.id}`, "extend", "trusting");
|
|
1855
1707
|
group2.set(`parent_${group3.id}`, "extend", "trusting");
|
|
1856
1708
|
group3.set(`parent_${group.id}`, "extend", "trusting");
|
|
@@ -1862,9 +1714,6 @@ test("extend cycles should not break the keys rotation", () => {
|
|
|
1862
1714
|
const { group, node } = newGroupHighLevel();
|
|
1863
1715
|
const group2 = node.createGroup();
|
|
1864
1716
|
const group3 = node.createGroup();
|
|
1865
|
-
group.set(`child_${group2.id}`, "extend", "trusting");
|
|
1866
|
-
group2.set(`child_${group3.id}`, "extend", "trusting");
|
|
1867
|
-
group3.set(`child_${group.id}`, "extend", "trusting");
|
|
1868
1717
|
group.set(`parent_${group2.id}`, "extend", "trusting");
|
|
1869
1718
|
group2.set(`parent_${group3.id}`, "extend", "trusting");
|
|
1870
1719
|
group3.set(`parent_${group.id}`, "extend", "trusting");
|