@@ -38,21 +38,32 @@ void main() {
3838
3939 void setDependabotCoverage ({
4040 Iterable <String > gradleDirs = const < String > [],
41+ bool useDirectoriesKey = false ,
4142 }) {
42- final Iterable <String > gradleEntries =
43- gradleDirs.map ((String directory) => '''
43+ final String gradleEntries;
44+ if (useDirectoriesKey) {
45+ gradleEntries = '''
46+ - package-ecosystem: "gradle"
47+ directories:
48+ ${gradleDirs .map ((String directory ) => ' - /$directory ' ).join ('\n ' )}
49+ schedule:
50+ interval: "daily"
51+ ''' ;
52+ } else {
53+ gradleEntries = gradleDirs.map ((String directory) => '''
4454 - package-ecosystem: "gradle"
4555 directory: "/$directory "
4656 schedule:
4757 interval: "daily"
48- ''' );
58+ ''' ).join ('\n ' );
59+ }
4960 final File configFile =
5061 root.childDirectory ('.github' ).childFile ('dependabot.yml' );
5162 configFile.createSync (recursive: true );
5263 configFile.writeAsStringSync ('''
5364version: 2
5465updates:
55- ${ gradleEntries . join ( ' \n ' )}
66+ $gradleEntries
5667''' );
5768 }
5869
@@ -121,7 +132,7 @@ ${gradleEntries.join('\n')}
121132 ]));
122133 });
123134
124- test ('passes for correct Gradle coverage' , () async {
135+ test ('passes for correct Gradle coverage with single directory ' , () async {
125136 setDependabotCoverage (gradleDirs: < String > [
126137 'packages/a_plugin/android' ,
127138 'packages/a_plugin/example/android/app' ,
@@ -142,4 +153,30 @@ ${gradleEntries.join('\n')}
142153 expect (output,
143154 containsAllInOrder (< Matcher > [contains ('Ran for 2 package(s)' )]));
144155 });
156+
157+ test ('passes for correct Gradle coverage with multiple directories' ,
158+ () async {
159+ setDependabotCoverage (
160+ gradleDirs: < String > [
161+ 'packages/a_plugin/android' ,
162+ 'packages/a_plugin/example/android/app' ,
163+ ],
164+ useDirectoriesKey: true ,
165+ );
166+ final RepositoryPackage plugin = createFakePlugin ('a_plugin' , packagesDir);
167+ // Test the plugin.
168+ plugin.directory.childDirectory ('android' ).createSync (recursive: true );
169+ // And its example app.
170+ plugin.directory
171+ .childDirectory ('example' )
172+ .childDirectory ('android' )
173+ .childDirectory ('app' )
174+ .createSync (recursive: true );
175+
176+ final List <String > output =
177+ await runCapturingPrint (runner, < String > ['dependabot-check' ]);
178+
179+ expect (output,
180+ containsAllInOrder (< Matcher > [contains ('Ran for 2 package(s)' )]));
181+ });
145182}
0 commit comments