diff --git a/packages/shorebird_cli/test/src/artifact_manager_test.dart b/packages/shorebird_cli/test/src/artifact_manager_test.dart index ef0b4ccd6..99e6e4077 100644 --- a/packages/shorebird_cli/test/src/artifact_manager_test.dart +++ b/packages/shorebird_cli/test/src/artifact_manager_test.dart @@ -763,6 +763,33 @@ void main() { ); }); }); + + group('when a flavor is provided', () { + const flavor = 'my-flavor'; + late Directory appDirectory; + + setUp(() { + appDirectory = Directory( + p.join( + projectRoot.path, + 'build', + 'macos', + 'Build', + 'Products', + 'Release-$flavor', + 'my.app', + ), + )..createSync(recursive: true); + }); + + test('includes flavor in lookup path', () async { + final result = runWithOverrides( + () => artifactManager.getMacOSAppDirectory(flavor: flavor), + ); + + expect(result!.path, equals(appDirectory.path)); + }); + }); }); group('getIosAppDirectory', () { diff --git a/packages/shorebird_cli/test/src/commands/patch/macos_patcher_test.dart b/packages/shorebird_cli/test/src/commands/patch/macos_patcher_test.dart index ac6bf0aad..52d288911 100644 --- a/packages/shorebird_cli/test/src/commands/patch/macos_patcher_test.dart +++ b/packages/shorebird_cli/test/src/commands/patch/macos_patcher_test.dart @@ -698,6 +698,39 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''', ); }); + group('when flavor is provided', () { + const flavor = 'my-flavor'; + + setUp(() { + patcher = MacosPatcher( + argParser: argParser, + argResults: argResults, + flavor: flavor, + target: null, + ); + + when( + () => artifactManager.getMacOSAppDirectory(flavor: flavor), + ).thenReturn(appDirectory); + }); + + test('builds with flavor', () async { + await runWithOverrides(patcher.buildPatchArtifact); + verify( + () => artifactBuilder.buildMacos( + codesign: any(named: 'codesign'), + args: any(named: 'args'), + flavor: flavor, + target: any(named: 'target'), + buildProgress: any(named: 'buildProgress'), + ), + ).called(1); + verify( + () => artifactManager.getMacOSAppDirectory(flavor: flavor), + ).called(1); + }); + }); + group('when --split-debug-info is provided', () { final tempDir = Directory.systemTemp.createTempSync(); final splitDebugInfoPath = p.join(tempDir.path, 'symbols'); @@ -1295,6 +1328,38 @@ For more information see: ${supportedFlutterVersionsUrl.toLink()}''', ); }); + group('when flavor is provided', () { + const flavor = 'my-flavor'; + + setUp(() { + patcher = MacosPatcher( + argParser: argParser, + argResults: argResults, + flavor: flavor, + target: null, + ); + + when( + () => artifactManager.getMacOSAppDirectory(flavor: flavor), + ).thenReturn(appDirectory); + }); + + test('finds app directory corresponding to flavor', () async { + await runWithOverrides( + () => patcher.createPatchArtifacts( + appId: appId, + releaseId: releaseId, + releaseArtifact: releaseArtifactFile, + supplementArtifact: supplementArtifactFile, + ), + ); + + verify( + () => artifactManager.getMacOSAppDirectory(flavor: flavor), + ).called(1); + }); + }); + group('when class table link info is not present', () { setUp(() { when( diff --git a/packages/shorebird_cli/test/src/commands/release/macos_releaser_test.dart b/packages/shorebird_cli/test/src/commands/release/macos_releaser_test.dart index ea2a4e144..47fb45b83 100644 --- a/packages/shorebird_cli/test/src/commands/release/macos_releaser_test.dart +++ b/packages/shorebird_cli/test/src/commands/release/macos_releaser_test.dart @@ -295,6 +295,37 @@ To change the version of this release, change your app's version in your pubspec ).thenAnswer((_) async => flutterVersionAndRevision); }); + group('when flavor is provided', () { + const flavor = 'myFlavor'; + + setUp(() { + releaser = MacosReleaser( + argResults: argResults, + flavor: flavor, + target: null, + ); + + when( + () => artifactManager.getMacOSAppDirectory(flavor: flavor), + ).thenReturn(appDirectory); + }); + + test('forwards flavor to artifact builder', () async { + await runWithOverrides(releaser.buildReleaseArtifacts); + + verify( + () => artifactBuilder.buildMacos( + flavor: flavor, + args: any(named: 'args'), + buildProgress: any(named: 'buildProgress'), + ), + ).called(1); + verify( + () => artifactManager.getMacOSAppDirectory(flavor: flavor), + ).called(1); + }); + }); + group('when not codesigning', () { setUp(() { when(() => argResults['codesign']).thenReturn(false);