mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-03-03 10:36:47 +00:00
fix: allow plus plan to restore flames
This commit is contained in:
parent
f8242b003d
commit
09afd3dda0
3 changed files with 32 additions and 3 deletions
|
|
@ -10,8 +10,20 @@ enum SubscriptionPlan {
|
|||
Plus,
|
||||
}
|
||||
|
||||
bool isAdditionalAccount(SubscriptionPlan plan) {
|
||||
return plan == SubscriptionPlan.Free || plan == SubscriptionPlan.Plus;
|
||||
enum PremiumFeatures { RestoreFlames }
|
||||
|
||||
const Map<PremiumFeatures, List<SubscriptionPlan>> planPermissions = {
|
||||
PremiumFeatures.RestoreFlames: [
|
||||
SubscriptionPlan.Family,
|
||||
SubscriptionPlan.Plus,
|
||||
SubscriptionPlan.Tester,
|
||||
SubscriptionPlan.Pro,
|
||||
],
|
||||
};
|
||||
|
||||
bool isUserAllowed(SubscriptionPlan plan, PremiumFeatures feature) {
|
||||
final allowedPlans = planPermissions[feature] ?? [];
|
||||
return allowedPlans.contains(plan);
|
||||
}
|
||||
|
||||
bool isPayingUser(SubscriptionPlan plan) {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class _MaxFlameListTitleState extends State<MaxFlameListTitle> {
|
|||
}
|
||||
|
||||
Future<void> _restoreFlames() async {
|
||||
if (!isPayingUser(getCurrentPlan())) {
|
||||
if (!isUserAllowed(getCurrentPlan(), PremiumFeatures.RestoreFlames)) {
|
||||
await context.push(Routes.settingsSubscription);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
17
test/features/premium_features.dart
Normal file
17
test/features/premium_features.dart
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:twonly/src/services/subscription.service.dart';
|
||||
|
||||
void main() {
|
||||
group('testing subscription permissions', () {
|
||||
test('test if restore flames is allowed', () {
|
||||
expect(
|
||||
true,
|
||||
isUserAllowed(SubscriptionPlan.Plus, PremiumFeatures.RestoreFlames),
|
||||
);
|
||||
expect(
|
||||
false,
|
||||
isUserAllowed(SubscriptionPlan.Free, PremiumFeatures.RestoreFlames),
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
Loading…
Reference in a new issue