- Reorganize roadmap archives into phase-based directory structure - Add PHASE.md files for each roadmap phase - Update mobile app: remove Mattermost-specific push notification code - Update mobile app: migrate to workspace-based authentication - Update pubspec.yaml and platform configs for nomadcode app
43 lines
1.2 KiB
Dart
43 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:nomadcode_app/main.dart';
|
|
import 'package:nomadcode_app/screens/workspace_home_page.dart';
|
|
import 'package:nomadcode_app/models/project_workspace.dart';
|
|
|
|
void main() {
|
|
testWidgets('App renders console dashboard title', (
|
|
WidgetTester tester,
|
|
) async {
|
|
await tester.pumpWidget(const MyApp());
|
|
|
|
expect(find.text('NomadCode Console'), findsOneWidget);
|
|
expect(find.text('NomadCode Core'), findsNWidgets(2));
|
|
expect(find.text('IOP Bridge'), findsOneWidget);
|
|
});
|
|
|
|
testWidgets('WorkspaceHomePage triggers launcher callback on button tap', (
|
|
WidgetTester tester,
|
|
) async {
|
|
ProjectWorkspace? launchedProject;
|
|
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: WorkspaceHomePage(
|
|
onLaunchCodeServer: (project) async {
|
|
launchedProject = project;
|
|
return true;
|
|
},
|
|
),
|
|
),
|
|
);
|
|
|
|
final buttonFinder = find.widgetWithText(ElevatedButton, 'Open Workspace');
|
|
expect(buttonFinder, findsOneWidget);
|
|
|
|
await tester.tap(buttonFinder);
|
|
await tester.pumpAndSettle();
|
|
|
|
expect(launchedProject, isNotNull);
|
|
expect(launchedProject!.id, equals('nomadcode'));
|
|
});
|
|
}
|