feat: adding local file logging to the cli (#2034)
Co-authored-by: Felix Angelov <felix@shorebird.dev>
This commit is contained in:
+2
-1
@@ -1,4 +1,5 @@
|
||||
# Cached files
|
||||
bin/cache/
|
||||
# Coverage directories used by Flutter & Dart tests
|
||||
coverage/
|
||||
coverage/
|
||||
logs/
|
||||
|
||||
@@ -220,10 +220,20 @@ Run ${lightCyan.wrap('shorebird upgrade')} to upgrade.''');
|
||||
}
|
||||
|
||||
if (exitCode == ExitCode.software.code && logger.level != Level.verbose) {
|
||||
final fileAnIssue = link(
|
||||
uri: Uri.parse(
|
||||
'https://github.com/shorebirdtech/shorebird/issues/new/choose',
|
||||
),
|
||||
message: 'file an issue',
|
||||
);
|
||||
logger.info(
|
||||
'''
|
||||
|
||||
If you aren't sure why this command failed, re-run with the ${lightCyan.wrap('--verbose')} flag to see more information.''',
|
||||
If you aren't sure why this command failed, re-run with the ${lightCyan.wrap('--verbose')} flag to see more information.
|
||||
|
||||
You can also $fileAnIssue if you think this is a bug. Please include the following log file in your report:
|
||||
${logger.logFile.absolute.path}
|
||||
''',
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:shorebird_cli/src/artifact_builder.dart';
|
||||
import 'package:shorebird_cli/src/code_push_client_wrapper.dart';
|
||||
import 'package:shorebird_cli/src/commands/release_new/releaser.dart';
|
||||
import 'package:shorebird_cli/src/commands/release_new/release_new.dart';
|
||||
import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
|
||||
@@ -1,8 +1,103 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:scoped/scoped.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
|
||||
/// A reference to a [Logger] instance.
|
||||
final loggerRef = create(Logger.new);
|
||||
final loggerRef = create(ShorebirdLogger.new);
|
||||
|
||||
/// The [Logger] instance available in the current zone.
|
||||
Logger get logger => read(loggerRef);
|
||||
ShorebirdLogger get logger => read(loggerRef);
|
||||
|
||||
class ShorebirdLogger extends Logger {
|
||||
static const _logFileName = 'shorebird.log';
|
||||
|
||||
late final File logFile = (() {
|
||||
final timestamp = DateTime.now().millisecondsSinceEpoch;
|
||||
|
||||
final file = File(
|
||||
p.join(
|
||||
shorebirdEnv.shorebirdRoot.path,
|
||||
'logs',
|
||||
'${timestamp}_$_logFileName',
|
||||
),
|
||||
);
|
||||
|
||||
if (!file.existsSync()) {
|
||||
file.createSync(recursive: true);
|
||||
}
|
||||
|
||||
return file;
|
||||
})();
|
||||
|
||||
void _logToFile(String level, String message, {required LogStyle style}) {
|
||||
final styledMessage = style(message);
|
||||
|
||||
logFile.writeAsStringSync(
|
||||
'${DateTime.now().toIso8601String()} [$level] $styledMessage\n',
|
||||
mode: FileMode.append,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void info(String? message, {LogStyle? style}) {
|
||||
super.info(message, style: style);
|
||||
_logToFile(
|
||||
'INFO',
|
||||
message ?? '',
|
||||
style: style ?? theme.info,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void detail(String? message, {LogStyle? style}) {
|
||||
super.detail(message, style: style);
|
||||
_logToFile(
|
||||
'DETAIL',
|
||||
message ?? '',
|
||||
style: style ?? theme.detail,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void warn(String? message, {String tag = 'WARN', LogStyle? style}) {
|
||||
super.warn(message, tag: tag, style: style);
|
||||
_logToFile(
|
||||
'WARN',
|
||||
message ?? '',
|
||||
style: style ?? theme.warn,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void success(String? message, {LogStyle? style}) {
|
||||
super.success(message, style: style);
|
||||
_logToFile(
|
||||
'SUCCESS',
|
||||
message ?? '',
|
||||
style: style ?? theme.success,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void alert(String? message, {LogStyle? style}) {
|
||||
super.alert(message, style: style);
|
||||
_logToFile(
|
||||
'ALERT',
|
||||
message ?? '',
|
||||
style: style ?? theme.alert,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void err(String? message, {LogStyle? style}) {
|
||||
super.err(message, style: style);
|
||||
_logToFile(
|
||||
'ERROR',
|
||||
message ?? '',
|
||||
style: style ?? theme.err,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ import 'mocks.dart';
|
||||
void main() {
|
||||
group(ArtifactBuilder, () {
|
||||
late Ios ios;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late ShorebirdAndroidArtifacts shorebirdAndroidArtifacts;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
@@ -51,7 +51,7 @@ void main() {
|
||||
setUp(() {
|
||||
buildProcessResult = MockProcessResult();
|
||||
ios = MockIos();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
pubGetProcessResult = MockProcessResult();
|
||||
shorebirdAndroidArtifacts = MockShorebirdAndroidArtifacts();
|
||||
|
||||
@@ -22,7 +22,7 @@ void main() {
|
||||
late Directory cacheArtifactDirectory;
|
||||
late http.Client httpClient;
|
||||
late Directory projectRoot;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdProcessResult patchProcessResult;
|
||||
late ShorebirdProcess shorebirdProcess;
|
||||
@@ -49,7 +49,7 @@ void main() {
|
||||
cacheArtifactDirectory = Directory.systemTemp.createTempSync();
|
||||
cache = MockCache();
|
||||
httpClient = MockHttpClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
patchProcessResult = MockProcessResult();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
|
||||
@@ -6,7 +6,6 @@ import 'package:googleapis_auth/auth_io.dart';
|
||||
import 'package:googleapis_auth/googleapis_auth.dart' as oauth2;
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:jwt/jwt.dart' show Jwt, JwtPayload;
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:platform/platform.dart';
|
||||
@@ -142,7 +141,7 @@ void main() {
|
||||
late String credentialsDir;
|
||||
late http.Client httpClient;
|
||||
late CodePushClient codePushClient;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Auth auth;
|
||||
late Platform platform;
|
||||
|
||||
@@ -198,7 +197,7 @@ void main() {
|
||||
credentialsDir = Directory.systemTemp.createTempSync().path;
|
||||
httpClient = MockHttpClient();
|
||||
codePushClient = MockCodePushClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
|
||||
when(() => codePushClient.getCurrentUser()).thenAnswer((_) async => user);
|
||||
|
||||
@@ -26,7 +26,7 @@ void main() {
|
||||
late ArtifactManager artifactManager;
|
||||
late Directory shorebirdRoot;
|
||||
late http.Client httpClient;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Platform platform;
|
||||
late Process chmodProcess;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
@@ -70,7 +70,7 @@ void main() {
|
||||
setUp(() {
|
||||
artifactManager = MockArtifactManager();
|
||||
httpClient = MockHttpClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
chmodProcess = MockProcess();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
|
||||
@@ -27,7 +27,7 @@ void main() {
|
||||
group('scoped', () {
|
||||
late Auth auth;
|
||||
late http.Client httpClient;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
@@ -40,7 +40,7 @@ void main() {
|
||||
setUp(() {
|
||||
auth = MockAuth();
|
||||
httpClient = MockHttpClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
@@ -142,7 +142,7 @@ void main() {
|
||||
);
|
||||
|
||||
late CodePushClient codePushClient;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Progress progress;
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late Platform platform;
|
||||
@@ -168,7 +168,7 @@ void main() {
|
||||
|
||||
setUp(() {
|
||||
codePushClient = MockCodePushClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
|
||||
@@ -20,7 +20,7 @@ void main() {
|
||||
const flutterRevision = 'test-flutter-revision';
|
||||
const flutterVersion = '1.2.3';
|
||||
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Platform platform;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdFlutter shorebirdFlutter;
|
||||
@@ -41,12 +41,16 @@ void main() {
|
||||
}
|
||||
|
||||
setUp(() {
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
shorebirdFlutter = MockShorebirdFlutter();
|
||||
shorebirdVersion = MockShorebirdVersion();
|
||||
when(() => logger.level).thenReturn(Level.info);
|
||||
final logFile = MockFile();
|
||||
when(() => logger.logFile).thenReturn(logFile);
|
||||
when(() => logFile.absolute).thenReturn(logFile);
|
||||
when(() => logFile.path).thenReturn('test.log');
|
||||
when(
|
||||
() => shorebirdEnv.shorebirdEngineRevision,
|
||||
).thenReturn(shorebirdEngineRevision);
|
||||
|
||||
@@ -19,7 +19,7 @@ void main() {
|
||||
|
||||
late ArgResults argResults;
|
||||
late ArtifactBuilder artifactBuilder;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Progress progress;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdValidator shorebirdValidator;
|
||||
@@ -40,7 +40,7 @@ void main() {
|
||||
setUp(() {
|
||||
argResults = MockArgResults();
|
||||
artifactBuilder = MockArtifactBuilder();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
progress = MockProgress();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
shorebirdValidator = MockShorebirdValidator();
|
||||
|
||||
@@ -21,7 +21,7 @@ void main() {
|
||||
late ArgResults argResults;
|
||||
late ArtifactBuilder artifactBuilder;
|
||||
late Doctor doctor;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ShorebirdFlutterValidator flutterValidator;
|
||||
late ShorebirdValidator shorebirdValidator;
|
||||
late BuildApkCommand command;
|
||||
@@ -47,7 +47,7 @@ void main() {
|
||||
argResults = MockArgResults();
|
||||
artifactBuilder = MockArtifactBuilder();
|
||||
doctor = MockDoctor();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
flutterValidator = MockShorebirdFlutterValidator();
|
||||
shorebirdValidator = MockShorebirdValidator();
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ void main() {
|
||||
late ArgResults argResults;
|
||||
late ArtifactBuilder artifactBuilder;
|
||||
late Doctor doctor;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late BuildAppBundleCommand command;
|
||||
late ShorebirdFlutterValidator flutterValidator;
|
||||
late ShorebirdValidator shorebirdValidator;
|
||||
@@ -50,7 +50,7 @@ void main() {
|
||||
argResults = MockArgResults();
|
||||
artifactBuilder = MockArtifactBuilder();
|
||||
doctor = MockDoctor();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
flutterValidator = MockShorebirdFlutterValidator();
|
||||
shorebirdValidator = MockShorebirdValidator();
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ void main() {
|
||||
late ArgResults argResults;
|
||||
late Doctor doctor;
|
||||
late Ios ios;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late ShorebirdProcessResult buildProcessResult;
|
||||
late ShorebirdProcessResult flutterPubGetProcessResult;
|
||||
@@ -57,7 +57,7 @@ void main() {
|
||||
argResults = MockArgResults();
|
||||
doctor = MockDoctor();
|
||||
ios = MockIos();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
buildProcessResult = MockProcessResult();
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ import '../../mocks.dart';
|
||||
void main() {
|
||||
group('cache clean', () {
|
||||
late Cache cache;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
@@ -36,7 +36,7 @@ void main() {
|
||||
|
||||
setUp(() {
|
||||
cache = MockCache();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
|
||||
@@ -26,7 +26,7 @@ void main() {
|
||||
late AndroidSdk androidSdk;
|
||||
late Doctor doctor;
|
||||
late Java java;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdFlutter shorebirdFlutter;
|
||||
late Validator validator;
|
||||
@@ -53,7 +53,7 @@ void main() {
|
||||
androidSdk = MockAndroidSdk();
|
||||
doctor = MockDoctor();
|
||||
java = MockJava();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
shorebirdFlutter = MockShorebirdFlutter();
|
||||
validator = MockValidator();
|
||||
|
||||
+2
-2
@@ -13,7 +13,7 @@ import '../../../mocks.dart';
|
||||
void main() {
|
||||
group(FlutterVersionsListCommand, () {
|
||||
late Progress progress;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ShorebirdFlutter shorebirdFlutter;
|
||||
late FlutterVersionsListCommand command;
|
||||
|
||||
@@ -29,7 +29,7 @@ void main() {
|
||||
|
||||
setUp(() {
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
shorebirdFlutter = MockShorebirdFlutter();
|
||||
command = runWithOverrides(FlutterVersionsListCommand.new);
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ environment:
|
||||
late ShorebirdYaml shorebirdYaml;
|
||||
late Directory projectRoot;
|
||||
late File pubspecYamlFile;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late PubspecEditor pubspecEditor;
|
||||
@@ -84,7 +84,7 @@ environment:
|
||||
pubspecYamlFile = MockFile();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
pubspecEditor = MockPubspecEditor();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
|
||||
@@ -18,7 +18,7 @@ void main() {
|
||||
late ArgResults results;
|
||||
late Auth auth;
|
||||
late http.Client httpClient;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late LoginCiCommand command;
|
||||
|
||||
R runWithOverrides<R>(R Function() body) {
|
||||
@@ -38,7 +38,7 @@ void main() {
|
||||
setUp(() {
|
||||
auth = MockAuth();
|
||||
httpClient = MockHttpClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
results = MockArgResults();
|
||||
|
||||
when(() => results.wasParsed('provider')).thenReturn(false);
|
||||
|
||||
@@ -22,7 +22,7 @@ void main() {
|
||||
late Auth auth;
|
||||
late http.Client httpClient;
|
||||
late Directory applicationConfigHome;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late LoginCommand command;
|
||||
|
||||
R runWithOverrides<R>(R Function() body) {
|
||||
@@ -44,7 +44,7 @@ void main() {
|
||||
results = MockArgResults();
|
||||
auth = MockAuth();
|
||||
httpClient = MockHttpClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
|
||||
when(() => results.wasParsed('provider')).thenReturn(false);
|
||||
when(() => results['provider']).thenReturn(null);
|
||||
|
||||
@@ -12,7 +12,7 @@ import '../mocks.dart';
|
||||
void main() {
|
||||
group(LogoutCommand, () {
|
||||
late Auth auth;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late http.Client httpClient;
|
||||
late LogoutCommand command;
|
||||
|
||||
@@ -29,7 +29,7 @@ void main() {
|
||||
setUp(() {
|
||||
auth = MockAuth();
|
||||
httpClient = MockHttpClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
|
||||
when(() => auth.client).thenReturn(httpClient);
|
||||
when(() => logger.progress(any())).thenReturn(MockProgress());
|
||||
|
||||
@@ -98,7 +98,7 @@ void main() {
|
||||
late PatchDiffChecker patchDiffChecker;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ShorebirdProcessResult flutterBuildProcessResult;
|
||||
late ShorebirdProcessResult flutterPubGetProcessResult;
|
||||
late http.Client httpClient;
|
||||
@@ -186,7 +186,7 @@ void main() {
|
||||
patchDiffChecker = MockPatchDiffChecker();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
flutterBuildProcessResult = MockProcessResult();
|
||||
flutterPubGetProcessResult = MockProcessResult();
|
||||
httpClient = MockHttpClient();
|
||||
|
||||
@@ -112,7 +112,7 @@ flutter:
|
||||
late PatchDiffChecker patchDiffChecker;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdProcessResult flutterBuildProcessResult;
|
||||
late ShorebirdProcessResult flutterPubGetProcessResult;
|
||||
@@ -210,7 +210,7 @@ flutter:
|
||||
patchDiffChecker = MockPatchDiffChecker();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
flutterBuildProcessResult = MockProcessResult();
|
||||
flutterPubGetProcessResult = MockProcessResult();
|
||||
httpClient = MockHttpClient();
|
||||
|
||||
@@ -163,7 +163,7 @@ flutter:
|
||||
late Ios ios;
|
||||
late IosArchiveDiffer archiveDiffer;
|
||||
late Progress progress;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late PatchDiffChecker patchDiffChecker;
|
||||
late Platform platform;
|
||||
@@ -318,7 +318,7 @@ flutter:
|
||||
..createSync(recursive: true);
|
||||
archiveDiffer = MockIosArchiveDiffer();
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
aotBuildProcessResult = MockProcessResult();
|
||||
flutterBuildProcessResult = MockProcessResult();
|
||||
|
||||
+2
-2
@@ -119,7 +119,7 @@ flutter:
|
||||
late Platform platform;
|
||||
late Auth auth;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Progress progress;
|
||||
late ShorebirdProcessResult aotBuildProcessResult;
|
||||
late ShorebirdProcessResult flutterBuildProcessResult;
|
||||
@@ -251,7 +251,7 @@ flutter:
|
||||
)..createSync(recursive: true);
|
||||
auth = MockAuth();
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
aotBuildProcessResult = MockProcessResult();
|
||||
flutterBuildProcessResult = MockProcessResult();
|
||||
flutterPubGetProcessResult = MockProcessResult();
|
||||
|
||||
@@ -37,7 +37,7 @@ void main() {
|
||||
late ArtifactManager artifactManager;
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late Directory projectRoot;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
@@ -96,7 +96,7 @@ void main() {
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
shorebirdFlutter = MockShorebirdFlutter();
|
||||
shorebirdValidator = MockShorebirdValidator();
|
||||
|
||||
@@ -38,7 +38,7 @@ void main() {
|
||||
late Doctor doctor;
|
||||
late Platform platform;
|
||||
late Directory projectRoot;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Progress progress;
|
||||
late ShorebirdFlutterValidator flutterValidator;
|
||||
late ShorebirdProcess shorebirdProcess;
|
||||
@@ -106,7 +106,7 @@ void main() {
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
flutterValidator = MockShorebirdFlutterValidator();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
|
||||
@@ -76,7 +76,7 @@ void main() {
|
||||
late ArtifactBuilder artifactBuilder;
|
||||
late ArtifactManager artifactManager;
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late PatchDiffChecker patchDiffChecker;
|
||||
late Patcher patcher;
|
||||
late Progress progress;
|
||||
@@ -120,7 +120,7 @@ void main() {
|
||||
artifactBuilder = MockArtifactBuilder();
|
||||
artifactManager = MockArtifactManager();
|
||||
codePushClientWrapper = MockCodePushClientWrapper();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
progress = MockProgress();
|
||||
patchDiffChecker = MockPatchDiffChecker();
|
||||
patcher = MockPatcher();
|
||||
|
||||
@@ -43,7 +43,7 @@ void main() {
|
||||
late Auth auth;
|
||||
late Cache cache;
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Directory previewDirectory;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
@@ -102,7 +102,7 @@ void main() {
|
||||
auth = MockAuth();
|
||||
cache = MockCache();
|
||||
codePushClientWrapper = MockCodePushClientWrapper();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
previewDirectory = Directory.systemTemp.createTempSync();
|
||||
progress = MockProgress();
|
||||
|
||||
@@ -70,7 +70,7 @@ void main() {
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ShorebirdProcessResult flutterBuildProcessResult;
|
||||
late ShorebirdProcessResult flutterPubGetProcessResult;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
@@ -141,7 +141,7 @@ void main() {
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
flutterBuildProcessResult = MockProcessResult();
|
||||
flutterPubGetProcessResult = MockProcessResult();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
|
||||
@@ -76,7 +76,7 @@ void main() {
|
||||
late Auth auth;
|
||||
late Cache cache;
|
||||
late Java java;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late Progress progress;
|
||||
late ShorebirdProcessResult flutterAppbundleBuildProcessResult;
|
||||
@@ -139,7 +139,7 @@ void main() {
|
||||
cache = MockCache();
|
||||
java = MockJava();
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
flutterAppbundleBuildProcessResult = MockProcessResult();
|
||||
flutterApkBuildProcessResult = MockProcessResult();
|
||||
flutterPubGetProcessResult = MockProcessResult();
|
||||
|
||||
@@ -120,7 +120,7 @@ flutter:
|
||||
late Platform platform;
|
||||
late Auth auth;
|
||||
late Progress progress;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Ios ios;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late ShorebirdProcessResult flutterBuildProcessResult;
|
||||
@@ -205,7 +205,7 @@ flutter:
|
||||
auth = MockAuth();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
ios = MockIos();
|
||||
flutterBuildProcessResult = MockProcessResult();
|
||||
flutterPubGetProcessResult = MockProcessResult();
|
||||
|
||||
+2
-2
@@ -77,7 +77,7 @@ flutter:
|
||||
late Platform platform;
|
||||
late Auth auth;
|
||||
late Progress progress;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late ShorebirdProcessResult flutterBuildProcessResult;
|
||||
late ShorebirdProcessResult flutterPubGetProcessResult;
|
||||
@@ -148,7 +148,7 @@ flutter:
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
auth = MockAuth();
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
flutterBuildProcessResult = MockProcessResult();
|
||||
flutterPubGetProcessResult = MockProcessResult();
|
||||
|
||||
@@ -36,7 +36,7 @@ void main() {
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late Platform platform;
|
||||
late Directory projectRoot;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late Progress progress;
|
||||
late ShorebirdProcess shorebirdProcess;
|
||||
@@ -82,7 +82,7 @@ void main() {
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
shorebirdFlutter = MockShorebirdFlutter();
|
||||
|
||||
@@ -36,7 +36,7 @@ void main() {
|
||||
late Doctor doctor;
|
||||
late Platform platform;
|
||||
late Directory projectRoot;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late Progress progress;
|
||||
late ShorebirdFlutterValidator flutterValidator;
|
||||
@@ -85,7 +85,7 @@ void main() {
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
flutterValidator = MockShorebirdFlutterValidator();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
|
||||
+2
-2
@@ -38,7 +38,7 @@ void main() {
|
||||
late Doctor doctor;
|
||||
late Platform platform;
|
||||
late Directory projectRoot;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late Progress progress;
|
||||
late ShorebirdFlutterValidator flutterValidator;
|
||||
@@ -87,7 +87,7 @@ void main() {
|
||||
platform = MockPlatform();
|
||||
progress = MockProgress();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
flutterValidator = MockShorebirdFlutterValidator();
|
||||
|
||||
@@ -40,7 +40,7 @@ void main() {
|
||||
late Doctor doctor;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Ios ios;
|
||||
late OperatingSystemInterface operatingSystemInterface;
|
||||
late ShorebirdFlutterValidator flutterValidator;
|
||||
@@ -90,7 +90,7 @@ void main() {
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
operatingSystemInterface = MockOperatingSystemInterface();
|
||||
progress = MockProgress();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
ios = MockIos();
|
||||
flutterValidator = MockShorebirdFlutterValidator();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
|
||||
@@ -45,7 +45,7 @@ void main() {
|
||||
late CodePushClientWrapper codePushClientWrapper;
|
||||
late Directory shorebirdRoot;
|
||||
late Directory projectRoot;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Progress progress;
|
||||
late Releaser releaser;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
@@ -78,7 +78,7 @@ void main() {
|
||||
setUp(() {
|
||||
argResults = MockArgResults();
|
||||
codePushClientWrapper = MockCodePushClientWrapper();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
progress = MockProgress();
|
||||
releaser = MockReleaser();
|
||||
shorebirdRoot = Directory.systemTemp.createTempSync();
|
||||
|
||||
@@ -20,7 +20,7 @@ void main() {
|
||||
group(RunCommand, () {
|
||||
late ArgResults argResults;
|
||||
late Doctor doctor;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Process process;
|
||||
late ShorebirdProcess shorebirdProcess;
|
||||
late IOSink ioSink;
|
||||
@@ -47,7 +47,7 @@ void main() {
|
||||
setUp(() {
|
||||
argResults = MockArgResults();
|
||||
doctor = MockDoctor();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
process = MockProcess();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
ioSink = MockIOSink();
|
||||
|
||||
@@ -15,7 +15,7 @@ void main() {
|
||||
const newerShorebirdRevision = 'revision-2';
|
||||
|
||||
group('upgrade', () {
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ShorebirdVersion shorebirdVersion;
|
||||
late UpgradeCommand command;
|
||||
|
||||
@@ -33,7 +33,7 @@ void main() {
|
||||
final progress = MockProgress();
|
||||
final progressLogs = <String>[];
|
||||
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
shorebirdVersion = MockShorebirdVersion();
|
||||
command = runWithOverrides(UpgradeCommand.new);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ void main() {
|
||||
message: 'error',
|
||||
);
|
||||
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Progress progress;
|
||||
late Validator noIssuesValidator;
|
||||
late Validator warningValidator;
|
||||
@@ -36,7 +36,7 @@ void main() {
|
||||
}
|
||||
|
||||
setUp(() {
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
progress = MockProgress();
|
||||
noIssuesValidator = MockValidator();
|
||||
warningValidator = MockValidator();
|
||||
|
||||
@@ -309,7 +309,7 @@ void main() {
|
||||
|
||||
group('installAndLaunchApp', () {
|
||||
late IDeviceSysLog idevicesyslog;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Progress progress;
|
||||
|
||||
late String deviceListJsonOutput;
|
||||
@@ -329,7 +329,7 @@ void main() {
|
||||
|
||||
setUp(() {
|
||||
idevicesyslog = MockIDeviceSysLog();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
progress = MockProgress();
|
||||
|
||||
when(() => idevicesyslog.startLogger(device: any(named: 'device')))
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:scoped/scoped.dart';
|
||||
@@ -22,7 +21,7 @@ void main() {
|
||||
late Directory flutterDirectory;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdProcess process;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Process loggerProcess;
|
||||
late String idevicesyslogPath;
|
||||
late IDeviceSysLog idevicesyslog;
|
||||
@@ -44,7 +43,7 @@ void main() {
|
||||
device = MockAppleDevice();
|
||||
flutterDirectory = Directory.systemTemp.createTempSync();
|
||||
process = MockShorebirdProcess();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
loggerProcess = MockProcess();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
idevicesyslog = IDeviceSysLog();
|
||||
|
||||
@@ -18,7 +18,7 @@ import '../mocks.dart';
|
||||
|
||||
void main() {
|
||||
group(IOSDeploy, () {
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Platform platform;
|
||||
late Progress progress;
|
||||
late ShorebirdProcess shorebirdProcess;
|
||||
@@ -40,7 +40,7 @@ void main() {
|
||||
}
|
||||
|
||||
setUp(() {
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
shorebirdProcess = MockShorebirdProcess();
|
||||
process = MockProcess();
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:scoped/scoped.dart';
|
||||
import 'package:shorebird_cli/src/http_client/http_client.dart';
|
||||
@@ -14,7 +13,7 @@ import '../mocks.dart';
|
||||
void main() {
|
||||
group(LoggingClient, () {
|
||||
late http.Client httpClient;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late LoggingClient loggingClient;
|
||||
|
||||
R runWithOverrides<R>(R Function() body) {
|
||||
@@ -32,7 +31,7 @@ void main() {
|
||||
|
||||
setUp(() {
|
||||
httpClient = MockHttpClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
loggingClient = LoggingClient(httpClient: httpClient);
|
||||
|
||||
when(() => httpClient.send(any())).thenAnswer(
|
||||
|
||||
@@ -0,0 +1,215 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:scoped/scoped.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/shorebird_env.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
import 'mocks.dart';
|
||||
|
||||
void main() {
|
||||
group('ShorebirdLogger', () {
|
||||
late Directory shorebirdRootDir;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdLogger shorebirdLogger;
|
||||
|
||||
setUp(() {
|
||||
shorebirdRootDir = Directory.systemTemp.createTempSync('shorebird_logs');
|
||||
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
when(() => shorebirdEnv.shorebirdRoot).thenReturn(shorebirdRootDir);
|
||||
|
||||
shorebirdLogger = ShorebirdLogger();
|
||||
});
|
||||
|
||||
String readLogFile() {
|
||||
final logFile = Directory(
|
||||
p.join(shorebirdRootDir.path, 'logs'),
|
||||
).listSync().first;
|
||||
return File(logFile.path).readAsStringSync();
|
||||
}
|
||||
|
||||
test('can be instantiated', () {
|
||||
expect(
|
||||
ShorebirdLogger.new,
|
||||
returnsNormally,
|
||||
);
|
||||
});
|
||||
|
||||
test('info', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.info('message');
|
||||
expect(readLogFile(), contains('[INFO]'));
|
||||
expect(readLogFile(), contains('message'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('info with style', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.info(
|
||||
'message',
|
||||
style: (message) => message?.toUpperCase(),
|
||||
);
|
||||
expect(readLogFile(), contains('[INFO]'));
|
||||
expect(readLogFile(), contains('MESSAGE'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('detail', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.detail('message');
|
||||
expect(readLogFile(), contains('[DETAIL]'));
|
||||
expect(readLogFile(), contains('message'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('detail with style', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.detail(
|
||||
'message',
|
||||
style: (message) => message?.toUpperCase(),
|
||||
);
|
||||
expect(readLogFile(), contains('[DETAIL]'));
|
||||
expect(readLogFile(), contains('MESSAGE'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('warn', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.warn('message');
|
||||
expect(readLogFile(), contains('[WARN]'));
|
||||
expect(readLogFile(), contains('message'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('warn with style', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.warn(
|
||||
'message',
|
||||
style: (message) => message?.toUpperCase(),
|
||||
);
|
||||
expect(readLogFile(), contains('[WARN]'));
|
||||
expect(readLogFile(), contains('MESSAGE'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('success', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.success('message');
|
||||
expect(readLogFile(), contains('[SUCCESS]'));
|
||||
expect(readLogFile(), contains('message'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('success with style', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.success(
|
||||
'message',
|
||||
style: (message) => message?.toUpperCase(),
|
||||
);
|
||||
expect(readLogFile(), contains('[SUCCESS]'));
|
||||
expect(readLogFile(), contains('MESSAGE'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('alert', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.alert('message');
|
||||
expect(readLogFile(), contains('[ALERT]'));
|
||||
expect(readLogFile(), contains('message'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('alert with style', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.alert(
|
||||
'message',
|
||||
style: (message) => message?.toUpperCase(),
|
||||
);
|
||||
expect(readLogFile(), contains('[ALERT]'));
|
||||
expect(readLogFile(), contains('MESSAGE'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('err', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.err('message');
|
||||
expect(readLogFile(), contains('[ERROR]'));
|
||||
expect(readLogFile(), contains('message'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('err with style', () {
|
||||
runScoped(
|
||||
() {
|
||||
shorebirdLogger.err(
|
||||
'message',
|
||||
style: (message) => message?.toUpperCase(),
|
||||
);
|
||||
expect(readLogFile(), contains('[ERROR]'));
|
||||
expect(readLogFile(), contains('MESSAGE'));
|
||||
},
|
||||
values: {
|
||||
shorebirdEnvRef.overrideWith(() => shorebirdEnv),
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -23,6 +23,7 @@ import 'package:shorebird_cli/src/doctor.dart';
|
||||
import 'package:shorebird_cli/src/engine_config.dart';
|
||||
import 'package:shorebird_cli/src/executables/devicectl/apple_device.dart';
|
||||
import 'package:shorebird_cli/src/executables/executables.dart';
|
||||
import 'package:shorebird_cli/src/logger.dart';
|
||||
import 'package:shorebird_cli/src/os/os.dart';
|
||||
import 'package:shorebird_cli/src/patch_diff_checker.dart';
|
||||
import 'package:shorebird_cli/src/platform/platform.dart';
|
||||
@@ -105,8 +106,6 @@ class MockJwtHeader extends Mock implements JwtHeader {}
|
||||
|
||||
class MockJwtPayload extends Mock implements JwtPayload {}
|
||||
|
||||
class MockLogger extends Mock implements Logger {}
|
||||
|
||||
class MockOperatingSystemInterface extends Mock
|
||||
implements OperatingSystemInterface {}
|
||||
|
||||
@@ -146,6 +145,8 @@ class MockShorebirdFlutter extends Mock implements ShorebirdFlutter {}
|
||||
class MockShorebirdFlutterValidator extends Mock
|
||||
implements ShorebirdFlutterValidator {}
|
||||
|
||||
class MockShorebirdLogger extends Mock implements ShorebirdLogger {}
|
||||
|
||||
class MockShorebirdProcess extends Mock implements ShorebirdProcess {}
|
||||
|
||||
class MockShorebirdProcessResult extends Mock
|
||||
|
||||
@@ -27,7 +27,7 @@ void main() {
|
||||
late FileSetDiff assetsFileSetDiff;
|
||||
late FileSetDiff nativeFileSetDiff;
|
||||
late http.Client httpClient;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Progress progress;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late PatchDiffChecker patchDiffChecker;
|
||||
@@ -53,7 +53,7 @@ void main() {
|
||||
assetsFileSetDiff = MockFileSetDiff();
|
||||
nativeFileSetDiff = MockFileSetDiff();
|
||||
httpClient = MockHttpClient();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
progress = MockProgress();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
patchDiffChecker = PatchDiffChecker();
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import 'package:archive/archive_io.dart';
|
||||
import 'package:mason_logger/mason_logger.dart';
|
||||
import 'package:mocktail/mocktail.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:scoped/scoped.dart';
|
||||
@@ -18,7 +17,7 @@ void main() {
|
||||
late Directory projectRoot;
|
||||
late Bundletool bundletool;
|
||||
late Cache cache;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdAndroidArtifacts shorebirdAndroidArtifacts;
|
||||
|
||||
@@ -37,7 +36,7 @@ void main() {
|
||||
setUp(() {
|
||||
bundletool = MockBundleTool();
|
||||
cache = MockCache();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
projectRoot = Directory.systemTemp.createTempSync();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ void main() {
|
||||
late Directory shorebirdRoot;
|
||||
late Directory flutterDirectory;
|
||||
late Git git;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Progress progress;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
late ShorebirdProcess process;
|
||||
@@ -43,7 +43,7 @@ void main() {
|
||||
shorebirdRoot = Directory.systemTemp.createTempSync();
|
||||
flutterDirectory = Directory(p.join(shorebirdRoot.path, 'flutter'));
|
||||
git = MockGit();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
progress = MockProgress();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
process = MockShorebirdProcess();
|
||||
|
||||
@@ -19,7 +19,7 @@ void main() {
|
||||
};
|
||||
|
||||
late EngineConfig engineConfig;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late ProcessWrapper processWrapper;
|
||||
late Process startProcess;
|
||||
late ShorebirdProcessResult runProcessResult;
|
||||
@@ -39,7 +39,7 @@ void main() {
|
||||
|
||||
setUp(() {
|
||||
engineConfig = const EngineConfig.empty();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
processWrapper = MockProcessWrapper();
|
||||
runProcessResult = MockProcessResult();
|
||||
startProcess = MockProcess();
|
||||
|
||||
@@ -15,7 +15,7 @@ import 'mocks.dart';
|
||||
void main() {
|
||||
group(ShorebirdValidator, () {
|
||||
late Auth auth;
|
||||
late Logger logger;
|
||||
late ShorebirdLogger logger;
|
||||
late Platform platform;
|
||||
late Validator validator;
|
||||
late ShorebirdEnv shorebirdEnv;
|
||||
@@ -35,7 +35,7 @@ void main() {
|
||||
|
||||
setUp(() {
|
||||
auth = MockAuth();
|
||||
logger = MockLogger();
|
||||
logger = MockShorebirdLogger();
|
||||
platform = MockPlatform();
|
||||
shorebirdEnv = MockShorebirdEnv();
|
||||
validator = MockValidator();
|
||||
|
||||
Reference in New Issue
Block a user