// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:async'; import 'package:args/command_runner.dart'; import 'package:file/memory.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/test.dart'; import 'package:flutter_tools/src/test/test_wrapper.dart'; import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; import '../../src/testbed.dart'; void main() { Cache.disableLocking(); MemoryFileSystem fs; setUp(() { fs = MemoryFileSystem(); fs.file('pubspec.yaml').createSync(); fs.directory('test').childFile('some_test.dart').createSync(recursive: true); }); testUsingContext('Pipes test-randomize-ordering-seed to package:test', () async { final FakePackageTest fakePackageTest = FakePackageTest(); final TestCommand testCommand = TestCommand(testWrapper: fakePackageTest); final CommandRunner<void> commandRunner = createTestCommandRunner(testCommand); await commandRunner.run(const <String>[ 'test', '--test-randomize-ordering-seed=random', '--no-pub', ]); expect( fakePackageTest.lastArgs, contains('--test-randomize-ordering-seed=random'), ); }, overrides: <Type, Generator>{ FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), Cache: () => FakeCache(), }); } class FakePackageTest implements TestWrapper { List<String> lastArgs; @override Future<void> main(List<String> args) async { lastArgs = args; } @override void registerPlatformPlugin( Iterable<Runtime> runtimes, FutureOr<PlatformPlugin> Function() platforms, ) {} }