Add RefactorLog support: contracts, service methods, tree rendering and tests - #22371
Add RefactorLog support: contracts, service methods, tree rendering and tests#22371Sai Avishkar Sreerama (ssreerama) wants to merge 2 commits into
Conversation
- Add GetRefactorLogItems, AddRefactorLogItem, DeleteRefactorLogItem request types in sqlProjectsContracts.ts - Add getRefactorLogItems/addRefactorLogItem/deleteRefactorLogItem methods to SqlProjectsService and ISqlProjectsService interface - Add DatabaseProjectItemType.refactorLogFile constant and RefactorLogNode tree item - Read RefactorLog items from project file (readRefactorLogItems) and expose via project.refactorLogItems; wire up in all project refresh/add/delete callsites - Render RefactorLogNode entries in projectTreeItem.ts construct loop - Add unit tests for new service methods (sqlProjectsService.test.ts) - Add project.test.ts suite for reading/adding/deleting RefactorLog items - Add projectTree.test.ts test for RefactorLogNode tree rendering - Add openSqlProjectWithRefactorLogBaseline.xml test fixture
There was a problem hiding this comment.
Pull request overview
This PR adds end-to-end support for surfacing <RefactorLog> items from .sqlproj files in the SQL Database Projects tree, by extending the vscode-mssql SqlProjects service contract + client and wiring the new item type through the Project model and tree rendering. It also adds unit/integration tests and a baseline fixture to validate parsing, service calls, and tree node context values.
Changes:
- Extended SqlProjects service contracts/typings and
SqlProjectsServiceclient withgetRefactorLogItems,addRefactorLogItem, anddeleteRefactorLogItem. - Added
Project.refactorLogItemsplumbing (read/add/delete + refresh callsites) and rendered these items in the project tree asRefactorLogNodewith a dedicated context value. - Added tests and a new
.sqlprojbaseline fixture containing<RefactorLog>entries.
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| extensions/sql-database-projects/test/projectTree.test.ts | Adds coverage ensuring RefactorLog entries render as RefactorLogNode with the correct context value. |
| extensions/sql-database-projects/test/project.test.ts | Adds integration tests for reading/adding/deleting RefactorLog items via the Project model. |
| extensions/sql-database-projects/test/baselines/openSqlProjectWithRefactorLogBaseline.xml | New .sqlproj baseline fixture containing <RefactorLog> items for parsing tests. |
| extensions/sql-database-projects/test/baselines/baselines.ts | Registers and loads the new RefactorLog baseline fixture. |
| extensions/sql-database-projects/src/models/tree/projectTreeItem.ts | Renders project.refactorLogItems in the tree construction loop. |
| extensions/sql-database-projects/src/models/tree/fileFolderTreeItem.ts | Introduces RefactorLogNode to set the tree item context value for RefactorLog files. |
| extensions/sql-database-projects/src/models/project.ts | Adds _refactorLogItems storage plus read/add/delete methods and refresh wiring. |
| extensions/sql-database-projects/src/common/constants.ts | Adds DatabaseProjectItemType.refactorLogFile context value constant. |
| extensions/mssql/typings/vscode-mssql.d.ts | Extends ISqlProjectsService typings with the new RefactorLog APIs. |
| extensions/mssql/test/unit/sqlProjectsService.test.ts | New unit tests validating request types/params and success/failure propagation for new service methods. |
| extensions/mssql/src/services/sqlProjectsService.ts | Implements the 3 new SqlProjects service methods by sending the new request types. |
| extensions/mssql/src/models/contracts/sqlProjects/sqlProjectsContracts.ts | Adds new request contract types for RefactorLog endpoints. |
PR Changes
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #22371 +/- ##
==========================================
- Coverage 88.45% 86.30% -2.15%
==========================================
Files 413 326 -87
Lines 130316 115426 -14890
Branches 8265 447 -7818
==========================================
- Hits 115273 99624 -15649
- Misses 15043 15802 +759
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Summary
Adds end-to-end support for displaying
<RefactorLog>entries from SQL project files in the database project tree view.Changes
extensions/mssql— service layersqlProjectsContracts.ts— AddedGetRefactorLogItemsRequest,AddRefactorLogItemRequest,DeleteRefactorLogItemRequestrequest typessqlProjectsService.ts— AddedgetRefactorLogItems,addRefactorLogItem,deleteRefactorLogItemmethodsvscode-mssql.d.ts— Added 3 new methods toISqlProjectsServiceinterfaceextensions/sql-database-projects— tree UIconstants.ts— AddedDatabaseProjectItemType.refactorLogFileconstantfileFolderTreeItem.ts— AddedRefactorLogNodeclass (mirrorsNoneNode)project.ts— Added_refactorLogItemsfield,refactorLogItemsgetter,readRefactorLogItems(),addRefactorLogItem(),deleteRefactorLogItem(); wiredreadRefactorLogItems()alongside allreadNoneItems()callsitesprojectTreeItem.ts— RendersRefactorLogNodeentries in treeconstruct()loopTests
sqlProjectsService.test.ts(new) — 5 unit tests for new service methodsproject.test.ts— Added "Project: RefactorLog items" suite with read/add/delete testsprojectTree.test.ts— Added test verifyingRefactorLogNoderendering with correct context valueopenSqlProjectWithRefactorLogBaseline.xml(new) — Test fixture with 2<RefactorLog>entries