mirror of
https://github.com/immich-app/immich.git
synced 2025-12-19 01:11:07 +03:00
refactor: update bottom bar button type assertions for consistency and clarity
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import 'package:collection/collection.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:immich_mobile/constants/enums.dart';
|
import 'package:immich_mobile/constants/enums.dart';
|
||||||
@@ -980,19 +981,18 @@ void main() {
|
|||||||
buttonPosition: ButtonPosition.bottomBar,
|
buttonPosition: ButtonPosition.bottomBar,
|
||||||
);
|
);
|
||||||
|
|
||||||
final types = ActionButtonBuilder.getViewerBottomBarTypes(context);
|
const expectedTypes = [
|
||||||
|
ActionButtonType.share,
|
||||||
|
ActionButtonType.addTo,
|
||||||
|
ActionButtonType.openActivity,
|
||||||
|
ActionButtonType.likeActivity,
|
||||||
|
];
|
||||||
|
|
||||||
expect(types.length, 4);
|
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
|
||||||
expect(types[0], ActionButtonType.share);
|
|
||||||
expect(types[1], ActionButtonType.addTo);
|
|
||||||
expect(types[2], ActionButtonType.openActivity);
|
|
||||||
expect(types[3], ActionButtonType.likeActivity);
|
|
||||||
|
|
||||||
// Verify kebab menu does not contain bottom bar buttons
|
|
||||||
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(context);
|
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(context);
|
||||||
for (final type in types) {
|
|
||||||
expect(kebabTypes.contains(type), isFalse);
|
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);
|
||||||
}
|
expect(bottomBarTypes.any(kebabTypes.contains), isFalse);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return correct button types for local only asset', () {
|
test('should return correct button types for local only asset', () {
|
||||||
@@ -1010,21 +1010,20 @@ void main() {
|
|||||||
buttonPosition: ButtonPosition.bottomBar,
|
buttonPosition: ButtonPosition.bottomBar,
|
||||||
);
|
);
|
||||||
|
|
||||||
final types = ActionButtonBuilder.getViewerBottomBarTypes(context);
|
const expectedTypes = [
|
||||||
|
ActionButtonType.share,
|
||||||
|
ActionButtonType.upload,
|
||||||
|
ActionButtonType.editImage,
|
||||||
|
ActionButtonType.deleteLocal,
|
||||||
|
];
|
||||||
|
|
||||||
expect(types.length, 4);
|
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
|
||||||
expect(types[0], ActionButtonType.share);
|
|
||||||
expect(types[1], ActionButtonType.upload);
|
|
||||||
expect(types[2], ActionButtonType.editImage);
|
|
||||||
expect(types[3], ActionButtonType.deleteLocal);
|
|
||||||
|
|
||||||
// Verify kebab menu does not contain bottom bar buttons
|
|
||||||
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
|
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
|
||||||
context.copyWith(buttonPosition: ButtonPosition.kebabMenu),
|
context.copyWith(buttonPosition: ButtonPosition.kebabMenu),
|
||||||
);
|
);
|
||||||
for (final type in types) {
|
|
||||||
expect(kebabTypes.contains(type), isFalse);
|
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);
|
||||||
}
|
expect(bottomBarTypes.any(kebabTypes.contains), isFalse);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return correct button types for locked view', () {
|
test('should return correct button types for locked view', () {
|
||||||
@@ -1042,20 +1041,19 @@ void main() {
|
|||||||
buttonPosition: ButtonPosition.bottomBar,
|
buttonPosition: ButtonPosition.bottomBar,
|
||||||
);
|
);
|
||||||
|
|
||||||
final types = ActionButtonBuilder.getViewerBottomBarTypes(context);
|
const expectedTypes = [
|
||||||
|
ActionButtonType.share,
|
||||||
|
ActionButtonType.removeFromLockFolder,
|
||||||
|
ActionButtonType.deletePermanent,
|
||||||
|
];
|
||||||
|
|
||||||
expect(types.length, 3);
|
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
|
||||||
expect(types[0], ActionButtonType.share);
|
|
||||||
expect(types[1], ActionButtonType.removeFromLockFolder);
|
|
||||||
expect(types[2], ActionButtonType.deletePermanent);
|
|
||||||
|
|
||||||
// Verify kebab menu does not contain bottom bar buttons
|
|
||||||
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
|
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
|
||||||
context.copyWith(buttonPosition: ButtonPosition.kebabMenu),
|
context.copyWith(buttonPosition: ButtonPosition.kebabMenu),
|
||||||
);
|
);
|
||||||
for (final type in types) {
|
|
||||||
expect(kebabTypes.contains(type), isFalse);
|
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);
|
||||||
}
|
expect(bottomBarTypes.any(kebabTypes.contains), isFalse);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return correct button types for remote only asset', () {
|
test('should return correct button types for remote only asset', () {
|
||||||
@@ -1073,21 +1071,20 @@ void main() {
|
|||||||
buttonPosition: ButtonPosition.bottomBar,
|
buttonPosition: ButtonPosition.bottomBar,
|
||||||
);
|
);
|
||||||
|
|
||||||
final types = ActionButtonBuilder.getViewerBottomBarTypes(context);
|
const expectedTypes = [
|
||||||
|
ActionButtonType.share,
|
||||||
|
ActionButtonType.editImage,
|
||||||
|
ActionButtonType.addTo,
|
||||||
|
ActionButtonType.delete,
|
||||||
|
];
|
||||||
|
|
||||||
expect(types.length, 4);
|
final bottomBarTypes = ActionButtonBuilder.getViewerBottomBarTypes(context);
|
||||||
expect(types[0], ActionButtonType.share);
|
|
||||||
expect(types[1], ActionButtonType.editImage);
|
|
||||||
expect(types[2], ActionButtonType.addTo);
|
|
||||||
expect(types[3], ActionButtonType.delete);
|
|
||||||
|
|
||||||
// Verify kebab menu does not contain bottom bar buttons
|
|
||||||
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
|
final kebabTypes = ActionButtonBuilder.getViewerKebabMenuTypes(
|
||||||
context.copyWith(buttonPosition: ButtonPosition.kebabMenu),
|
context.copyWith(buttonPosition: ButtonPosition.kebabMenu),
|
||||||
);
|
);
|
||||||
for (final type in types) {
|
|
||||||
expect(kebabTypes.contains(type), isFalse);
|
expect(const ListEquality().equals(bottomBarTypes, expectedTypes), isTrue);
|
||||||
}
|
expect(bottomBarTypes.any(kebabTypes.contains), isFalse);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user