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. 09 Oct, 2023 1 commit
  3. 10 Jul, 2023 1 commit
  4. 03 Mar, 2023 1 commit
  5. 10 Feb, 2023 1 commit
  6. 01 Feb, 2023 1 commit
  7. 21 Sep, 2022 1 commit
  8. 23 Jun, 2022 1 commit
  9. 12 May, 2022 1 commit
  10. 27 Apr, 2022 1 commit
  11. 30 Mar, 2022 1 commit
  12. 25 Mar, 2022 1 commit
  13. 19 Feb, 2022 1 commit
  14. 13 Jan, 2022 1 commit
  15. 07 Dec, 2021 2 commits
  16. 23 Nov, 2021 1 commit
  17. 20 Nov, 2021 1 commit
  18. 14 Oct, 2021 1 commit
  19. 24 Sep, 2021 1 commit
  20. 16 Sep, 2021 1 commit
  21. 20 Aug, 2021 1 commit
  22. 16 Aug, 2021 1 commit
  23. 30 Jul, 2021 1 commit
  24. 29 Jul, 2021 1 commit
  25. 08 Jul, 2021 2 commits
  26. 22 Jun, 2021 1 commit