diff --git a/packages/flutterfire_cli/lib/src/common/prompts/dart_file_prompts.dart b/packages/flutterfire_cli/lib/src/common/prompts/dart_file_prompts.dart index 382a6b7b..96914925 100644 --- a/packages/flutterfire_cli/lib/src/common/prompts/dart_file_prompts.dart +++ b/packages/flutterfire_cli/lib/src/common/prompts/dart_file_prompts.dart @@ -12,10 +12,14 @@ String getFirebaseConfigurationFile({ final segments = removeForwardBackwardSlash(configurationFilePath).split('/'); if (segments.last.contains('.dart')) { - return path.join( - flutterAppPath, - removeForwardBackwardSlash(configurationFilePath), - ); + if (path.isAbsolute(configurationFilePath)) { + return configurationFilePath; + } else { + return path.join( + flutterAppPath, + removeForwardBackwardSlash(configurationFilePath), + ); + } } else { final configurationFilePath = promptInput( 'Enter a path for your FirebaseOptions file. It must be to a dart file. Example input: lib/firebase_options.dart', diff --git a/packages/flutterfire_cli/test/dart_file_prompts_test.dart b/packages/flutterfire_cli/test/dart_file_prompts_test.dart new file mode 100644 index 00000000..8867018c --- /dev/null +++ b/packages/flutterfire_cli/test/dart_file_prompts_test.dart @@ -0,0 +1,30 @@ +import 'package:flutterfire_cli/src/common/prompts/dart_file_prompts.dart'; +import 'package:test/test.dart'; + +void main() { + setUp(() async {}); + + tearDown(() {}); + + test('getFirebaseConfigurationFile concatenates app path and config file', () async { + const configFile = 'configfile.dart'; + const flutterAppPath = '/Users/username/Projects/flutter_app'; + + final firebaseConfigurationFile = + getFirebaseConfigurationFile(configurationFilePath: configFile, flutterAppPath: flutterAppPath); + + expect(firebaseConfigurationFile, equals('/Users/username/Projects/flutter_app/configfile.dart')); + }); + + test( + 'When configuration file path is absolute, getFirebaseConfigurationFile does not concatenate app path and config file', + () async { + const configFile = '/Users/username/Projects/test/configfile.dart'; + const flutterAppPath = '/Users/username/Projects/flutter_app'; + + final firebaseConfigurationFile = + getFirebaseConfigurationFile(configurationFilePath: configFile, flutterAppPath: flutterAppPath); + + expect(firebaseConfigurationFile, equals(configFile)); + }); +}