@@ -218,4 +218,55 @@ public function send(Authenticatable $user, string $code, array $options = []):
218218 expect ($ enabledChannels )->not ->toHaveKey ('email ' );
219219});
220220
221+ it ('can check if a channel is enabled in config ' , function () {
222+ $ mfa = app (MFA ::class);
223+
224+ // Test with default config (email, sms, and recovery should be enabled)
225+ expect ($ mfa ->isChannelEnabledInConfig ('email ' ))->toBeTrue ();
226+ expect ($ mfa ->isChannelEnabledInConfig ('sms ' ))->toBeTrue ();
227+ expect ($ mfa ->isChannelEnabledInConfig ('recovery ' ))->toBeTrue ();
228+ expect ($ mfa ->isChannelEnabledInConfig ('totp ' ))->toBeTrue (); // totp doesn't have enabled config, defaults to true
229+
230+ // Test with custom config where email is disabled
231+ $ config = config ('mfa ' );
232+ $ config ['email ' ]['enabled ' ] = false ;
233+ $ mfa = new MFA ($ config );
234+
235+ expect ($ mfa ->isChannelEnabledInConfig ('email ' ))->toBeFalse ();
236+ expect ($ mfa ->isChannelEnabledInConfig ('sms ' ))->toBeTrue ();
237+ expect ($ mfa ->isChannelEnabledInConfig ('recovery ' ))->toBeTrue ();
238+ expect ($ mfa ->isChannelEnabledInConfig ('totp ' ))->toBeTrue ();
239+
240+ // Test with custom config where sms is disabled
241+ $ config = config ('mfa ' );
242+ $ config ['sms ' ]['enabled ' ] = false ;
243+ $ mfa = new MFA ($ config );
244+
245+ expect ($ mfa ->isChannelEnabledInConfig ('email ' ))->toBeTrue ();
246+ expect ($ mfa ->isChannelEnabledInConfig ('sms ' ))->toBeFalse ();
247+ expect ($ mfa ->isChannelEnabledInConfig ('recovery ' ))->toBeTrue ();
248+ expect ($ mfa ->isChannelEnabledInConfig ('totp ' ))->toBeTrue ();
249+ });
250+
251+ it ('can check channel config via facade ' , function () {
252+ // Test via facade (using app() to get the instance)
253+ $ mfa = app (MFA ::class);
254+ expect ($ mfa ->isChannelEnabledInConfig ('email ' ))->toBeTrue ();
255+ expect ($ mfa ->isChannelEnabledInConfig ('sms ' ))->toBeTrue ();
256+ expect ($ mfa ->isChannelEnabledInConfig ('recovery ' ))->toBeTrue ();
257+ expect ($ mfa ->isChannelEnabledInConfig ('totp ' ))->toBeTrue ();
258+ });
259+
260+ it ('can check recovery codes config when disabled ' , function () {
261+ // Test with custom config where recovery is disabled
262+ $ config = config ('mfa ' );
263+ $ config ['recovery ' ]['enabled ' ] = false ;
264+ $ mfa = new MFA ($ config );
265+
266+ expect ($ mfa ->isChannelEnabledInConfig ('email ' ))->toBeTrue ();
267+ expect ($ mfa ->isChannelEnabledInConfig ('sms ' ))->toBeTrue ();
268+ expect ($ mfa ->isChannelEnabledInConfig ('recovery ' ))->toBeFalse ();
269+ expect ($ mfa ->isChannelEnabledInConfig ('totp ' ))->toBeTrue ();
270+ });
271+
221272
0 commit comments