Skip to content

Commit 8fa5c00

Browse files
committed
fix tests
1 parent d400c74 commit 8fa5c00

12 files changed

+377
-112
lines changed

lib/src/settings/config.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:path/path.dart';
44
import 'package:yaml/yaml.dart';
55

66
import '../utils/cast.dart';
7+
import '../utils/error.dart';
78
import 'flutter.dart';
89
import 'flutter_gen.dart';
910

@@ -29,7 +30,7 @@ class Config {
2930
'Cannot open pubspec.yaml: ${pubspecFile.absolute}');
3031
});
3132
if (pubspec.isEmpty) {
32-
throw const FormatException('pubspec.yaml is empty');
33+
throw const InvalidSettingsException('pubspec.yaml is empty');
3334
}
3435

3536
final properties = safeCast<YamlMap>(loadYaml(pubspec));
@@ -42,7 +43,7 @@ class Config {
4243
}
4344

4445
if (!hasFlutter && !hasFlutterGen) {
45-
throw const FormatException('FlutterGen settings not founded.');
46+
throw const InvalidSettingsException('FlutterGen settings not founded.');
4647
}
4748

4849
return this;

test/assets_gen_test.dart

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
@TestOn('vm')
2+
import 'dart:io';
3+
4+
import 'package:dart_style/dart_style.dart';
5+
import 'package:flutter_gen/src/flutter_generator.dart';
6+
import 'package:flutter_gen/src/generators/assets_generator.dart';
7+
import 'package:flutter_gen/src/settings/config.dart';
8+
import 'package:flutter_gen/src/utils/error.dart';
9+
import 'package:test/test.dart';
10+
11+
void main() {
12+
setUp(() {
13+
final dir = Directory('test_resources/lib/gen/assets.gen.dart');
14+
15+
if (dir.existsSync()) {
16+
dir.deleteSync(recursive: true);
17+
}
18+
});
19+
20+
group('Test Assets generator', () {
21+
test('Assets on pubspec.yaml', () async {
22+
final pubspec = File('test_resources/pubspec_assets.yaml');
23+
final config = await Config(pubspec).load();
24+
final formatter = DartFormatter(
25+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
26+
27+
final actual = generateAssets(
28+
pubspec, formatter, config.flutterGen, config.flutter.assets);
29+
final expected = File('test_resources/actual_data/assets.gen.dart')
30+
.readAsStringSync()
31+
.replaceAll('\r\n', '\n');
32+
33+
expect(actual, expected);
34+
});
35+
36+
test('Assets snake-case style on pubspec.yaml', () async {
37+
final pubspec = File('test_resources/pubspec_assets_snake_case.yaml');
38+
final config = await Config(pubspec).load();
39+
final formatter = DartFormatter(
40+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
41+
42+
final actual = generateAssets(
43+
pubspec, formatter, config.flutterGen, config.flutter.assets);
44+
final expected =
45+
File('test_resources/actual_data/assets_snake_case.gen.dart')
46+
.readAsStringSync()
47+
.replaceAll('\r\n', '\n');
48+
49+
expect(actual, expected);
50+
});
51+
52+
test('Assets camel-case style on pubspec.yaml', () async {
53+
final pubspec = File('test_resources/pubspec_assets_camel_case.yaml');
54+
final config = await Config(pubspec).load();
55+
final formatter = DartFormatter(
56+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
57+
58+
final actual = generateAssets(
59+
pubspec, formatter, config.flutterGen, config.flutter.assets);
60+
final expected =
61+
File('test_resources/actual_data/assets_camel_case.gen.dart')
62+
.readAsStringSync()
63+
.replaceAll('\r\n', '\n');
64+
65+
expect(actual, expected);
66+
});
67+
68+
test('Assets with No inegrations on pubspec.yaml', () async {
69+
await FlutterGenerator(
70+
File('test_resources/pubspec_assets_no_integrations.yaml'))
71+
.build();
72+
expect(
73+
File('test_resources/lib/gen/assets.gen.dart').readAsStringSync(),
74+
isNotEmpty,
75+
);
76+
77+
final pubspec =
78+
File('test_resources/pubspec_assets_no_integrations.yaml');
79+
final config = await Config(pubspec).load();
80+
final formatter = DartFormatter(
81+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
82+
83+
final actual = generateAssets(
84+
pubspec, formatter, config.flutterGen, config.flutter.assets);
85+
final expected =
86+
File('test_resources/actual_data/assets_no_integrations.gen.dart')
87+
.readAsStringSync()
88+
.replaceAll('\r\n', '\n');
89+
90+
expect(actual, expected);
91+
});
92+
93+
test('Assets with No lists on pubspec.yaml', () async {
94+
final pubspec = File('test_resources/pubspec_assets_no_list.yaml');
95+
final config = await Config(pubspec).load();
96+
final formatter = DartFormatter(
97+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
98+
99+
expect(() async {
100+
return generateAssets(
101+
pubspec, formatter, config.flutterGen, config.flutter.assets);
102+
}, throwsA(isA<InvalidSettingsException>()));
103+
});
104+
});
105+
}

test/colors_gen_test.dart

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
@TestOn('vm')
2+
import 'dart:io';
3+
4+
import 'package:dart_style/dart_style.dart';
5+
import 'package:flutter_gen/src/generators/colors_generator.dart';
6+
import 'package:flutter_gen/src/settings/config.dart';
7+
import 'package:flutter_gen/src/utils/error.dart';
8+
import 'package:test/test.dart';
9+
10+
void main() {
11+
setUp(() {
12+
final dir = Directory('test_resources/lib/gen/colors.gen.dart');
13+
14+
if (dir.existsSync()) {
15+
dir.deleteSync(recursive: true);
16+
}
17+
});
18+
19+
group('Test Color generator', () {
20+
test('Colors on pubspec.yaml', () async {
21+
final pubspec = File('test_resources/pubspec_colors.yaml');
22+
final config = await Config(pubspec).load();
23+
final formatter = DartFormatter(
24+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
25+
26+
final actual =
27+
generateColors(pubspec, formatter, config.flutterGen.colors);
28+
final expected = File('test_resources/actual_data/colors.gen.dart')
29+
.readAsStringSync()
30+
.replaceAll('\r\n', '\n');
31+
32+
expect(actual, expected);
33+
});
34+
35+
test('Wrong colors settings on pubspec.yaml', () async {
36+
final pubspec = File('test_resources/pubspec_colors_no_inputs.yaml');
37+
final config = await Config(pubspec).load();
38+
final formatter = DartFormatter(
39+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
40+
41+
expect(() async {
42+
return generateColors(pubspec, formatter, config.flutterGen.colors);
43+
}, throwsA(isA<InvalidSettingsException>()));
44+
});
45+
46+
test('Wrong colors settings on pubspec.yaml', () async {
47+
final pubspec = File('test_resources/pubspec_colors_no_inputs_list.yaml');
48+
final config = await Config(pubspec).load();
49+
final formatter = DartFormatter(
50+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
51+
52+
expect(() async {
53+
return generateColors(pubspec, formatter, config.flutterGen.colors);
54+
}, throwsA(isA<InvalidSettingsException>()));
55+
});
56+
});
57+
}

test/flutter_gen_test.dart

Lines changed: 5 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
@TestOn('vm')
22
import 'dart:io';
33

4-
import 'package:dart_style/dart_style.dart';
54
import 'package:flutter_gen/src/flutter_generator.dart';
6-
import 'package:flutter_gen/src/generators/assets_generator.dart';
7-
import 'package:flutter_gen/src/generators/colors_generator.dart';
8-
import 'package:flutter_gen/src/generators/fonts_generator.dart';
95
import 'package:flutter_gen/src/settings/config.dart';
6+
import 'package:flutter_gen/src/utils/error.dart';
107
import 'package:test/test.dart';
118

129
void main() {
@@ -17,8 +14,7 @@ void main() {
1714
dir.deleteSync(recursive: true);
1815
}
1916
});
20-
21-
group('Test FlutterGenerator incorrect case', () {
17+
group('Test FlutterGenerator Exceptions', () {
2218
test('Not founded pubspec.yaml', () async {
2319
expect(() async {
2420
return await Config(File('test_resources/pubspec_not_founded.yaml'))
@@ -29,18 +25,18 @@ void main() {
2925
test('Empty pubspec.yaml', () async {
3026
expect(() async {
3127
return await Config(File('test_resources/pubspec_empty.yaml')).load();
32-
}, throwsFormatException);
28+
}, throwsA(isA<InvalidSettingsException>()));
3329
});
3430

3531
test('No settings pubspec.yaml', () async {
3632
expect(() async {
3733
return await Config(File('test_resources/pubspec_no_settings.yaml'))
3834
.load();
39-
}, throwsFormatException);
35+
}, throwsA(isA<InvalidSettingsException>()));
4036
});
4137
});
4238

43-
group('Test FlutterGenerator correct case', () {
39+
group('Test FlutterGenerator', () {
4440
test('pubspec.yaml', () async {
4541
await FlutterGenerator(File('test_resources/pubspec.yaml')).build();
4642
expect(
@@ -128,106 +124,5 @@ void main() {
128124
isNotEmpty,
129125
);
130126
});
131-
132-
test('Assets on pubspec.yaml', () async {
133-
final pubspec = File('test_resources/pubspec_assets.yaml');
134-
final config = await Config(pubspec).load();
135-
final formatter = DartFormatter(
136-
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
137-
138-
final actual = generateAssets(
139-
pubspec, formatter, config.flutterGen, config.flutter.assets);
140-
final expected = File('test_resources/actual_data/assets.gen.dart')
141-
.readAsStringSync()
142-
.replaceAll('\r\n', '\n');
143-
144-
expect(actual, expected);
145-
});
146-
147-
test('Assets snake-case style on pubspec.yaml', () async {
148-
final pubspec = File('test_resources/pubspec_assets_snake_case.yaml');
149-
final config = await Config(pubspec).load();
150-
final formatter = DartFormatter(
151-
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
152-
153-
final actual = generateAssets(
154-
pubspec, formatter, config.flutterGen, config.flutter.assets);
155-
final expected =
156-
File('test_resources/actual_data/assets_snake_case.gen.dart')
157-
.readAsStringSync()
158-
.replaceAll('\r\n', '\n');
159-
160-
expect(actual, expected);
161-
});
162-
163-
test('Assets camel-case style on pubspec.yaml', () async {
164-
final pubspec = File('test_resources/pubspec_assets_camel_case.yaml');
165-
final config = await Config(pubspec).load();
166-
final formatter = DartFormatter(
167-
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
168-
169-
final actual = generateAssets(
170-
pubspec, formatter, config.flutterGen, config.flutter.assets);
171-
final expected =
172-
File('test_resources/actual_data/assets_camel_case.gen.dart')
173-
.readAsStringSync()
174-
.replaceAll('\r\n', '\n');
175-
176-
expect(actual, expected);
177-
});
178-
179-
test('Assets with No inegrations on pubspec.yaml', () async {
180-
await FlutterGenerator(
181-
File('test_resources/pubspec_assets_no_integrations.yaml'))
182-
.build();
183-
expect(
184-
File('test_resources/lib/gen/assets.gen.dart').readAsStringSync(),
185-
isNotEmpty,
186-
);
187-
188-
final pubspec =
189-
File('test_resources/pubspec_assets_no_integrations.yaml');
190-
final config = await Config(pubspec).load();
191-
final formatter = DartFormatter(
192-
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
193-
194-
final actual = generateAssets(
195-
pubspec, formatter, config.flutterGen, config.flutter.assets);
196-
final expected =
197-
File('test_resources/actual_data/assets_no_integrations.gen.dart')
198-
.readAsStringSync()
199-
.replaceAll('\r\n', '\n');
200-
201-
expect(actual, expected);
202-
});
203-
204-
test('Fonts on pubspec.yaml', () async {
205-
final config =
206-
await Config(File('test_resources/pubspec_fonts.yaml')).load();
207-
final formatter = DartFormatter(
208-
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
209-
210-
final actual = generateFonts(formatter, config.flutter.fonts);
211-
final expected = File('test_resources/actual_data/fonts.gen.dart')
212-
.readAsStringSync()
213-
.replaceAll('\r\n', '\n');
214-
215-
expect(actual, expected);
216-
});
217-
218-
test('Colors on pubspec.yaml', () async {
219-
final pubspec = File('test_resources/pubspec_colors.yaml');
220-
final config = await Config(pubspec).load();
221-
final formatter = DartFormatter(
222-
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
223-
224-
final actual =
225-
generateColors(pubspec, formatter, config.flutterGen.colors);
226-
final expected = File('test_resources/actual_data/colors.gen.dart')
227-
.readAsStringSync()
228-
.replaceAll('\r\n', '\n');
229-
230-
expect(actual, expected);
231-
});
232127
});
233128
}

test/fonts_gen_test.dart

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
@TestOn('vm')
2+
import 'dart:io';
3+
4+
import 'package:dart_style/dart_style.dart';
5+
import 'package:flutter_gen/src/generators/fonts_generator.dart';
6+
import 'package:flutter_gen/src/settings/config.dart';
7+
import 'package:flutter_gen/src/utils/error.dart';
8+
import 'package:test/test.dart';
9+
10+
void main() {
11+
setUp(() {
12+
final dir = Directory('test_resources/lib/gen/fonts.gen.dart');
13+
14+
if (dir.existsSync()) {
15+
dir.deleteSync(recursive: true);
16+
}
17+
});
18+
19+
group('Test Fonts generator', () {
20+
test('Fonts on pubspec.yaml', () async {
21+
final config =
22+
await Config(File('test_resources/pubspec_fonts.yaml')).load();
23+
final formatter = DartFormatter(
24+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
25+
26+
final actual = generateFonts(formatter, config.flutter.fonts);
27+
final expected = File('test_resources/actual_data/fonts.gen.dart')
28+
.readAsStringSync()
29+
.replaceAll('\r\n', '\n');
30+
31+
expect(actual, expected);
32+
});
33+
34+
test('Wrong fonts settings on pubspec.yaml', () async {
35+
final config =
36+
await Config(File('test_resources/pubspec_fonts_no_family.yaml'))
37+
.load();
38+
final formatter = DartFormatter(
39+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
40+
41+
expect(() async {
42+
return generateFonts(formatter, config.flutter.fonts);
43+
}, throwsA(isA<InvalidSettingsException>()));
44+
});
45+
});
46+
}

0 commit comments

Comments
 (0)