import pytest
from src.gui_2 import App
from src.models import FileItem

def test_view_mode_initialization():
 app = App()
 # Mock imgui
 from imgui_bundle import imgui
    
 app.context_files = [
  FileItem(path="test1.py"),
  FileItem(path="test2.py", view_mode="full")
 ]
    
 # We test the model defaults and the rendering assignment logic indirectly.
 assert app.context_files[0].view_mode == "full" # Default from FileItem Model
 assert app.context_files[1].view_mode == "full"

def test_batch_view_mode_change():
 app = App()
    
 f1 = FileItem(path="test1.py", view_mode="full")
 f2 = FileItem(path="test2.py", view_mode="full")
    
 app.context_files = [f1, f2]
 app.ui_selected_context_files = {"test1.py"}
    
 # Simulate clicking "Skeleton" batch button
 for f in app.context_files:
  f_path = f.path if hasattr(f, "path") else str(f)
  if f_path in app.ui_selected_context_files:
   f.view_mode = "skeleton"
            
 assert f1.view_mode == "skeleton"
 assert f2.view_mode == "full" # not selected
