Merge branch 'krille/fake-user-event' into 'main'
fix: Fake User object Closes #343 See merge request famedly/company/frontend/famedlysdk!1221
This commit is contained in:
		
						commit
						92999339a9
					
				|  | @ -243,17 +243,17 @@ class Event extends MatrixEvent { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   User get asUser => User.fromState( |   User get asUser => User.fromState( | ||||||
|       // state key should always be set for member events |         // state key should always be set for member events | ||||||
|       stateKey: stateKey!, |         stateKey: stateKey!, | ||||||
|       prevContent: prevContent, |         prevContent: prevContent, | ||||||
|       content: content, |         content: content, | ||||||
|       typeKey: type, |         typeKey: type, | ||||||
|       eventId: eventId, |         eventId: eventId, | ||||||
|       roomId: roomId, |         senderId: senderId, | ||||||
|       senderId: senderId, |         originServerTs: originServerTs, | ||||||
|       originServerTs: originServerTs, |         unsigned: unsigned, | ||||||
|       unsigned: unsigned, |         room: room, | ||||||
|       room: room); |       ); | ||||||
| 
 | 
 | ||||||
|   String get messageType => type == EventTypes.Sticker |   String get messageType => type == EventTypes.Sticker | ||||||
|       ? MessageTypes.Sticker |       ? MessageTypes.Sticker | ||||||
|  |  | ||||||
|  | @ -20,33 +20,35 @@ import 'package:matrix/matrix.dart'; | ||||||
| 
 | 
 | ||||||
| /// Represents a Matrix User which may be a participant in a Matrix Room. | /// Represents a Matrix User which may be a participant in a Matrix Room. | ||||||
| class User extends Event { | class User extends Event { | ||||||
|   factory User(String id, |   factory User( | ||||||
|       {String? membership, |     String id, { | ||||||
|       String? displayName, |     String? membership, | ||||||
|       String? avatarUrl, |     String? displayName, | ||||||
|       required Room room}) { |     String? avatarUrl, | ||||||
|  |     required Room room, | ||||||
|  |   }) { | ||||||
|     return User.fromState( |     return User.fromState( | ||||||
|       stateKey: id, |       stateKey: id, | ||||||
|  |       senderId: id, | ||||||
|  |       eventId: 'fake_event', | ||||||
|       content: { |       content: { | ||||||
|         if (membership != null) 'membership': membership, |         if (membership != null) 'membership': membership, | ||||||
|         if (displayName != null) 'displayname': displayName, |         if (displayName != null) 'displayname': displayName, | ||||||
|         if (avatarUrl != null) 'avatar_url': avatarUrl, |         if (avatarUrl != null) 'avatar_url': avatarUrl, | ||||||
|       }, |       }, | ||||||
|       typeKey: EventTypes.RoomMember, |       typeKey: EventTypes.RoomMember, | ||||||
|       roomId: room.id, |  | ||||||
|       room: room, |       room: room, | ||||||
|       originServerTs: DateTime.now(), |       originServerTs: DateTime.now(), | ||||||
|     ); |     ); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   User.fromState({ |   User.fromState({ | ||||||
|     dynamic prevContent, |     Map<String, dynamic>? prevContent, | ||||||
|     required String stateKey, |     required String stateKey, | ||||||
|     dynamic content, |     Map<String, dynamic> content = const {}, | ||||||
|     required String typeKey, |     required String typeKey, | ||||||
|     String eventId = 'fakevent', |     required String eventId, | ||||||
|     String? roomId, |     required String senderId, | ||||||
|     String senderId = 'fakesender', |  | ||||||
|     required DateTime originServerTs, |     required DateTime originServerTs, | ||||||
|     dynamic unsigned, |     dynamic unsigned, | ||||||
|     required Room room, |     required Room room, | ||||||
|  |  | ||||||
|  | @ -220,6 +220,13 @@ extension CommandsClientExtension on Client { | ||||||
|       return ''; |       return ''; | ||||||
|     }); |     }); | ||||||
|     addCommand('markasdm', (CommandArgs args) async { |     addCommand('markasdm', (CommandArgs args) async { | ||||||
|  |       final mxid = args.msg; | ||||||
|  |       if (!mxid.isValidMatrixId) { | ||||||
|  |         throw Exception('You must enter a valid mxid when using /maskasdm'); | ||||||
|  |       } | ||||||
|  |       if (await args.room.requestUser(mxid, requestProfile: false) == null) { | ||||||
|  |         throw Exception('User $mxid is not in this room'); | ||||||
|  |       } | ||||||
|       await args.room.addToDirectChat(args.msg); |       await args.room.addToDirectChat(args.msg); | ||||||
|       return; |       return; | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|  | @ -314,7 +314,7 @@ void main() { | ||||||
| 
 | 
 | ||||||
|     test('markasdm', () async { |     test('markasdm', () async { | ||||||
|       FakeMatrixApi.calledEndpoints.clear(); |       FakeMatrixApi.calledEndpoints.clear(); | ||||||
|       await room.sendTextEvent('/markasdm @fakealice:example.com'); |       await room.sendTextEvent('/markasdm @test:fakeServer.notExisting'); | ||||||
|       expect( |       expect( | ||||||
|           json.decode(FakeMatrixApi |           json.decode(FakeMatrixApi | ||||||
|               .calledEndpoints[ |               .calledEndpoints[ | ||||||
|  | @ -325,7 +325,7 @@ void main() { | ||||||
|           json.decode(FakeMatrixApi |           json.decode(FakeMatrixApi | ||||||
|               .calledEndpoints[ |               .calledEndpoints[ | ||||||
|                   '/client/v3/user/%40test%3AfakeServer.notExisting/account_data/m.direct'] |                   '/client/v3/user/%40test%3AfakeServer.notExisting/account_data/m.direct'] | ||||||
|               ?.first)?['@fakealice:example.com'], |               ?.first)?['@test:fakeServer.notExisting'], | ||||||
|           ['!1234:fakeServer.notExisting']); |           ['!1234:fakeServer.notExisting']); | ||||||
|       expect( |       expect( | ||||||
|           json |           json | ||||||
|  | @ -335,19 +335,12 @@ void main() { | ||||||
|                   ?.first) |                   ?.first) | ||||||
|               .entries |               .entries | ||||||
|               .any((e) => |               .any((e) => | ||||||
|                   e.key != '@fakealice:example.com' && |                   e.key != '@test:fakeServer.notExisting' && | ||||||
|                   e.key != '@alice:example.com' && |                   e.key != '@alice:example.com' && | ||||||
|                   e.value.contains('!1234:fakeServer.notExisting')), |                   e.value.contains('!1234:fakeServer.notExisting')), | ||||||
|           false); |           false); | ||||||
| 
 | 
 | ||||||
|       FakeMatrixApi.calledEndpoints.clear(); |       FakeMatrixApi.calledEndpoints.clear(); | ||||||
|       await room.sendTextEvent('/markasdm'); |  | ||||||
|       expect( |  | ||||||
|           json.decode(FakeMatrixApi |  | ||||||
|               .calledEndpoints[ |  | ||||||
|                   '/client/v3/user/%40test%3AfakeServer.notExisting/account_data/m.direct'] |  | ||||||
|               ?.first)?[''], |  | ||||||
|           ['!1234:fakeServer.notExisting']); |  | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     test('markasgroup', () async { |     test('markasgroup', () async { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue