Fix the TwoFAccount Export feature & add related tests

This commit is contained in:
Bubka 2023-03-08 09:41:57 +01:00
parent af4400a74d
commit 823acde49d
2 changed files with 37 additions and 0 deletions

View File

@ -68,6 +68,8 @@ class TwoFAccountService
public static function export($ids) : Collection
{
$ids = Helpers::commaSeparatedToArray($ids);
$ids = is_array($ids) ? $ids : func_get_args();
$twofaccounts = TwoFAccount::whereIn('id', $ids)->get();
return $twofaccounts;

View File

@ -230,6 +230,41 @@ class TwoFAccountServiceTest extends FeatureTestCase
$twofaccounts = TwoFAccounts::migrate(MigrationTestData::GOOGLE_AUTH_MIGRATION_URI_WITH_INVALID_DATA);
}
/**
* @test
*/
public function test_export_single_id_returns_collection()
{
$twofaccounts = TwoFAccounts::export($this->customTotpTwofaccount->id);
$this->assertContainsOnlyInstancesOf(TwoFAccount::class, $twofaccounts);
$this->assertObjectEquals($this->customTotpTwofaccount, $twofaccounts->first());
}
/**
* @test
*/
public function test_export_comma_separated_ids_returns_collection()
{
$twofaccounts = TwoFAccounts::export($this->customTotpTwofaccount->id . ',' . $this->customHotpTwofaccount->id);
$this->assertContainsOnlyInstancesOf(TwoFAccount::class, $twofaccounts);
$this->assertObjectEquals($this->customTotpTwofaccount, $twofaccounts->first());
$this->assertObjectEquals($this->customHotpTwofaccount, $twofaccounts->last());
}
/**
* @test
*/
public function test_export_array_of_ids_returns_collection()
{
$twofaccounts = TwoFAccounts::export([$this->customTotpTwofaccount->id, $this->customHotpTwofaccount->id]);
$this->assertContainsOnlyInstancesOf(TwoFAccount::class, $twofaccounts);
$this->assertObjectEquals($this->customTotpTwofaccount, $twofaccounts->first());
$this->assertObjectEquals($this->customHotpTwofaccount, $twofaccounts->last());
}
/**
* @test
*/