nomadcode/apps/mobile/test/widget_test.dart
toki 84c8ac67ed 기능: monorepo 구조를 변경하고 web을 제거한다
- apps/web 디렉터리 전체를 삭제하여 web 클라이언트 제거
- Flutter 모바일 앱 구조를 정리하고 모델/스크린/서비스 추가
- agent-ops 규칙 및 로드맵 업데이트
- monorepo 문서 갱신
2026-05-24 21:48:51 +09:00

39 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'));
});
}