add a matrix: link test
This commit is contained in:
parent
a87379d2eb
commit
bf5c6996b4
2 changed files with 57 additions and 1 deletions
56
integration_test/links_test.dart
Normal file
56
integration_test/links_test.dart
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
import "package:flutter_test/flutter_test.dart";
|
||||||
|
import "package:integration_test/integration_test.dart";
|
||||||
|
import "package:nexus/widgets/room_chat/room_chat.dart";
|
||||||
|
import "package:nexus/widgets/room_summary_sheet.dart";
|
||||||
|
import "package:nexus/widgets/user_bottom_sheet.dart";
|
||||||
|
|
||||||
|
import "helpers/matrix_user.dart";
|
||||||
|
import "helpers/test_app.dart";
|
||||||
|
import "helpers/pump_until.dart";
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
|
final app = TestApp("dave", "davepass");
|
||||||
|
setUpAll(app.setUp);
|
||||||
|
final run = DateTime.now().millisecondsSinceEpoch;
|
||||||
|
Future<MatrixUser> bob() => MatrixUser.login("bob", "bobpass");
|
||||||
|
|
||||||
|
Future<void> openLink(WidgetTester tester, String link) async {
|
||||||
|
await app.open(tester);
|
||||||
|
app.fakes.links.open(.parse(link));
|
||||||
|
}
|
||||||
|
|
||||||
|
group("a link opened by the OS", () {
|
||||||
|
testWidgets("to a user opens their popover", (tester) async {
|
||||||
|
await openLink(tester, "matrix:u/bob:localhost");
|
||||||
|
|
||||||
|
await tester.pumpUntil(find.byType(UserBottomSheet));
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets("to a joined room opens it", (tester) async {
|
||||||
|
final inviter = await bob();
|
||||||
|
final roomId = await inviter.createRoom("Linked $run");
|
||||||
|
// Joined before Nexus starts, so the room is there once it syncs
|
||||||
|
await app.join(inviter, roomId);
|
||||||
|
|
||||||
|
await openLink(tester, "matrix:roomid/${roomId.substring(1)}");
|
||||||
|
|
||||||
|
await tester.pumpUntil(
|
||||||
|
find.byWidgetPredicate(
|
||||||
|
(widget) => widget is RoomChat && widget.roomId == roomId,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets("to a room that isn't joined shows its summary", (
|
||||||
|
tester,
|
||||||
|
) async {
|
||||||
|
final roomId = await (await bob()).createRoom("Unjoined $run");
|
||||||
|
|
||||||
|
await openLink(tester, "matrix:roomid/${roomId.substring(1)}");
|
||||||
|
|
||||||
|
await tester.pumpUntil(find.byType(RoomSummarySheet));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -34,7 +34,7 @@ port = 8448
|
||||||
client = "$homeserver"
|
client = "$homeserver"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
users=(alice bob carol)
|
users=(alice bob carol dave)
|
||||||
create_users=()
|
create_users=()
|
||||||
for user in "${users[@]}"; do
|
for user in "${users[@]}"; do
|
||||||
create_users+=(--execute "users create-user $user ${user}pass")
|
create_users+=(--execute "users create-user $user ${user}pass")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue