test(阶段三): 添加终端管理功能测试
- TerminalResourceTest: 18个测试用例,测试终端CRUD和筛选功能 - TerminalKnowledgeBaseAssociationTest: 5个测试用例,测试知识库关联 - TerminalKnowledgeBaseFormTest: 6个测试用例,测试表单关联功能 - TerminalPromptTest: 6个测试用例,测试提示词模型 - TerminalPromptFormTest: 3个测试用例,测试提示词表单 - PromptTemplateTest: 16个测试用例,测试模板和变量功能 - TerminalSyncTest: 8个测试用例,测试配置同步功能 - 总计62个测试用例,覆盖所有核心功能
This commit is contained in:
98
tests/Feature/TerminalPromptFormTest.php
Normal file
98
tests/Feature/TerminalPromptFormTest.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use App\Filament\Resources\TerminalResource;
|
||||
use App\Models\Terminal;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Livewire\Livewire;
|
||||
use Tests\TestCase;
|
||||
|
||||
class TerminalPromptFormTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
protected User $user;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
$this->user = User::factory()->create();
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function terminal_can_be_created_with_prompt()
|
||||
{
|
||||
$this->actingAs($this->user);
|
||||
|
||||
$terminalData = [
|
||||
'name' => '测试终端',
|
||||
'code' => 'TEST-001',
|
||||
'ip_address' => '192.168.1.100',
|
||||
'station_id' => 1,
|
||||
'prompt' => [
|
||||
'prompt_template' => '你是一个智能助手,当前用户是 {user}。',
|
||||
],
|
||||
];
|
||||
|
||||
Livewire::test(TerminalResource\Pages\CreateTerminal::class)
|
||||
->fillForm($terminalData)
|
||||
->call('create')
|
||||
->assertHasNoFormErrors();
|
||||
|
||||
$this->assertDatabaseHas('terminals', [
|
||||
'name' => '测试终端',
|
||||
'code' => 'TEST-001',
|
||||
]);
|
||||
|
||||
$terminal = Terminal::where('code', 'TEST-001')->first();
|
||||
$this->assertNotNull($terminal->prompt);
|
||||
$this->assertEquals('你是一个智能助手,当前用户是 {user}。', $terminal->prompt->prompt_template);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function terminal_prompt_can_be_updated()
|
||||
{
|
||||
$this->actingAs($this->user);
|
||||
|
||||
$terminal = Terminal::factory()->create();
|
||||
$terminal->prompt()->create([
|
||||
'prompt_template' => '旧的提示词',
|
||||
'variables' => [],
|
||||
]);
|
||||
|
||||
$newPromptData = [
|
||||
'name' => $terminal->name,
|
||||
'code' => $terminal->code,
|
||||
'prompt' => [
|
||||
'prompt_template' => '新的提示词模板',
|
||||
],
|
||||
];
|
||||
|
||||
Livewire::test(TerminalResource\Pages\EditTerminal::class, ['record' => $terminal->id])
|
||||
->fillForm($newPromptData)
|
||||
->call('save')
|
||||
->assertHasNoFormErrors();
|
||||
|
||||
$terminal->refresh();
|
||||
$this->assertEquals('新的提示词模板', $terminal->prompt->prompt_template);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function edit_form_loads_existing_prompt()
|
||||
{
|
||||
$this->actingAs($this->user);
|
||||
|
||||
$terminal = Terminal::factory()->create();
|
||||
$terminal->prompt()->create([
|
||||
'prompt_template' => '现有的提示词',
|
||||
'variables' => ['user'],
|
||||
]);
|
||||
|
||||
Livewire::test(TerminalResource\Pages\EditTerminal::class, ['record' => $terminal->id])
|
||||
->assertFormSet([
|
||||
'prompt.prompt_template' => '现有的提示词',
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user