@@ -778,7 +778,8 @@ packages/b_package/lib/src/foo.dart
778
778
MockProcess (stdout: 'a-branch' ),
779
779
];
780
780
processRunner.mockProcessesForExecutable['git-merge-base' ] = < Process > [
781
- MockProcess (stdout: 'abc123' ),
781
+ MockProcess (exitCode: 1 ), // --is-ancestor check
782
+ MockProcess (stdout: 'abc123' ), // finding merge base
782
783
];
783
784
final RepositoryPackage plugin1 =
784
785
createFakePlugin ('plugin1' , packagesDir);
@@ -791,6 +792,7 @@ packages/b_package/lib/src/foo.dart
791
792
expect (
792
793
output,
793
794
containsAllInOrder (< Matcher > [
795
+ contains ('--packages-for-branch: running on branch "a-branch"' ),
794
796
contains (
795
797
'Running for all packages that have diffs relative to "abc123"' ),
796
798
]));
@@ -822,8 +824,9 @@ packages/b_package/lib/src/foo.dart
822
824
expect (
823
825
output,
824
826
containsAllInOrder (< Matcher > [
825
- contains ('--packages-for-branch: running on default branch; '
826
- 'using parent commit as the diff base' ),
827
+ contains ('--packages-for-branch: running on default branch.' ),
828
+ contains (
829
+ '--packages-for-branch: using parent commit as the diff base' ),
827
830
contains (
828
831
'Running for all packages that have diffs relative to "HEAD~"' ),
829
832
]));
@@ -836,7 +839,45 @@ packages/b_package/lib/src/foo.dart
836
839
));
837
840
});
838
841
839
- test ('tests all packages on master' , () async {
842
+ test (
843
+ 'only tests changed packages relative to the previous commit if '
844
+ 'running on a specific hash from main' , () async {
845
+ processRunner.mockProcessesForExecutable['git-diff' ] = < Process > [
846
+ MockProcess (stdout: 'packages/plugin1/plugin1.dart' ),
847
+ ];
848
+ processRunner.mockProcessesForExecutable['git-rev-parse' ] = < Process > [
849
+ MockProcess (stdout: 'HEAD' ),
850
+ ];
851
+ final RepositoryPackage plugin1 =
852
+ createFakePlugin ('plugin1' , packagesDir);
853
+ createFakePlugin ('plugin2' , packagesDir);
854
+
855
+ final List <String > output = await runCapturingPrint (
856
+ runner, < String > ['sample' , '--packages-for-branch' ]);
857
+
858
+ expect (command.plugins, unorderedEquals (< String > [plugin1.path]));
859
+ expect (
860
+ output,
861
+ containsAllInOrder (< Matcher > [
862
+ contains (
863
+ '--packages-for-branch: running on a commit from default branch.' ),
864
+ contains (
865
+ '--packages-for-branch: using parent commit as the diff base' ),
866
+ contains (
867
+ 'Running for all packages that have diffs relative to "HEAD~"' ),
868
+ ]));
869
+ // Ensure that it's diffing against the prior commit.
870
+ expect (
871
+ processRunner.recordedCalls,
872
+ contains (
873
+ const ProcessCall (
874
+ 'git-diff' , < String > ['--name-only' , 'HEAD~' , 'HEAD' ], null ),
875
+ ));
876
+ });
877
+
878
+ test (
879
+ 'only tests changed packages relative to the previous commit on master' ,
880
+ () async {
840
881
processRunner.mockProcessesForExecutable['git-diff' ] = < Process > [
841
882
MockProcess (stdout: 'packages/plugin1/plugin1.dart' ),
842
883
];
@@ -854,8 +895,9 @@ packages/b_package/lib/src/foo.dart
854
895
expect (
855
896
output,
856
897
containsAllInOrder (< Matcher > [
857
- contains ('--packages-for-branch: running on default branch; '
858
- 'using parent commit as the diff base' ),
898
+ contains ('--packages-for-branch: running on default branch.' ),
899
+ contains (
900
+ '--packages-for-branch: using parent commit as the diff base' ),
859
901
contains (
860
902
'Running for all packages that have diffs relative to "HEAD~"' ),
861
903
]));
@@ -887,7 +929,7 @@ packages/b_package/lib/src/foo.dart
887
929
expect (
888
930
output,
889
931
containsAllInOrder (< Matcher > [
890
- contains ('Unabled to determine branch' ),
932
+ contains ('Unable to determine branch' ),
891
933
]));
892
934
});
893
935
});
0 commit comments