@@ -8,7 +8,7 @@ import 'package:test/test.dart';
88
99class MockLogger extends Mock implements Logger {}
1010
11- class MockCompletionInstallation extends Mock
11+ class _MockCompletionInstallation extends Mock
1212 implements CompletionInstallation {}
1313
1414class _TestCompletionCommandRunner extends CompletionCommandRunner <int > {
@@ -116,13 +116,13 @@ void main() {
116116 test ('Tries to install completion files on test subcommand' , () async {
117117 final commandRunner = _TestCompletionCommandRunner ()
118118 ..addCommand (_TestUserCommand ())
119- ..mockCompletionInstallation = MockCompletionInstallation ();
119+ ..mockCompletionInstallation = _MockCompletionInstallation ();
120120
121121 await commandRunner.run (['ahoy' ]);
122122
123- verify (() => commandRunner.completionInstallation. install ( 'test' ))
124- . called ( 1 );
125-
123+ verify (
124+ () => commandRunner.completionInstallation. install ( 'test' ),
125+ ). called ( 1 );
126126 verify (
127127 () => commandRunner.completionInstallationLogger.level = Level .error,
128128 ).called (1 );
@@ -132,7 +132,7 @@ void main() {
132132 final commandRunner = _TestCompletionCommandRunner ()
133133 ..enableAutoInstall = false
134134 ..addCommand (_TestUserCommand ())
135- ..mockCompletionInstallation = MockCompletionInstallation ();
135+ ..mockCompletionInstallation = _MockCompletionInstallation ();
136136
137137 await commandRunner.run (['ahoy' ]);
138138
@@ -142,14 +142,32 @@ void main() {
142142 () => commandRunner.completionInstallationLogger.level = any (),
143143 );
144144 });
145+
146+ test ('softly tries to install when enabled' , () async {
147+ final commandRunner = _TestCompletionCommandRunner ()
148+ ..enableAutoInstall = true
149+ ..addCommand (_TestUserCommand ())
150+ ..mockCompletionInstallation = _MockCompletionInstallation ()
151+ ..environmentOverride = {
152+ 'SHELL' : '/foo/bar/zsh' ,
153+ };
154+
155+ await commandRunner.run (['ahoy' ]);
156+
157+ verify (
158+ () => commandRunner.completionInstallation.install (
159+ commandRunner.executableName,
160+ ),
161+ ).called (1 );
162+ });
145163 });
146164
147165 test (
148166 'When it throws CompletionInstallationException, it logs as a warning' ,
149167 () async {
150168 final commandRunner = _TestCompletionCommandRunner ()
151169 ..addCommand (_TestUserCommand ())
152- ..mockCompletionInstallation = MockCompletionInstallation ();
170+ ..mockCompletionInstallation = _MockCompletionInstallation ();
153171
154172 when (
155173 () => commandRunner.completionInstallation.install ('test' ),
@@ -168,7 +186,7 @@ void main() {
168186 () async {
169187 final commandRunner = _TestCompletionCommandRunner ()
170188 ..addCommand (_TestUserCommand ())
171- ..mockCompletionInstallation = MockCompletionInstallation ();
189+ ..mockCompletionInstallation = _MockCompletionInstallation ();
172190
173191 when (
174192 () => commandRunner.completionInstallation.install ('test' ),
@@ -185,7 +203,7 @@ void main() {
185203 'logs a warning wen it throws $CompletionUninstallationException ' ,
186204 () async {
187205 final commandRunner = _TestCompletionCommandRunner ()
188- ..mockCompletionInstallation = MockCompletionInstallation ();
206+ ..mockCompletionInstallation = _MockCompletionInstallation ();
189207
190208 when (
191209 () => commandRunner.completionInstallation.uninstall ('test' ),
@@ -207,7 +225,7 @@ void main() {
207225 'logs an error when an unknown exception happens during a install' ,
208226 () async {
209227 final commandRunner = _TestCompletionCommandRunner ()
210- ..mockCompletionInstallation = MockCompletionInstallation ();
228+ ..mockCompletionInstallation = _MockCompletionInstallation ();
211229
212230 when (
213231 () => commandRunner.completionInstallation.uninstall ('test' ),
0 commit comments