93 lines
3.3 KiB
PHP
93 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature;
|
|
|
|
use App\Services\SettingsService;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use PHPUnit\Framework\Attributes\Test;
|
|
use Tests\TestCase;
|
|
|
|
class TransferEnvSettingsTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
private string $envBackup = '';
|
|
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
$path = base_path('.env');
|
|
$this->envBackup = is_file($path) ? (string) file_get_contents($path) : '';
|
|
}
|
|
|
|
protected function tearDown(): void
|
|
{
|
|
$path = base_path('.env');
|
|
if ($this->envBackup !== '') {
|
|
file_put_contents($path, $this->envBackup);
|
|
}
|
|
parent::tearDown();
|
|
}
|
|
|
|
#[Test]
|
|
public function transfer_fee_settings_write_to_env(): void
|
|
{
|
|
app(SettingsService::class)->putMany([
|
|
'transfer.fee_address_tron' => 'TFeeAddressForEnvTest111111111111',
|
|
'transfer.fee_private_key_tron' => 'aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899',
|
|
'transfer.fee_topup_trx' => '15',
|
|
'auto_transfer.enabled' => '1',
|
|
]);
|
|
|
|
$env = (string) file_get_contents(base_path('.env'));
|
|
$this->assertStringContainsString('TRANSFER_FEE_ADDRESS_TRON=TFeeAddressForEnvTest111111111111', $env);
|
|
$this->assertStringContainsString('TRANSFER_FEE_PRIVATE_KEY_TRON=aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899', $env);
|
|
$this->assertStringContainsString('TRANSFER_FEE_TOPUP_TRX=15', $env);
|
|
$this->assertStringContainsString('AUTO_TRANSFER_ENABLED=1', $env);
|
|
$this->assertSame('TFeeAddressForEnvTest111111111111', config('coruna.transfer.fee_address_tron'));
|
|
$this->assertTrue((bool) config('coruna.auto_transfer.enabled'));
|
|
}
|
|
|
|
#[Test]
|
|
public function empty_fee_private_key_keeps_existing_env_value(): void
|
|
{
|
|
$settings = app(SettingsService::class);
|
|
$settings->putMany([
|
|
'transfer.fee_private_key_tron' => 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',
|
|
]);
|
|
$settings->putMany([
|
|
'transfer.fee_address_tron' => 'TKeepKeyAddress00000000000000001',
|
|
'transfer.fee_private_key_tron' => '',
|
|
]);
|
|
|
|
$env = (string) file_get_contents(base_path('.env'));
|
|
$this->assertStringContainsString(
|
|
'TRANSFER_FEE_PRIVATE_KEY_TRON=deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',
|
|
$env
|
|
);
|
|
$this->assertSame(
|
|
'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',
|
|
config('coruna.transfer.fee_private_key_tron')
|
|
);
|
|
}
|
|
|
|
#[Test]
|
|
public function put_many_ignores_token_and_transfer_to_address_keys(): void
|
|
{
|
|
config([
|
|
'coruna.telegram.bot_token' => 'keep-token',
|
|
'coruna.transfer.to_address' => 'TKeepTo',
|
|
]);
|
|
|
|
app(SettingsService::class)->putMany([
|
|
'telegram.bot_token' => 'hacked-token',
|
|
'transfer.to_address' => 'THacked',
|
|
'telegram.owner_chat_id' => '-100',
|
|
]);
|
|
|
|
$this->assertSame('keep-token', config('coruna.telegram.bot_token'));
|
|
$this->assertSame('TKeepTo', config('coruna.transfer.to_address'));
|
|
$this->assertSame('-100', config('coruna.telegram.owner_chat_id'));
|
|
}
|
|
}
|