Skip to content

Commit f3043aa

Browse files
committed
test(integrations): add integrations tests
1 parent 7de536f commit f3043aa

10 files changed

+420
-25
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
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:test/test.dart';
9+
10+
void main() {
11+
setUp(() {
12+
final dir = Directory('test_resources/lib/gen/assets.gen.dart');
13+
14+
if (dir.existsSync()) {
15+
dir.deleteSync(recursive: true);
16+
}
17+
});
18+
19+
test('Assets with No integrations on pubspec.yaml', () async {
20+
await FlutterGenerator(
21+
File('test_resources/pubspec_assets_no_integrations.yaml'))
22+
.build();
23+
expect(
24+
File('test_resources/lib/gen/assets.gen.dart').readAsStringSync(),
25+
isNotEmpty,
26+
);
27+
28+
final pubspec = File('test_resources/pubspec_assets_no_integrations.yaml');
29+
final config = await Config(pubspec).load();
30+
final formatter = DartFormatter(
31+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
32+
33+
final actual = generateAssets(
34+
pubspec, formatter, config.flutterGen, config.flutter.assets);
35+
final expected =
36+
File('test_resources/actual_data/assets_no_integrations.gen.dart')
37+
.readAsStringSync()
38+
.replaceAll('\r\n', '\n');
39+
40+
expect(actual, expected);
41+
});
42+
43+
test('Assets with Svg integrations on pubspec.yaml', () async {
44+
await FlutterGenerator(
45+
File('test_resources/pubspec_assets_svg_integrations.yaml'))
46+
.build();
47+
expect(
48+
File('test_resources/lib/gen/assets.gen.dart').readAsStringSync(),
49+
isNotEmpty,
50+
);
51+
52+
final pubspec = File('test_resources/pubspec_assets_svg_integrations.yaml');
53+
final config = await Config(pubspec).load();
54+
final formatter = DartFormatter(
55+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
56+
57+
final actual = generateAssets(
58+
pubspec, formatter, config.flutterGen, config.flutter.assets);
59+
final expected =
60+
File('test_resources/actual_data/assets_svg_integrations.gen.dart')
61+
.readAsStringSync()
62+
.replaceAll('\r\n', '\n');
63+
64+
expect(actual, expected);
65+
});
66+
67+
test('Assets with Flare integrations on pubspec.yaml', () async {
68+
await FlutterGenerator(
69+
File('test_resources/pubspec_assets_flare_integrations.yaml'))
70+
.build();
71+
expect(
72+
File('test_resources/lib/gen/assets.gen.dart').readAsStringSync(),
73+
isNotEmpty,
74+
);
75+
76+
final pubspec =
77+
File('test_resources/pubspec_assets_flare_integrations.yaml');
78+
final config = await Config(pubspec).load();
79+
final formatter = DartFormatter(
80+
pageWidth: config.flutterGen.lineLength, lineEnding: '\n');
81+
82+
final actual = generateAssets(
83+
pubspec, formatter, config.flutterGen, config.flutter.assets);
84+
final expected =
85+
File('test_resources/actual_data/assets_flare_integrations.gen.dart')
86+
.readAsStringSync()
87+
.replaceAll('\r\n', '\n');
88+
89+
expect(actual, expected);
90+
});
91+
}

test/assets_gen_test.dart

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -65,31 +65,6 @@ void main() {
6565
expect(actual, expected);
6666
});
6767

68-
test('Assets with No integrations 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-
9368
test('Assets with Unknown mime type on pubspec.yaml', () async {
9469
await FlutterGenerator(
9570
File('test_resources/pubspec_unknown_mime_type.yaml'))

test_resources/actual_data/assets.gen.dart

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,21 @@
66
import 'package:flutter/widgets.dart';
77
import 'package:flutter_svg/flutter_svg.dart';
88
import 'package:flutter/services.dart';
9+
import 'package:flare_flutter/flare_actor.dart';
10+
import 'package:flare_flutter/flare_controller.dart';
911

1012
class $PicturesGen {
1113
const $PicturesGen();
1214

1315
AssetGenImage get chip5 => const AssetGenImage('pictures/chip5.jpg');
1416
}
1517

18+
class $AssetsFlareGen {
19+
const $AssetsFlareGen();
20+
21+
FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr');
22+
}
23+
1624
class $AssetsImagesGen {
1725
const $AssetsImagesGen();
1826

@@ -31,6 +39,18 @@ class $AssetsJsonGen {
3139
String get fruits => 'assets/json/fruits.json';
3240
}
3341

42+
class $AssetsMovieGen {
43+
const $AssetsMovieGen();
44+
45+
String get theEarth => 'assets/movie/the_earth.mp4';
46+
}
47+
48+
class $AssetsUnknownGen {
49+
const $AssetsUnknownGen();
50+
51+
String get unknownMimeType => 'assets/unknown/unknown_mime_type.bk';
52+
}
53+
3454
class $AssetsImagesChip3Gen {
3555
const $AssetsImagesChip3Gen();
3656

@@ -57,8 +77,11 @@ class $AssetsImagesIconsGen {
5777
class Assets {
5878
Assets._();
5979

80+
static const $AssetsFlareGen flare = $AssetsFlareGen();
6081
static const $AssetsImagesGen images = $AssetsImagesGen();
6182
static const $AssetsJsonGen json = $AssetsJsonGen();
83+
static const $AssetsMovieGen movie = $AssetsMovieGen();
84+
static const $AssetsUnknownGen unknown = $AssetsUnknownGen();
6285
static const $PicturesGen pictures = $PicturesGen();
6386
}
6487

@@ -158,3 +181,44 @@ class SvgGenImage {
158181

159182
String get path => _assetName;
160183
}
184+
185+
class FlareGenImage {
186+
const FlareGenImage(this._assetName);
187+
188+
final String _assetName;
189+
190+
FlareActor flare({
191+
String boundsNode,
192+
String animation,
193+
BoxFit fit = BoxFit.contain,
194+
Alignment alignment = Alignment.center,
195+
bool isPaused = false,
196+
bool snapToEnd = false,
197+
FlareController controller,
198+
FlareCompletedCallback callback,
199+
Color color,
200+
bool shouldClip = true,
201+
bool sizeFromArtboard = false,
202+
String artboard,
203+
bool antialias = true,
204+
}) {
205+
return FlareActor(
206+
_assetName,
207+
boundsNode: boundsNode,
208+
animation: animation,
209+
fit: fit,
210+
alignment: alignment,
211+
isPaused: isPaused,
212+
snapToEnd: snapToEnd,
213+
controller: controller,
214+
callback: callback,
215+
color: color,
216+
shouldClip: shouldClip,
217+
sizeFromArtboard: sizeFromArtboard,
218+
artboard: artboard,
219+
antialias: antialias,
220+
);
221+
}
222+
223+
String get path => _assetName;
224+
}
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
/// GENERATED CODE - DO NOT MODIFY BY HAND
2+
/// *****************************************************
3+
/// FlutterGen
4+
/// *****************************************************
5+
6+
import 'package:flutter/widgets.dart';
7+
import 'package:flare_flutter/flare_actor.dart';
8+
import 'package:flare_flutter/flare_controller.dart';
9+
10+
class $AssetsFlareGen {
11+
const $AssetsFlareGen();
12+
13+
FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr');
14+
}
15+
16+
class Assets {
17+
Assets._();
18+
19+
static const $AssetsFlareGen flare = $AssetsFlareGen();
20+
}
21+
22+
class AssetGenImage extends AssetImage {
23+
const AssetGenImage(String assetName)
24+
: _assetName = assetName,
25+
super(assetName);
26+
final String _assetName;
27+
28+
Image image({
29+
Key key,
30+
ImageFrameBuilder frameBuilder,
31+
ImageLoadingBuilder loadingBuilder,
32+
ImageErrorWidgetBuilder errorBuilder,
33+
String semanticLabel,
34+
bool excludeFromSemantics = false,
35+
double width,
36+
double height,
37+
Color color,
38+
BlendMode colorBlendMode,
39+
BoxFit fit,
40+
AlignmentGeometry alignment = Alignment.center,
41+
ImageRepeat repeat = ImageRepeat.noRepeat,
42+
Rect centerSlice,
43+
bool matchTextDirection = false,
44+
bool gaplessPlayback = false,
45+
bool isAntiAlias = false,
46+
FilterQuality filterQuality = FilterQuality.low,
47+
}) {
48+
return Image(
49+
key: key,
50+
image: this,
51+
frameBuilder: frameBuilder,
52+
loadingBuilder: loadingBuilder,
53+
errorBuilder: errorBuilder,
54+
semanticLabel: semanticLabel,
55+
excludeFromSemantics: excludeFromSemantics,
56+
width: width,
57+
height: height,
58+
color: color,
59+
colorBlendMode: colorBlendMode,
60+
fit: fit,
61+
alignment: alignment,
62+
repeat: repeat,
63+
centerSlice: centerSlice,
64+
matchTextDirection: matchTextDirection,
65+
gaplessPlayback: gaplessPlayback,
66+
isAntiAlias: isAntiAlias,
67+
filterQuality: filterQuality,
68+
);
69+
}
70+
71+
String get path => _assetName;
72+
}
73+
74+
class FlareGenImage {
75+
const FlareGenImage(this._assetName);
76+
77+
final String _assetName;
78+
79+
FlareActor flare({
80+
String boundsNode,
81+
String animation,
82+
BoxFit fit = BoxFit.contain,
83+
Alignment alignment = Alignment.center,
84+
bool isPaused = false,
85+
bool snapToEnd = false,
86+
FlareController controller,
87+
FlareCompletedCallback callback,
88+
Color color,
89+
bool shouldClip = true,
90+
bool sizeFromArtboard = false,
91+
String artboard,
92+
bool antialias = true,
93+
}) {
94+
return FlareActor(
95+
_assetName,
96+
boundsNode: boundsNode,
97+
animation: animation,
98+
fit: fit,
99+
alignment: alignment,
100+
isPaused: isPaused,
101+
snapToEnd: snapToEnd,
102+
controller: controller,
103+
callback: callback,
104+
color: color,
105+
shouldClip: shouldClip,
106+
sizeFromArtboard: sizeFromArtboard,
107+
artboard: artboard,
108+
antialias: antialias,
109+
);
110+
}
111+
112+
String get path => _assetName;
113+
}

0 commit comments

Comments
 (0)