Test/public/project_item_list.test.ps1
function Test_GetProjetItemList_SUCCESS{ Reset-InvokeCommandMock Mock_DatabaseRoot $p = Get-Mock_Project_700 ; $owner = $p.owner ; $projectNumber = $p.number $i = $p.issue $itemsCount = $p.items.totalCount MockCall_GetProject_700 # Act $result = Get-ProjectItemList -Owner $Owner -ProjectNumber $ProjectNumber Assert-Count -Expected $itemsCount -Presented $result $randomItem = $result.$($i.Id) Assert-AreEqual -Presented $randomItem.Title -Expected "Issue for development" Assert-AreEqual -Presented $randomItem.body -Expected "Body of issue for development" Assert-AreEqual -Presented $randomItem.state -Expected "OPEN" Assert-AreEqual -Presented $randomItem.id -Expected "PVTI_lADOAlIw4c4BCe3Vzgeio4o" Assert-AreEqual -Presented $randomItem.type -Expected "Issue" Assert-AreEqual -Presented $randomItem.Status -Expected "Todo" Assert-AreEqual -Presented $randomItem.Milestone -Expected "Milestone 3: Quality and Deployment" Assert-AreEqual -Presented $randomItem.Repository -Expected "https://github.com/octodemo/rulasg-dev-1" Assert-AreEqual -Presented $randomItem."field-text" -Expected "text3" Assert-AreEqual -Presented $randomItem."field-number" -Expected "333" Assert-AreEqual -Presented $randomItem."field-singleselect" -Expected "option-3" Assert-AreEqual -Presented $randomItem.databaseId -Expected "128099210" Assert-AreEqual -Presented $randomItem.projectUrl -Expected "https://github.com/orgs/octodemo/projects/700" # Assert-AreEqual -Presented $randomItem.updatedAt -Expected "9/11/2025 1:06:24 PM" Assert-AreEqual -Presented $randomItem.number -Expected "26" Assert-AreEqual -Presented $randomItem.contentId -Expected "I_kwDOPrRnkc7KkwSq" Assert-AreEqual -Presented $randomItem.projectId -Expected "PVT_kwDOAlIw4c4BCe3V" Assert-AreEqual -Presented $randomItem.urlContent -Expected "https://github.com/octodemo/rulasg-dev-1/issues/26" Assert-AreEqual -Presented $randomItem.urlPanel -Expected "https://github.com/orgs/octodemo/projects/700/views/1?pane=issue&itemId=128099210" Assert-AreEqual -Presented $randomItem.url -Expected "https://github.com/octodemo/rulasg-dev-1/issues/26" # Assert-AreEqual -Presented $randomItem.createdAt -Expected "9/9/2025 2:01:17 PM" # Assert-AreEqual -Presented $randomItem."field-iteration" -Expected "" # Reset all mock invokes Reset-InvokeCommandMock # Reset Database Mock calls. Keep database content Mock_DatabaseRoot -NotReset # Can call without mock because it will use the database information $result = Get-ProjectItemList -Owner $Owner -ProjectNumber $ProjectNumber Assert-Count -Expected $itemsCount -Presented $result } function Test_GetProjetItemList_FAIL{ Reset-InvokeCommandMock Mock_DatabaseRoot $Owner = "SomeOrg" ; $ProjectNumber = 164 ; $itemsCount = 12 MockCall_GitHubOrgProjectWithFields_Null -Owner $owner -ProjectNumber $projectNumber Mock_DatabaseRoot # Start the transcript # Run the command Start-MyTranscript $result = Get-ProjectItemList -Owner $Owner -ProjectNumber $ProjectNumber $tt = Stop-MyTranscript # Capture the standard output $erroMessage1= "Error: Project not found. Check owner and projectnumber" Assert-IsNull -Object $result Assert-Contains -Expected $erroMessage1 -Presented $tt } function Test_ProjectItemList_ExcludeDone{ Reset-InvokeCommandMock Mock_DatabaseRoot $p = Get-Mock_Project_700 ; $owner = $p.owner ; $projectNumber = $p.number $i = $p.issue $itemsCount = $p.items.totalCount $itemsDone = $p.items.doneCount MockCall_GetProject_700 $result = Get-ProjectItemList -Owner $Owner -ProjectNumber $ProjectNumber Assert-AreEqual -Expected $itemsCount -Presented $result.Keys.Count $result = Get-ProjectItemList -Owner $Owner -ProjectNumber $ProjectNumber -ExcludeDone Assert-AreEqual -Expected ($itemsCount - $itemsDone) -Presented $result.Keys.Count } |