1. 25 Jan, 2024 1 commit
    • Andrew Kolos's avatar
      provide command to `FakeCommand::onRun` (#142206) · 295a9a20
      Andrew Kolos authored
      Part of work on [#101077](https://github.com/flutter/flutter/pull/141194). This is done as a separate PR to avoid a massive diff.
      
      ## Context
      1. The `FakeCommand` class accepts a list of patterns that's used to match a command given to its `FakeProcessManager`. Since `FakeCommand` can match a list of patterns, not just specifically strings, it can be used to match commands where the exact value of some arguments can't (easily) known ahead of time. For example, a part of the tool may invoke a command with an argument that is the path of a temporarily file that has a randomly-generated basename.
      2. The `FakeCommand` class provides on `onRun` parameter, which is a callback that is run when the `FakeProcessManager` runs a command that matches the `FakeCommand` in question.
      
      ## Issue
      In the event that a `FakeCommand` is constructed using patterns, the test code can't know the exact values used for arguments in the command. This PR proposes changing the type of `onRun` from `VoidCallback?` to `void Function(List<String>)?`. When run, the value `List<String>` parameter will be the full command that the `FakeCommand` matched.
      
      Example:
      ```dart
      FakeCommand(
        command: <Pattern>[
          artifacts.getArtifactPath(Artifact.engineDartBinary),
          'run',
          'vector_graphics_compiler',
          RegExp(r'--input=/.*\.temp'),
          RegExp(r'--output=/.*\.temp'),
        ],
        onRun: (List<String> command) {
          final outputPath = (() { 
            // code to parse `--output` from `command`
          })();
          testFileSystem.file(outputPath).createSync(recursive: true);
        },
      )
      ```
      295a9a20
  2. 13 Jul, 2023 3 commits
  3. 27 Apr, 2022 1 commit
  4. 21 Jan, 2022 1 commit
  5. 21 Dec, 2021 1 commit
  6. 14 Dec, 2021 2 commits
  7. 30 Oct, 2021 1 commit