*/ protected array $requiredExtensions = [ 'plugins/sirsoft-gdpr', ]; private function createSuperUser(): User { return User::factory()->create([ 'is_super' => true, ]); } private function createActiveAdminTemplate(): Template { return Template::factory()->create([ 'identifier' => 'sirsoft-admin_basic', 'type' => 'admin', 'status' => ExtensionStatus::Active->value, ]); } #[Test] public function admin_layout_editor_url_serves_admin_blade(): void { $this->createActiveAdminTemplate(); $user = $this->createSuperUser(); $this->actingAs($user, 'web'); $response = $this->get('/admin/layout-editor/sirsoft-admin_basic'); $response->assertStatus(200); $response->assertSee('window.G7Config', false); } #[Test] public function admin_blade_emits_active_modules_meta_key_in_g7config(): void { $this->createActiveAdminTemplate(); $user = $this->createSuperUser(); $this->actingAs($user, 'web'); $response = $this->get('/admin/layout-editor/sirsoft-admin_basic'); $response->assertStatus(200); // window.G7Config 객체에 activeModules / activePlugins 키가 포함되어야 함 $response->assertSee('activeModules:', false); $response->assertSee('activePlugins:', false); } #[Test] public function admin_blade_preserves_legacy_modules_plugins_keys(): void { $this->createActiveAdminTemplate(); $user = $this->createSuperUser(); $this->actingAs($user, 'web'); $response = $this->get('/admin/layout-editor/sirsoft-admin_basic'); $response->assertStatus(200); // 기존 키 (modules / plugins / moduleAssets / pluginAssets) 보존 $response->assertSee('modules:', false); $response->assertSee('plugins:', false); $response->assertSee('moduleAssets:', false); $response->assertSee('pluginAssets:', false); } }