Skip to content

Commit

Permalink
feature: testing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
efraespada committed Oct 4, 2024
1 parent afeb849 commit dbfd0be
Show file tree
Hide file tree
Showing 7 changed files with 123 additions and 33 deletions.
78 changes: 78 additions & 0 deletions example/lib/catalog/process.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import 'dart:convert';

import 'package:catalog/src/base/serial.dart';

class InternalPreview implements Serial<InternalPreview> {
final String id;
final String path;
final String description;
final List<String> parameters;

const InternalPreview({
this.id = '',
this.path = '',
this.description = '',
this.parameters = const [],
});

@override
InternalPreview fromJson(Map<String, dynamic> json) => InternalPreview(
id: json['id'] ?? '',
path: json['path'] ?? '',
description: json['description'] ?? '',
parameters: Serial.listObjectFromBasicType<String>(
json['parameters'] ?? [],
),
);

@override
String getId() => id;

@override
InternalPreview instance() => const InternalPreview(id: '', path: '');

@override
Map<String, dynamic> toJson() => {
'id': id,
'path': path,
'description': description,
'parameters': parameters,
};

@override
InternalPreview fromString(String value) {
Map<String, dynamic> map = jsonDecode(value);
return fromJson(map);
}

@override
String stringValue() {
var map = toJson();
return jsonEncode(map);
}

InternalPreview copyWith({
String? id,
String? path,
String? description,
List<String>? parameters,
}) =>
InternalPreview(
id: id ?? this.id,
path: path ?? this.path,
description: description ?? this.description,
parameters: parameters ?? this.parameters,
);
}

void main(List<String> arguments) async {
var preview = const InternalPreview(
parameters: [
'title',
'infoText',
'counter',
'incrementCounter',
],
);
print(jsonEncode(preview.toJson()));
}
16 changes: 10 additions & 6 deletions example/lib/widgets/catalog/preview/main_screen.preview.dart
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,7 @@ class MainScreenPreview extends ParentPreviewWidget {
widgetKey: GlobalKey(),
dummyBuilder: () => MainScreenDummy().dummies[i],
builder: (BuildContext context, Dummy dummy) {
return MainScreen(
title: dummy.parameters['title'],
infoText: dummy.parameters['infoText'],
counter: dummy.parameters['counter'],
incrementCounter: dummy.parameters['incrementCounter'],
);
return buildMainScreen(dummy);
},
),
],
Expand All @@ -124,3 +119,12 @@ class MainScreenPreview extends ParentPreviewWidget {
);
}
}

MainScreen buildMainScreen(Dummy dummy) {
return MainScreen(
title: dummy.parameters['title'],
infoText: dummy.parameters['infoText'],
counter: dummy.parameters['counter'],
incrementCounter: dummy.parameters['incrementCounter'],
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,7 @@ class BodyWidgetPreview extends ParentPreviewWidget {
widgetKey: GlobalKey(),
dummyBuilder: () => BodyWidgetDummy().dummies[i],
builder: (BuildContext context, Dummy dummy) {
return BodyWidget(
infoText: dummy.parameters['infoText'],
counter: dummy.parameters['counter'],
);
return buildBodyWidget(dummy);
},
),
],
Expand All @@ -120,3 +117,10 @@ class BodyWidgetPreview extends ParentPreviewWidget {
);
}
}

BodyWidget buildBodyWidget(Dummy dummy) {
return BodyWidget(
infoText: dummy.parameters['infoText'],
counter: dummy.parameters['counter'],
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,7 @@ class CounterWidgetPreview extends ParentPreviewWidget {
widgetKey: GlobalKey(),
dummyBuilder: () => CounterWidgetDummy().dummies[i],
builder: (BuildContext context, Dummy dummy) {
return CounterWidget(
counter: dummy.parameters['counter'],
);
return buildCounterWidget(dummy);
},
),
],
Expand All @@ -119,3 +117,9 @@ class CounterWidgetPreview extends ParentPreviewWidget {
);
}
}

CounterWidget buildCounterWidget(Dummy dummy) {
return CounterWidget(
counter: dummy.parameters['counter'],
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,7 @@ class FabWidgetPreview extends ParentPreviewWidget {
widgetKey: GlobalKey(),
dummyBuilder: () => FabWidgetDummy().dummies[i],
builder: (BuildContext context, Dummy dummy) {
return FabWidget(
incrementCounter: dummy.parameters['incrementCounter'],
);
return buildFabWidget(dummy);
},
),
],
Expand All @@ -117,3 +115,9 @@ class FabWidgetPreview extends ParentPreviewWidget {
);
}
}

FabWidget buildFabWidget(Dummy dummy) {
return FabWidget(
incrementCounter: dummy.parameters['incrementCounter'],
);
}
20 changes: 6 additions & 14 deletions example/lib/widgets/utils/bottom/catalog/test/fab_widget.test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import 'package:catalog/catalog.dart';

import '../../fab_widget.dart';
import '../dummy/fab_widget.dummy.dart';
import '../preview/fab_widget.preview.dart';

class FabWidgetTest {
void main() {
Expand All @@ -15,13 +15,9 @@ class FabWidgetTest {
() {
testWidgets(
'Lorem text not found',
(tester) async {
(tester) async {
final dummy = FabWidgetDummy().dummies.first;

final widget = FabWidget(
incrementCounter: dummy.parameters['incrementCounter'],
);

final widget = buildFabWidget(dummy);
await tester.test(widget);

expect(find.text('lorem ipsu'), findsNothing);
Expand All @@ -30,16 +26,12 @@ class FabWidgetTest {

testWidgets(
'Other lorem text not found',
(tester) async {
(tester) async {
final dummy = FabWidgetDummy().dummies.first;

final widget = FabWidget(
incrementCounter: dummy.parameters['incrementCounter'],
);

final widget = buildFabWidget(dummy);
await tester.test(widget);

expect(find.text('lorem ipsu'), findsNothing);
expect(find.text('ipsu lorem'), findsNothing);
},
);
},
Expand Down
10 changes: 7 additions & 3 deletions lib/src/bin/preview_builder/preview_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -132,14 +132,18 @@ class ${clazz}Preview extends ParentPreviewWidget {
),
),
for (int i = 0; i < ${clazz}Dummy().dummies.length; i++)
${dummyWidgetBuilder(clazz, widgetCompose)}
${dummyWidgetBuilder(clazz)}
],
)
],
);
}
}
$clazz build$clazz(Dummy dummy) {
return $widgetCompose;
}
''';

Expand All @@ -156,13 +160,13 @@ class ${clazz}Preview extends ParentPreviewWidget {
await file.writeAsString(content);
}

String dummyWidgetBuilder(String clazz, String widgetCompose) {
String dummyWidgetBuilder(String clazz) {
return '''
PreviewBoundary(
widgetKey: GlobalKey(),
dummyBuilder: () => ${clazz}Dummy().dummies[i],
builder: (BuildContext context, Dummy dummy) {
return $widgetCompose;
return build$clazz(dummy);
},
),
''';
Expand Down

0 comments on commit dbfd0be

Please sign in to comment.