fix: EquatableMixin should respect global stringify (#82)
diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
index 89209a0..e8b3d93 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yaml
@@ -12,7 +12,7 @@
build:
runs-on: ubuntu-latest
container:
- image: google/dart:2.8.1
+ image: google/dart:2.8.4
steps:
- uses: actions/checkout@v2
- name: Install Dependencies
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 794a33f..6dfada0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 1.2.4
+
+- fix: `EquatableMixin` stringify respects `EquatableConfig.stringify` ([#81](https://github.com/felangel/equatable/issues/81))
+
# 1.2.3
- docs: inline, public documentation improvements ([#78](https://github.com/felangel/equatable/pull/78)).
diff --git a/lib/src/equatable_mixin.dart b/lib/src/equatable_mixin.dart
index e24e184..8253e3b 100644
--- a/lib/src/equatable_mixin.dart
+++ b/lib/src/equatable_mixin.dart
@@ -12,7 +12,8 @@
List<Object> get props;
/// {@macro equatable_stringify}
- bool get stringify => false;
+ // ignore: avoid_returning_null
+ bool get stringify => null;
@override
bool operator ==(Object other) {
diff --git a/pubspec.yaml b/pubspec.yaml
index 8407265..347087c 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
name: equatable
description: An abstract class that helps to implement equality without needing to explicitly override == and hashCode.
-version: 1.2.3
+version: 1.2.4
repository: https://github.com/felangel/equatable
issue_tracker: https://github.com/felangel/equatable/issues
homepage: https://github.com/felangel/equatable
diff --git a/test/equatable_mixin_test.dart b/test/equatable_mixin_test.dart
index 2a2d058..2eb08fe 100644
--- a/test/equatable_mixin_test.dart
+++ b/test/equatable_mixin_test.dart
@@ -120,7 +120,10 @@
}
void main() {
- EquatableConfig.stringify = false;
+ setUp(() {
+ EquatableConfig.stringify = false;
+ });
+
group('Empty Equatable', () {
test('should correct toString', () {
final instance = EmptyEquatable();
@@ -160,6 +163,13 @@
expect(instance.toString(), 'SimpleEquatable<String>');
});
+ test('should correct toString when EquatableConfig.stringify is true', () {
+ EquatableConfig.stringify = true;
+ final instance = SimpleEquatable('simple');
+ expect(instance.toString(), 'SimpleEquatable<String>(simple)');
+ EquatableConfig.stringify = null;
+ });
+
test('should return true when instance is the same', () {
final instance = SimpleEquatable('simple');
expect(instance == instance, true);
diff --git a/test/equatable_test.dart b/test/equatable_test.dart
index 646538e..20b2da2 100644
--- a/test/equatable_test.dart
+++ b/test/equatable_test.dart
@@ -133,7 +133,9 @@
}
void main() {
- EquatableConfig.stringify = false;
+ setUp(() {
+ EquatableConfig.stringify = false;
+ });
group('Empty Equatable', () {
test('should correct toString', () {
@@ -174,6 +176,13 @@
expect(instance.toString(), 'SimpleEquatable<String>');
});
+ test('should correct toString when EquatableConfig.stringify is true', () {
+ EquatableConfig.stringify = true;
+ final instance = SimpleEquatable('simple');
+ expect(instance.toString(), 'SimpleEquatable<String>(simple)');
+ EquatableConfig.stringify = null;
+ });
+
test('should return true when instance is the same', () {
final instance = SimpleEquatable('simple');
expect(instance == instance, true);