You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-08-06 12:02:40 +03:00
Add missing tests for MSC3089 implementation
Fixes https://github.com/vector-im/element-web/issues/18461
This commit is contained in:
@@ -151,4 +151,21 @@ describe("MSC3089Branch", () => {
|
|||||||
httpUrl: expect.stringMatching(`.+${mxcLatter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}$`),
|
httpUrl: expect.stringMatching(`.+${mxcLatter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}$`),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should be able to return the event object', async () => {
|
||||||
|
const mxcLatter = "example.org/file";
|
||||||
|
const fileContent = { isFile: "not quite", url: "mxc://" + mxcLatter };
|
||||||
|
const eventsArr = [
|
||||||
|
{ getId: () => "$not-file", getContent: () => ({}) },
|
||||||
|
{ getId: () => fileEventId, getContent: () => ({ file: fileContent }) },
|
||||||
|
];
|
||||||
|
client.getEventTimeline = () => Promise.resolve({
|
||||||
|
getEvents: () => eventsArr,
|
||||||
|
}) as any as Promise<EventTimeline>; // partial
|
||||||
|
client.decryptEventIfNeeded = () => Promise.resolve();
|
||||||
|
|
||||||
|
const res = await branch.getFileEvent();
|
||||||
|
expect(res).toBeDefined();
|
||||||
|
expect(res).toBe(eventsArr[1]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@@ -227,40 +227,61 @@ describe("MSC3089TreeSpace", () => {
|
|||||||
[targetUser]: expectedPl,
|
[targetUser]: expectedPl,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Store new power levels so the `getPermissions()` test passes
|
||||||
|
makePowerLevels(content);
|
||||||
|
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
});
|
});
|
||||||
client.sendStateEvent = fn;
|
client.sendStateEvent = fn;
|
||||||
await tree.setPermissions(targetUser, role);
|
await tree.setPermissions(targetUser, role);
|
||||||
expect(fn.mock.calls.length).toBe(1);
|
expect(fn.mock.calls.length).toBe(1);
|
||||||
|
|
||||||
|
const finalPermissions = tree.getPermissions(targetUser);
|
||||||
|
expect(finalPermissions).toEqual(role);
|
||||||
}
|
}
|
||||||
|
|
||||||
it('should support setting Viewer permissions', () => {
|
it('should support setting Viewer permissions', () => {
|
||||||
return evaluatePowerLevels({
|
return evaluatePowerLevels({
|
||||||
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
||||||
users_default: 1024,
|
users_default: 1024,
|
||||||
|
events_default: 1025,
|
||||||
|
events: {
|
||||||
|
[EventType.RoomPowerLevels]: 1026,
|
||||||
|
},
|
||||||
}, TreePermissions.Viewer, 1024);
|
}, TreePermissions.Viewer, 1024);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should support setting Editor permissions', () => {
|
it('should support setting Editor permissions', () => {
|
||||||
return evaluatePowerLevels({
|
return evaluatePowerLevels({
|
||||||
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
||||||
events_default: 1024,
|
users_default: 1024,
|
||||||
}, TreePermissions.Editor, 1024);
|
events_default: 1025,
|
||||||
|
events: {
|
||||||
|
[EventType.RoomPowerLevels]: 1026,
|
||||||
|
},
|
||||||
|
}, TreePermissions.Editor, 1025);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should support setting Owner permissions', () => {
|
it('should support setting Owner permissions', () => {
|
||||||
return evaluatePowerLevels({
|
return evaluatePowerLevels({
|
||||||
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
||||||
|
users_default: 1024,
|
||||||
|
events_default: 1025,
|
||||||
events: {
|
events: {
|
||||||
[EventType.RoomPowerLevels]: 1024,
|
[EventType.RoomPowerLevels]: 1026,
|
||||||
},
|
},
|
||||||
}, TreePermissions.Owner, 1024);
|
}, TreePermissions.Owner, 1026);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should support demoting permissions', () => {
|
it('should support demoting permissions', () => {
|
||||||
return evaluatePowerLevels({
|
return evaluatePowerLevels({
|
||||||
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
||||||
users_default: 1024,
|
users_default: 1024,
|
||||||
|
events_default: 1025,
|
||||||
|
events: {
|
||||||
|
[EventType.RoomPowerLevels]: 1026,
|
||||||
|
},
|
||||||
users: {
|
users: {
|
||||||
[targetUser]: 2222,
|
[targetUser]: 2222,
|
||||||
},
|
},
|
||||||
@@ -270,11 +291,15 @@ describe("MSC3089TreeSpace", () => {
|
|||||||
it('should support promoting permissions', () => {
|
it('should support promoting permissions', () => {
|
||||||
return evaluatePowerLevels({
|
return evaluatePowerLevels({
|
||||||
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
...DEFAULT_TREE_POWER_LEVELS_TEMPLATE,
|
||||||
events_default: 1024,
|
users_default: 1024,
|
||||||
|
events_default: 1025,
|
||||||
|
events: {
|
||||||
|
[EventType.RoomPowerLevels]: 1026,
|
||||||
|
},
|
||||||
users: {
|
users: {
|
||||||
[targetUser]: 5,
|
[targetUser]: 5,
|
||||||
},
|
},
|
||||||
}, TreePermissions.Editor, 1024);
|
}, TreePermissions.Editor, 1025);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should support defaults: Viewer', () => {
|
it('should support defaults: Viewer', () => {
|
||||||
|
Reference in New Issue
Block a user