feat: autotransfer
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
<?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'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user