diff --git a/packages/shorebird_cli/test/src/code_push_client_wrapper_test.dart b/packages/shorebird_cli/test/src/code_push_client_wrapper_test.dart index 501902ee..623ee8c7 100644 --- a/packages/shorebird_cli/test/src/code_push_client_wrapper_test.dart +++ b/packages/shorebird_cli/test/src/code_push_client_wrapper_test.dart @@ -127,7 +127,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: displayName, - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); @@ -561,7 +561,9 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: displayName, - platformStatuses: {releasePlatform: ReleaseStatus.active}, + platformStatuses: const { + releasePlatform: ReleaseStatus.active, + }, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), @@ -597,7 +599,7 @@ You can manage this release in the ${link(uri: uri, message: 'Shorebird Console' flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: displayName, - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), @@ -622,7 +624,9 @@ You can manage this release in the ${link(uri: uri, message: 'Shorebird Console' flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: displayName, - platformStatuses: {releasePlatform: ReleaseStatus.draft}, + platformStatuses: const { + releasePlatform: ReleaseStatus.draft, + }, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), diff --git a/packages/shorebird_cli/test/src/commands/patch/patch_command_test.dart b/packages/shorebird_cli/test/src/commands/patch/patch_command_test.dart index 619219f1..7a7ea61a 100644 --- a/packages/shorebird_cli/test/src/commands/patch/patch_command_test.dart +++ b/packages/shorebird_cli/test/src/commands/patch/patch_command_test.dart @@ -80,7 +80,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {releasePlatform: ReleaseStatus.active}, + platformStatuses: const {releasePlatform: ReleaseStatus.active}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); @@ -898,7 +898,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.0.0+1', - platformStatuses: { + platformStatuses: const { ReleasePlatform.windows: ReleaseStatus.active, }, createdAt: DateTime(2023), @@ -938,7 +938,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: releaseVersion, - platformStatuses: {releasePlatform: ReleaseStatus.active}, + platformStatuses: const {releasePlatform: ReleaseStatus.active}, createdAt: DateTime(2024), updatedAt: DateTime(2024), ), @@ -949,7 +949,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '99.99.99+99', - platformStatuses: {releasePlatform: ReleaseStatus.active}, + platformStatuses: const {releasePlatform: ReleaseStatus.active}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), @@ -1061,7 +1061,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: releaseVersion, - platformStatuses: {releasePlatform: ReleaseStatus.active}, + platformStatuses: const {releasePlatform: ReleaseStatus.active}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), @@ -1072,7 +1072,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '2.0.0+1', - platformStatuses: { + platformStatuses: const { ReleasePlatform.macos: ReleaseStatus.active, ReleasePlatform.windows: ReleaseStatus.active, }, @@ -1127,7 +1127,7 @@ void main() { flutterRevision: releaseFlutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {releasePlatform: ReleaseStatus.active}, + platformStatuses: const {releasePlatform: ReleaseStatus.active}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), @@ -1266,7 +1266,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {releasePlatform: ReleaseStatus.draft}, + platformStatuses: const {releasePlatform: ReleaseStatus.draft}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), @@ -1302,7 +1302,7 @@ Please re-run the release command for this version or create a new release.'''), flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {ReleasePlatform.ios: ReleaseStatus.active}, + platformStatuses: const {ReleasePlatform.ios: ReleaseStatus.active}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), diff --git a/packages/shorebird_cli/test/src/commands/patches/promote_command_test.dart b/packages/shorebird_cli/test/src/commands/patches/promote_command_test.dart index 375c4e8c..4679fedb 100644 --- a/packages/shorebird_cli/test/src/commands/patches/promote_command_test.dart +++ b/packages/shorebird_cli/test/src/commands/patches/promote_command_test.dart @@ -34,7 +34,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {releasePlatform: ReleaseStatus.active}, + platformStatuses: const {releasePlatform: ReleaseStatus.active}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); diff --git a/packages/shorebird_cli/test/src/commands/release/aar_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/aar_releaser_test.dart index 9daf9134..d4984f22 100644 --- a/packages/shorebird_cli/test/src/commands/release/aar_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/aar_releaser_test.dart @@ -388,7 +388,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); diff --git a/packages/shorebird_cli/test/src/commands/release/android_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/android_releaser_test.dart index a89af119..a6efd9ca 100644 --- a/packages/shorebird_cli/test/src/commands/release/android_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/android_releaser_test.dart @@ -532,7 +532,7 @@ To change the version of this release, change your app's version in your pubspec flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); diff --git a/packages/shorebird_cli/test/src/commands/release/ios_framework_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/ios_framework_releaser_test.dart index 55380a42..4d52fd83 100644 --- a/packages/shorebird_cli/test/src/commands/release/ios_framework_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/ios_framework_releaser_test.dart @@ -400,7 +400,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); diff --git a/packages/shorebird_cli/test/src/commands/release/ios_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/ios_releaser_test.dart index 20a275ba..ab0d28a3 100644 --- a/packages/shorebird_cli/test/src/commands/release/ios_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/ios_releaser_test.dart @@ -605,7 +605,7 @@ To change the version of this release, change your app's version in your pubspec flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); diff --git a/packages/shorebird_cli/test/src/commands/release/macos_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/macos_releaser_test.dart index cde2455f..a6778e77 100644 --- a/packages/shorebird_cli/test/src/commands/release/macos_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/macos_releaser_test.dart @@ -526,7 +526,7 @@ To change the version of this release, change your app's version in your pubspec flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: '1.2.3+1', - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); diff --git a/packages/shorebird_cli/test/src/commands/release/release_command_test.dart b/packages/shorebird_cli/test/src/commands/release/release_command_test.dart index 1aac0552..a2aa07bc 100644 --- a/packages/shorebird_cli/test/src/commands/release/release_command_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/release_command_test.dart @@ -48,7 +48,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersionString, displayName: '1.2.3+1', - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); @@ -413,7 +413,7 @@ void main() { flutterRevision: 'different', flutterVersion: '3.12.1', displayName: '1.2.3+1', - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ); diff --git a/packages/shorebird_code_push_client/test/src/code_push_client_test.dart b/packages/shorebird_code_push_client/test/src/code_push_client_test.dart index 36ce595d..18ea581f 100644 --- a/packages/shorebird_code_push_client/test/src/code_push_client_test.dart +++ b/packages/shorebird_code_push_client/test/src/code_push_client_test.dart @@ -1163,7 +1163,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: displayName, - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), @@ -1683,7 +1683,9 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: 'v1.0.0', - platformStatuses: {ReleasePlatform.android: ReleaseStatus.draft}, + platformStatuses: const { + ReleasePlatform.android: ReleaseStatus.draft, + }, createdAt: DateTime(2022), updatedAt: DateTime(2023), ), @@ -1694,7 +1696,7 @@ void main() { flutterRevision: flutterRevision, flutterVersion: flutterVersion, displayName: 'v1.0.1', - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2022), updatedAt: DateTime(2023), ), diff --git a/packages/shorebird_code_push_protocol/lib/src/messages/patch_check/patch_check_request.g.dart b/packages/shorebird_code_push_protocol/lib/src/messages/patch_check/patch_check_request.g.dart index a9e732bb..18bf1f2d 100644 --- a/packages/shorebird_code_push_protocol/lib/src/messages/patch_check/patch_check_request.g.dart +++ b/packages/shorebird_code_push_protocol/lib/src/messages/patch_check/patch_check_request.g.dart @@ -1,6 +1,6 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: implicit_dynamic_parameter, require_trailing_commas, cast_nullable_to_non_nullable, lines_longer_than_80_chars, unnecessary_lambdas +// ignore_for_file: implicit_dynamic_parameter, require_trailing_commas, cast_nullable_to_non_nullable, lines_longer_than_80_chars part of 'patch_check_request.dart'; diff --git a/packages/shorebird_code_push_protocol/lib/src/messages/patch_check/patch_check_response.g.dart b/packages/shorebird_code_push_protocol/lib/src/messages/patch_check/patch_check_response.g.dart index b7385cb9..01895087 100644 --- a/packages/shorebird_code_push_protocol/lib/src/messages/patch_check/patch_check_response.g.dart +++ b/packages/shorebird_code_push_protocol/lib/src/messages/patch_check/patch_check_response.g.dart @@ -1,6 +1,6 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: implicit_dynamic_parameter, require_trailing_commas, cast_nullable_to_non_nullable, lines_longer_than_80_chars, unnecessary_lambdas +// ignore_for_file: implicit_dynamic_parameter, require_trailing_commas, cast_nullable_to_non_nullable, lines_longer_than_80_chars part of 'patch_check_response.dart'; diff --git a/packages/shorebird_code_push_protocol/lib/src/models/release.dart b/packages/shorebird_code_push_protocol/lib/src/models/release.dart index a90cfec3..4ac8abcb 100644 --- a/packages/shorebird_code_push_protocol/lib/src/models/release.dart +++ b/packages/shorebird_code_push_protocol/lib/src/models/release.dart @@ -1,4 +1,6 @@ +import 'package:equatable/equatable.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:meta/meta.dart'; import 'package:shorebird_code_push_protocol/shorebird_code_push_protocol.dart'; part 'release.g.dart'; @@ -8,7 +10,8 @@ part 'release.g.dart'; /// A release can have zero or more patches applied to it. /// {@endtemplate} @JsonSerializable() -class Release { +@immutable +class Release extends Equatable { /// {@macro release} const Release({ required this.id, @@ -64,4 +67,18 @@ class Release { /// /// This value is freeform text with no assumptions about content or format. final String? notes; + + @override + List get props => [ + id, + appId, + version, + flutterRevision, + flutterVersion, + displayName, + platformStatuses, + createdAt, + updatedAt, + notes, + ]; } diff --git a/packages/shorebird_code_push_protocol/test/src/messages/create_release/create_release_response_test.dart b/packages/shorebird_code_push_protocol/test/src/messages/create_release/create_release_response_test.dart index 22c5550b..f72aa224 100644 --- a/packages/shorebird_code_push_protocol/test/src/messages/create_release/create_release_response_test.dart +++ b/packages/shorebird_code_push_protocol/test/src/messages/create_release/create_release_response_test.dart @@ -12,7 +12,7 @@ void main() { displayName: 'v1.0.0', flutterRevision: 'flutter-revision', flutterVersion: '3.22.0', - platformStatuses: {}, + platformStatuses: const {}, createdAt: DateTime(2023), updatedAt: DateTime(2023), ), diff --git a/packages/shorebird_code_push_protocol/test/src/messages/get_releases/get_releases_response_test.dart b/packages/shorebird_code_push_protocol/test/src/messages/get_releases/get_releases_response_test.dart index 8c81f0a9..be1ac4d6 100644 --- a/packages/shorebird_code_push_protocol/test/src/messages/get_releases/get_releases_response_test.dart +++ b/packages/shorebird_code_push_protocol/test/src/messages/get_releases/get_releases_response_test.dart @@ -13,7 +13,7 @@ void main() { flutterRevision: 'flutter-revision', flutterVersion: '3.22.0', version: '1.0.0', - platformStatuses: { + platformStatuses: const { ReleasePlatform.ios: ReleaseStatus.draft, ReleasePlatform.android: ReleaseStatus.active, }, diff --git a/packages/shorebird_code_push_protocol/test/src/models/release_test.dart b/packages/shorebird_code_push_protocol/test/src/models/release_test.dart index dada1a88..7f3a925e 100644 --- a/packages/shorebird_code_push_protocol/test/src/models/release_test.dart +++ b/packages/shorebird_code_push_protocol/test/src/models/release_test.dart @@ -11,7 +11,7 @@ void main() { flutterRevision: '83305b5088e6fe327fb3334a73ff190828d85713', flutterVersion: '3.22.0', displayName: 'v1.0.0', - platformStatuses: {ReleasePlatform.android: ReleaseStatus.active}, + platformStatuses: const {ReleasePlatform.android: ReleaseStatus.active}, notes: 'some notes', createdAt: DateTime(2023), updatedAt: DateTime(2023), @@ -21,5 +21,47 @@ void main() { equals(release.toJson()), ); }); + + test('is equatable', () { + final release1 = Release( + id: 1, + appId: 'app-id', + version: '1.0.0', + flutterRevision: '83305b5088e6fe327fb3334a73ff190828d85713', + flutterVersion: '3.22.0', + displayName: 'v1.0.0', + platformStatuses: const {ReleasePlatform.android: ReleaseStatus.active}, + notes: 'some notes', + createdAt: DateTime(2023), + updatedAt: DateTime(2023), + ); + final release1Copy = Release( + id: 1, + appId: 'app-id', + version: '1.0.0', + flutterRevision: '83305b5088e6fe327fb3334a73ff190828d85713', + flutterVersion: '3.22.0', + displayName: 'v1.0.0', + platformStatuses: const {ReleasePlatform.android: ReleaseStatus.active}, + notes: 'some notes', + createdAt: DateTime(2023), + updatedAt: DateTime(2023), + ); + final release2 = Release( + id: 2, + appId: 'app-id', + version: '1.0.0+1', + flutterRevision: '83305b5088e6fe327fb3334a73ff190828d85713', + flutterVersion: '3.22.0', + displayName: 'v1.0.0', + platformStatuses: const {ReleasePlatform.android: ReleaseStatus.active}, + notes: 'some notes', + createdAt: DateTime(2023), + updatedAt: DateTime(2023), + ); + + expect(release1, equals(release1Copy)); + expect(release1, isNot(equals(release2))); + }); }); }