diff --git a/very_good_core/hooks/lib/src/models/very_good_core_configuration.dart b/very_good_core/hooks/lib/src/models/very_good_core_configuration.dart index ef21723..fc24355 100644 --- a/very_good_core/hooks/lib/src/models/very_good_core_configuration.dart +++ b/very_good_core/hooks/lib/src/models/very_good_core_configuration.dart @@ -138,14 +138,18 @@ class VeryGoodCoreConfiguration extends Equatable { return VeryGoodCoreConfiguration( projectName: projectName, organizationName: organizationName, - iOsApplicationId: - applicationId != null ? AppleApplicationId(applicationId) : null, - macOsApplicationId: - applicationId != null ? AppleApplicationId(applicationId) : null, - windowsApplicationId: - applicationId != null ? WindowsApplicationId(applicationId) : null, - androidApplicationId: - applicationId != null ? AndroidApplicationId(applicationId) : null, + iOsApplicationId: applicationId == null || applicationId.isEmpty + ? null + : AppleApplicationId(applicationId), + macOsApplicationId: applicationId == null || applicationId.isEmpty + ? null + : AppleApplicationId(applicationId), + windowsApplicationId: applicationId == null || applicationId.isEmpty + ? null + : WindowsApplicationId(applicationId), + androidApplicationId: applicationId == null || applicationId.isEmpty + ? null + : AndroidApplicationId(applicationId), description: description, ); } diff --git a/very_good_core/hooks/test/src/models/very_good_core_configuration_test.dart b/very_good_core/hooks/test/src/models/very_good_core_configuration_test.dart index 3cbd06f..8871a26 100644 --- a/very_good_core/hooks/test/src/models/very_good_core_configuration_test.dart +++ b/very_good_core/hooks/test/src/models/very_good_core_configuration_test.dart @@ -103,6 +103,36 @@ void main() { ); }); + test('defaults id when empty', () { + final vars = { + 'project_name': 'very good app', + 'org_name': 'com.verygood', + 'application_id': '', + 'description': 'A Very Good App', + }; + + final configuration = VeryGoodCoreConfiguration.fromHookVars(vars); + expect( + configuration, + equals( + VeryGoodCoreConfiguration( + projectName: 'very good app', + organizationName: 'com.verygood', + description: 'A Very Good App', + windowsApplicationId: + WindowsApplicationId('com.verygood.very-good-app'), + iOsApplicationId: + AppleApplicationId('com.verygood.very-good-app'), + macOsApplicationId: + AppleApplicationId('com.verygood.very-good-app'), + androidApplicationId: + AndroidApplicationId('com.verygood.very_good_app'), + androidNamespace: AndroidNamespace('com.verygood.very_good_app'), + ), + ), + ); + }); + group('throws $ArgumentError', () { test('when "project_name" is not a String?', () { final vars = {'project_name': 42};