fix: dont override passed powerlevels with groupcall powerlevels

This commit is contained in:
td 2024-06-11 19:00:39 +05:30
parent 42ea917b63
commit a540bc6ef7
No known key found for this signature in database
GPG Key ID: 62A30523D4D6CE28
2 changed files with 104 additions and 9 deletions

View File

@ -814,17 +814,19 @@ class Client extends MatrixApi {
}
if (groupCall) {
powerLevelContentOverride ??= {};
powerLevelContentOverride['events'] = <String, dynamic>{
EventTypes.GroupCallMember: 0,
};
powerLevelContentOverride['events'] ??= {};
powerLevelContentOverride['events'][EventTypes.GroupCallMember] ??=
powerLevelContentOverride['events_default'] ?? 0;
}
final roomId = await createRoom(
invite: invite,
preset: preset,
name: groupName,
initialState: initialState,
visibility: visibility,
powerLevelContentOverride: powerLevelContentOverride);
invite: invite,
preset: preset,
name: groupName,
initialState: initialState,
visibility: visibility,
powerLevelContentOverride: powerLevelContentOverride,
);
if (waitForSync) {
if (getRoomById(roomId) == null) {

View File

@ -887,8 +887,101 @@ void main() {
test('startDirectChat', () async {
await matrix.startDirectChat('@alice:example.com', waitForSync: false);
});
test('createGroupChat', () async {
await matrix.createGroupChat(groupName: 'Testgroup', waitForSync: false);
expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.last),
{
'initial_state': [
{
'content': {'algorithm': 'm.megolm.v1.aes-sha2'},
'type': 'm.room.encryption'
}
],
'name': 'Testgroup',
'preset': 'private_chat'
},
);
await matrix.createGroupChat(
groupName: 'Testgroup',
waitForSync: false,
groupCall: true,
powerLevelContentOverride: {'events_default': 12});
expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.last),
{
'initial_state': [
{
'content': {'algorithm': 'm.megolm.v1.aes-sha2'},
'type': 'm.room.encryption'
}
],
'name': 'Testgroup',
'power_level_content_override': {
'events_default': 12,
'events': {'com.famedly.call.member': 12}
},
'preset': 'private_chat'
},
);
await matrix.createGroupChat(
groupName: 'Testgroup',
waitForSync: false,
groupCall: true,
powerLevelContentOverride: {
'events_default': 12,
'events': {'com.famedly.call.member': 14}
});
expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.last),
{
'initial_state': [
{
'content': {'algorithm': 'm.megolm.v1.aes-sha2'},
'type': 'm.room.encryption'
}
],
'name': 'Testgroup',
'power_level_content_override': {
'events_default': 12,
'events': {'com.famedly.call.member': 14}
},
'preset': 'private_chat'
},
);
await matrix.createGroupChat(
groupName: 'Testgroup',
waitForSync: false,
groupCall: true,
);
expect(
json.decode(
FakeMatrixApi.calledEndpoints['/client/v3/createRoom']?.last),
{
'initial_state': [
{
'content': {'algorithm': 'm.megolm.v1.aes-sha2'},
'type': 'm.room.encryption'
}
],
'name': 'Testgroup',
'power_level_content_override': {
'events': {'com.famedly.call.member': 0}
},
'preset': 'private_chat'
},
);
});
test('Test the fake store api', () async {
final database = await getDatabase(null);