Skip to content

Releases: eBay/flutter_glove_box

0.14.0

08 Dec 22:14
18a1fca
Compare
Choose a tag to compare

Updated to Flutter 2.18

0.13.0

11 Jan 22:31
b8cf574
Compare
Choose a tag to compare
  • Updated to Flutter 2.8 / Dart 2.15
  • Resolved an issue where testGoldens() tests were mis-labeled as test groups, which caused issues in VSCode's text explorer. Thanks @DanTup for the fix!
  • Updated documentation. Thanks @HugoHeneault, @nilsreichardt

0.11.0

15 Oct 17:35
99c826d
Compare
Choose a tag to compare
  • migrate from pedantic -> flutter_lints
  • resolved warning that could appear for consumers package:golden_toolkit has `uses-material-design: true` set but the primary pubspec contains `uses-material-design: false`. If the application needs material icons, then `uses-material-design` must be set to true
  • updated documentation to indicate that you no longer need to include an empty images folder to get fonts to render in goldens for packages that do not contain any images.

0.8.0

10 Nov 00:49
3a2d26d
Compare
Choose a tag to compare

Thanks to @tsimbalar for this enhancement.

A new configuration property has been added to GoldenToolkitConfiguration which allows you to opt-in to displaying real shadows in your goldens. By default, real shadows are disabled in Flutter tests due to inconsistencies in their implementation across versions. This behavior could always be toggled off in flutter tests via an obscure global variable. Now, you can easily specify a scoped value it in your configuration overrides.

0.7.0

06 Nov 16:13
96411b2
Compare
Choose a tag to compare

Thanks to @moonytoes29 for the following enhancements:

A new helper widget DeviceBuilder has been added. This works conceptually similar to GoldenBuilder but is used for displaying multiple device renderings of a widget in a single golden. This is an alternative to the existing multiScreenGolden() API which captures separate golden images for each device variation under test.

To assist with usage of DeviceBuilder, there is a new helper API: tester.pumpDeviceBuilder(builder) which assists in easily pumping a DeviceBuilder widget in your tests. Check out the documentation for more details.

0.6.0

10 Jul 21:53
9965b1c
Compare
Choose a tag to compare

Added the ability to configure the default set of devices to use for multiScreenGolden assertions globally.

For example:
GoldenToolkitConfiguration(defaultDevices: [Device.iphone11, Device.iphone11.dark()])

As part of this, the default parameter value has been removed from multiScreenGolden.

There was also a minor breaking change in that the const constructor of GoldenToolkitConfiguration is no longer const.

0.5.1

26 Jun 03:51
bf1083c
Compare
Choose a tag to compare

Improved the reliability of the default behavior for tester.waitForAssets() to handle additional cases.

0.5.0

25 Jun 13:29
386d611
Compare
Choose a tag to compare

More intelligent behavior for loading assets

A new mechanism has been added for ensuring that images have been decoded before capturing goldens. The old implementation worked most of the time, but was non-deterministic and hacky. The new implementation inspects the widget tree to identify images that need to be loaded. It should display images more consistently in goldens.

This may be a breaking change for some consumers. If you run into issues, you can revert to the old behavior, by applying the following configuration:

GoldenToolkitConfiguration(primeAssets: legacyPrimeAssets);

Additionally, you can provide your own implementation that extends the new default behavior:

GoldenToolkitConfiguration(primeAssets: (tester) async {
 await defaultPrimeAssets(tester);
 /* do anything custom */
});

If you run into issues, please submit issues so we can expand on the default behavior. We expect that it is likely missing some cases.

New API for configuring the toolkit

Reworked the configuration API introduced in 0.4.0. The prior method relied on global state and could be error prone. The old implementation still functions, but has been marked as deprecated and will be removed in a future release.

The new API can be invoked in flutter_test_config.dart to be applied for all tests within a given folder (or the entire package). Additionally, if there is a need to override configuration at a narrower scope, this API can be invoked in-line as well.

GoldenToolkit.runWithConfiguration((){/* callback() */}, config: GoldenToolkitConfiguration(/* custom config here */));

Added the ability to customize the generated filenames

When using screenMatchesGolden or multiGoldenFile, you can now supply your own functions for controlling the naming of the files. This can be done using the configuration API mentioned above.

GoldenToolkit.runWithConfiguration((){ /* callback() */}, config: GoldenToolkitConfiguration(fileNameFactory: (filename) => '' /*output filename*/));

There are two methods that can be overridden:

  • fileNameFactory is used for screenMatchesGolden
  • deviceFileNameFactory is used for multiScreenGolden

Future releases will likely consolidate these APIs.

Thanks to @christian-muertz for this enhancement.

Added additional utility functions for preparing for goldens

Extracted out some public extension methods that were previously private implementation details of multiScreenGolden & screenMatchesGolden

Added the following extensions. These can be used with any vanilla golden assertions and do not require multiScreenGolden, screenMatchesGolden, or GoldenBuilder.

// configures the simulated device to mirror the supplied device configuration (dimensions, pixel density, safe area, etc)
await tester.binding.applyDeviceOverrides(device);

// resets any configuration applied by applyDeviceOverrides
await tester.binding.resetDeviceOverrides();

// runs a block of code with the simulated device settings and automatically clears upon completion
await tester.binding.runWithDeviceOverrides(device, body: (){});

// convenience helper for configurating the safe area... the built-in paddingTestValue is difficult to work with
tester.binding.window.safeAreaTestValue = EdgeInsets.all(8);

// a stand-alone version of the image loading mechanism described at the top of these release notes. Will wait for all images to be decoded
// so that they will for sure appear in the golden.
await tester.waitForAssets();

Misc Changes

A few API / parameters were marked as deprecated and will be removed in future releases.

Fix issue with multiScreenGolden

13 Apr 23:34
4e7a78b
Compare
Choose a tag to compare

0.3.1

Resolve an issue where configuration performed on WidgetTester during multiScreenGolden could bleed over to other tests in the same file. Add additional convenience helpers for the Device class.

v0.2.0-dev

10 Feb 23:28
3c674fa
Compare
Choose a tag to compare
v0.2.0-dev Pre-release
Pre-release

Improved the mechanism for loading font assets. Consumers no longer need to supply a directory to read the .ttf files from.

They can now simply call: await loadAppFonts() and the package will automatically load any font assets from their pubspec.yaml or from any packages they depend on.