@@ -184,51 +184,6 @@ abstract class Analytics {
184184 );
185185 }
186186
187- /// Factory constructor to return the [AnalyticsImpl] class with a
188- /// [MemoryFileSystem] to use for testing.
189- @visibleForTesting
190- factory Analytics .test ({
191- required DashTool tool,
192- required Directory homeDirectory,
193- required String dartVersion,
194- required FileSystem fs,
195- required DevicePlatform platform,
196- String ? flutterChannel,
197- String ? flutterVersion,
198- String ? clientIde,
199- String ? enabledFeatures,
200- SurveyHandler ? surveyHandler,
201- GAClient ? gaClient,
202- int toolsMessageVersion = kToolsMessageVersion,
203- String toolsMessage = kToolsMessage,
204- }) {
205- final firstRun = runInitialization (homeDirectory: homeDirectory, fs: fs);
206-
207- return FakeAnalytics (
208- tool: tool,
209- homeDirectory: homeDirectory,
210- flutterChannel: flutterChannel,
211- toolsMessageVersion: toolsMessageVersion,
212- flutterVersion: flutterVersion,
213- dartVersion: dartVersion,
214- platform: platform,
215- fs: fs,
216- surveyHandler: surveyHandler ??
217- FakeSurveyHandler .fromList (
218- dismissedSurveyFile: fs.file (p.join (
219- homeDirectory.path,
220- kDartToolDirectoryName,
221- kDismissedSurveyFileName,
222- )),
223- initializedSurveys: [],
224- ),
225- gaClient: gaClient ?? const FakeGAClient (),
226- clientIde: clientIde,
227- enabledFeatures: enabledFeatures,
228- firstRun: firstRun,
229- );
230- }
231-
232187 /// The shared identifier for Flutter and Dart related tooling using
233188 /// package:unified_analytics.
234189 String get clientId;
@@ -333,6 +288,53 @@ abstract class Analytics {
333288 ///
334289 /// The snooze period is defined by the [Survey.snoozeForMinutes] field.
335290 void surveyShown (Survey survey);
291+
292+ /// Returns an instance of [FakeAnalytics] which can be used in tests to check
293+ /// for certain [Event] instances within [FakeAnalytics.sentEvents] .
294+ @visibleForTesting
295+ static FakeAnalytics fake ({
296+ required DashTool tool,
297+ required Directory homeDirectory,
298+ required String dartVersion,
299+ required MemoryFileSystem fs,
300+ String ? flutterChannel,
301+ String ? flutterVersion,
302+ String ? clientIde,
303+ String ? enabledFeatures,
304+ SurveyHandler ? surveyHandler,
305+ GAClient ? gaClient,
306+ DevicePlatform platform = DevicePlatform .linux,
307+ int toolsMessageVersion = kToolsMessageVersion,
308+ String toolsMessage = kToolsMessage,
309+ bool enableAsserts = true ,
310+ }) {
311+ final firstRun = runInitialization (homeDirectory: homeDirectory, fs: fs);
312+
313+ return FakeAnalytics ._(
314+ tool: tool,
315+ homeDirectory: homeDirectory,
316+ flutterChannel: flutterChannel,
317+ toolsMessageVersion: toolsMessageVersion,
318+ flutterVersion: flutterVersion,
319+ dartVersion: dartVersion,
320+ platform: platform,
321+ fs: fs,
322+ surveyHandler: surveyHandler ??
323+ FakeSurveyHandler .fromList (
324+ dismissedSurveyFile: fs.file (p.join (
325+ homeDirectory.path,
326+ kDartToolDirectoryName,
327+ kDismissedSurveyFileName,
328+ )),
329+ initializedSurveys: [],
330+ ),
331+ gaClient: gaClient ?? const FakeGAClient (),
332+ clientIde: clientIde,
333+ enabledFeatures: enabledFeatures,
334+ firstRun: firstRun,
335+ enableAsserts: enableAsserts,
336+ );
337+ }
336338}
337339
338340class AnalyticsImpl implements Analytics {
@@ -763,7 +765,7 @@ class FakeAnalytics extends AnalyticsImpl {
763765 final List <Event > sentEvents = [];
764766
765767 /// Class to use when you want to see which events were sent
766- FakeAnalytics ({
768+ FakeAnalytics ._ ({
767769 required super .tool,
768770 required super .homeDirectory,
769771 required super .dartVersion,
0 commit comments