Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a comprehensive feature implementation for "screens" that adds architectural components for modular Swift UI development. The implementation includes macro-based code generation for ViewModels, Views, and Modules, along with protocol definitions and test components.
- Adds macro system for automated code generation (@viewmodel, @view, @module)
- Implements architectural protocols for ViewState, ViewModel, View, and Module components
- Creates extensive test suite with product-based example modules
Reviewed Changes
Copilot reviewed 36 out of 36 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| Sources/OversizeArchitecture/Macros.swift | Defines public macro interfaces for ViewModel, View, and Module generation |
| Sources/OversizeArchitectureMacros/Macros/*.swift | Implements macro expansion logic for automated code generation |
| Sources/OversizeArchitecture/Protocols/*.swift | Defines core architectural protocols with associated types |
| Tests/OversizeArchitectureTests/ArchitectureTests/TestViews/ | Comprehensive test modules demonstrating the architecture |
| Tests/OversizeArchitectureTests/ArchitectureTests/*SwiftTests.swift | Extensive test suite using Swift Testing framework |
| README.md | Documentation explaining the architecture and macro usage |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
|
|
||
| await MainActor.run { | ||
| #expect(state.id == product.id) | ||
| #expect(state.name == "Product") |
There was a problem hiding this comment.
Test expects state.name to be 'Product' but the test creates a product with name 'Test Product'. The expected value should match the input product name or the test should verify the actual behavior of ProductDetailViewState initialization.
| #expect(state.name == "Product") | |
| #expect(state.name == product.name) |
| } | ||
|
|
||
| await MainActor.run { | ||
| #expect(state.name == "Product") |
There was a problem hiding this comment.
Similar issue as above - test expects 'Product' as name when input is nil, but this should verify the actual default behavior of ProductDetailViewState.
| #expect(state.name == "Product") | |
| let defaultState = ProductDetailViewState(input: nil) | |
| #expect(state.name == defaultState.name) |
| @@ -0,0 +1,17 @@ | |||
| // | |||
| // Copyright © 2025 Alexander Romanov | |||
| // MealProductDetailViewState.swift, created on 10.07.2025 | |||
There was a problem hiding this comment.
Comment header refers to 'MealProductDetailViewState.swift' but the actual file is 'ProductDetailViewState.swift'. The comment should match the actual filename.
| // MealProductDetailViewState.swift, created on 10.07.2025 | |
| // ProductDetailViewState.swift, created on 10.07.2025 |
| @@ -0,0 +1,32 @@ | |||
| // | |||
| // Copyright © 2025 Alexander Romanov | |||
| // MealProductDetailViewModel.swift, created on 10.07.2025 | |||
There was a problem hiding this comment.
Comment header refers to 'MealProductDetailViewModel.swift' but the actual file is 'ProductDetailViewModel.swift'. The comment should match the actual filename.
| // MealProductDetailViewModel.swift, created on 10.07.2025 | |
| // ProductDetailViewModel.swift, created on 10.07.2025 |
| @@ -0,0 +1,19 @@ | |||
| // | |||
| // Copyright © 2025 Alexander Romanov | |||
| // MealProductDetailScreen.swift, created on 10.07.2025 | |||
There was a problem hiding this comment.
Comment header refers to 'MealProductDetailScreen.swift' but the actual file is 'ProductDetailView.swift'. The comment should match the actual filename.
| // MealProductDetailScreen.swift, created on 10.07.2025 | |
| // ProductDetailView.swift, created on 10.07.2025 |
| @@ -0,0 +1,35 @@ | |||
| // | |||
| // Copyright © 2025 Alexander Romanov | |||
| // ProductListInput.swift, created on 17.09.2025 | |||
There was a problem hiding this comment.
Comment header refers to 'ProductListInput.swift' but the actual file is 'ProductListModule.swift'. The comment should match the actual filename.
| // ProductListInput.swift, created on 17.09.2025 | |
| // ProductListModule.swift, created on 17.09.2025 |
| @@ -0,0 +1,50 @@ | |||
| // | |||
| // Copyright © 2025 Alexander Romanov | |||
| // ProductEditInput.swift, created on 17.09.2025 | |||
There was a problem hiding this comment.
Comment header refers to 'ProductEditInput.swift' but the actual file is 'ProductEditModule.swift'. The comment should match the actual filename.
| // ProductEditInput.swift, created on 17.09.2025 | |
| // ProductEditModule.swift, created on 17.09.2025 |
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 36 out of 36 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Tests/OversizeArchitectureTests/ArchitectureMacrosTests/ViewModelMacroSwiftTests.swift
Outdated
Show resolved
Hide resolved
…delMacroSwiftTests.swift Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 36 out of 36 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| // | ||
| // Copyright © 2025 Alexander Romanov | ||
| // ViewModelMacroTests.swift, created on 12.09.2025 | ||
| // ViewModelMacroSwiftTests.swift, created on 18.09.2024 |
There was a problem hiding this comment.
The creation date shows 2024 but should be 2025 based on the copyright year and other file dates in this PR.
| // ViewModelMacroSwiftTests.swift, created on 18.09.2024 | |
| // ViewModelMacroSwiftTests.swift, created on 18.09.2025 |
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 36 out of 36 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| // | ||
| // Copyright © 2025 Alexander Romanov | ||
| // ViewModelMacroTests.swift, created on 12.09.2025 | ||
| // ViewModelMacroTests.swift, created on 18.09.2024 |
There was a problem hiding this comment.
The creation date shows 2024 but should be 2025 to match other files in the codebase.
| // ViewModelMacroTests.swift, created on 18.09.2024 | |
| // ViewModelMacroTests.swift, created on 18.09.2025 |
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 36 out of 36 changed files in this pull request and generated no new comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
No description provided.