chore: make Release type equatable (#3117)

This commit is contained in:
Bryan Oltman
2025-05-28 16:27:53 -04:00
committed by GitHub
parent 3596bbf680
commit 15cb371b4b
16 changed files with 95 additions and 30 deletions
@@ -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),
),
@@ -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),
),
@@ -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),
);
@@ -388,7 +388,7 @@ void main() {
flutterRevision: flutterRevision,
flutterVersion: flutterVersion,
displayName: '1.2.3+1',
platformStatuses: {},
platformStatuses: const {},
createdAt: DateTime(2023),
updatedAt: DateTime(2023),
);
@@ -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),
);
@@ -400,7 +400,7 @@ void main() {
flutterRevision: flutterRevision,
flutterVersion: flutterVersion,
displayName: '1.2.3+1',
platformStatuses: {},
platformStatuses: const {},
createdAt: DateTime(2023),
updatedAt: DateTime(2023),
);
@@ -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),
);
@@ -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),
);
@@ -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),
);
@@ -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),
),
@@ -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';
@@ -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';
@@ -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<Object?> get props => [
id,
appId,
version,
flutterRevision,
flutterVersion,
displayName,
platformStatuses,
createdAt,
updatedAt,
notes,
];
}
@@ -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),
),
@@ -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,
},
@@ -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)));
});
});
}