Skip to content

Commit 1307300

Browse files
committed
Fix Background/After sections for multiple Feature
1 parent 680f200 commit 1307300

7 files changed

Lines changed: 50 additions & 36 deletions

File tree

example/integration_test/sample_test.dart

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/test/sample_test.dart

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/feature_generator.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ String generateFeatureDart(
6161
);
6262

6363
for (final feature in features) {
64+
sb.writeln(" group('''${feature.first.value}''', () {");
65+
6466
final hasBackground = _parseBackground(sb, feature);
6567
final hasAfter = _parseAfter(sb, feature);
6668

@@ -90,13 +92,13 @@ bool _parseSetup(
9092
) {
9193
var offset = lines.indexWhere((element) => element.type == elementType);
9294
if (offset != -1) {
93-
sb.writeln(' Future<void> $title(WidgetTester tester) async {');
95+
sb.writeln(' Future<void> $title(WidgetTester tester) async {');
9496
offset++;
9597
while (lines[offset].type == LineType.step) {
96-
sb.writeln(' await ${getStepMethodCall(lines[offset].value)};');
98+
sb.writeln(' await ${getStepMethodCall(lines[offset].value)};');
9799
offset++;
98100
}
99-
sb.writeln(' }');
101+
sb.writeln(' }');
100102
}
101103
return offset != -1;
102104
}
@@ -108,8 +110,6 @@ void _parseFeature(
108110
bool hasTearDown,
109111
String testMethodName,
110112
) {
111-
sb.writeln(" group('''${feature.first.value}''', () {");
112-
113113
final scenarios = _splitScenarios(
114114
feature.skipWhile((value) => !_isNewScenario(value.type)).toList(),
115115
).toList();

test/after_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ import './step/the_test_finishes.dart';
2222
import './step/the_app_is_running.dart';
2323
2424
void main() {
25-
Future<void> bddTearDown(WidgetTester tester) async {
26-
await theTestFinishes(tester);
27-
}
2825
group(\'\'\'Testing feature\'\'\', () {
26+
Future<void> bddTearDown(WidgetTester tester) async {
27+
await theTestFinishes(tester);
28+
}
2929
testWidgets(\'\'\'Testing scenario\'\'\', (tester) async {
3030
try {
3131
await theAppIsRunning(tester);

test/background_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ import './step/the_server_always_return_errors.dart';
2222
import './step/the_app_is_running.dart';
2323
2424
void main() {
25-
Future<void> bddSetUp(WidgetTester tester) async {
26-
await theServerAlwaysReturnErrors(tester);
27-
}
2825
group(\'\'\'Testing feature\'\'\', () {
26+
Future<void> bddSetUp(WidgetTester tester) async {
27+
await theServerAlwaysReturnErrors(tester);
28+
}
2929
testWidgets(\'\'\'Testing scenario\'\'\', (tester) async {
3030
await bddSetUp(tester);
3131
await theAppIsRunning(tester);

test/full_set_test.dart

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ Feature: Counter
1414
Given the app is running
1515
And I run {'func foo() {}; func bar() { print("hey!"); };'} code
1616
Then I see {'0'} text
17+
Feature: Counter 2
18+
Background:
19+
Given the app is running
20+
Scenario: Initial counter value is 0
21+
Given the app is running
1722
''';
1823

1924
const expectedFeatureDart = '''
@@ -29,13 +34,13 @@ import './step/i_run_code.dart';
2934
import 'package:bdd_sample/i_see_text.dart';
3035
3136
void main() {
32-
Future<void> bddSetUp(WidgetTester tester) async {
33-
await theAppIsRunning(tester);
34-
}
35-
Future<void> bddTearDown(WidgetTester tester) async {
36-
await _iDoNotSeeText(tester, '42');
37-
}
3837
group(\'\'\'Counter\'\'\', () {
38+
Future<void> bddSetUp(WidgetTester tester) async {
39+
await theAppIsRunning(tester);
40+
}
41+
Future<void> bddTearDown(WidgetTester tester) async {
42+
await _iDoNotSeeText(tester, '42');
43+
}
3944
customTestWidgets(\'\'\'Initial counter value is 0\'\'\', (tester) async {
4045
try {
4146
await bddSetUp(tester);
@@ -47,6 +52,15 @@ void main() {
4752
}
4853
});
4954
});
55+
group(\'\'\'Counter 2\'\'\', () {
56+
Future<void> bddSetUp(WidgetTester tester) async {
57+
await theAppIsRunning(tester);
58+
}
59+
customTestWidgets(\'\'\'Initial counter value is 0\'\'\', (tester) async {
60+
await bddSetUp(tester);
61+
await theAppIsRunning(tester);
62+
});
63+
});
5064
}
5165
''';
5266

test/setup_test.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ import './step/the_test_finishes.dart';
2525
import './step/the_app_is_running.dart';
2626
2727
void main() {
28-
Future<void> bddSetUp(WidgetTester tester) async {
29-
await theServerAlwaysReturnErrors(tester);
30-
}
31-
Future<void> bddTearDown(WidgetTester tester) async {
32-
await theTestFinishes(tester);
33-
}
3428
group(\'\'\'Testing feature\'\'\', () {
29+
Future<void> bddSetUp(WidgetTester tester) async {
30+
await theServerAlwaysReturnErrors(tester);
31+
}
32+
Future<void> bddTearDown(WidgetTester tester) async {
33+
await theTestFinishes(tester);
34+
}
3535
testWidgets(\'\'\'Testing scenario\'\'\', (tester) async {
3636
try {
3737
await bddSetUp(tester);

0 commit comments

Comments
 (0)