Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Test/private/MockCall_Project700.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ function Get-Mock_Project_700 {
$project.searchInTitle = @{}
$project.searchInTitle.titleFilter = "development"
$project.searchInTitle.Titles = $pActual.items.nodes.content.title | Where-Object { $_ -like "*development*" }
$project.searchInTitle.attributesDefault = @("Title", "id")
$project.searchInTitle.attributesDefault = @("Title", "id" , "RepositoryName")
$project.searchInTitle.attributes = @("Title", "id", "url", "Status", "field-text")

# SearchIn FieldName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ function Test_UpdateProjectItemsBetweenProjects{

Assert-IsNull -Object $result

$staged = Get-ProjectItemStaged -Owner $owner -ProjectNumber $destinationProjectNumber
$staged = Get-ProjectItemStaged -Owner $destinationOwner -ProjectNumber $destinationProjectNumber

$p = $p626.syncBtwPrj_625

Expand Down
4 changes: 3 additions & 1 deletion Test/public/interactive_test/getproject.test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ function Test_Get_Project_ItemId_Equal_Case_Sensitive {
$item1 = "PVTI_lADOAlIw4c4BCe3Vzgec8pU"
$item2 = "PVTI_lADOAlIw4c4BCe3Vzgec8pu"

Set-ProjectHelperEnvironment -Owner $owner -ProjectNumber $projectNumber

# Act
$result = Get-Project -owner $owner -ProjectNumber $ProjectNumber
$result = Get-Project
Assert-Count -Expected $p.items.totalCount -Presented $result.items.keys

$result1 = Get-ProjectItem -ItemId $item1
Expand Down
2 changes: 1 addition & 1 deletion Test/public/issues/Add-IssuePullRequestComment.test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

function Test_AddComment_SUCCESS_Using_Direct{

$p = Get-Mock_Project_700
$p = Get-Mock_Project_700

Check notice

Code scanning / PSScriptAnalyzer

Line has trailing whitespace Note

Line has trailing whitespace
$i = $p.Issue
$id = $i.id
$contentId = $i.contentId
Expand Down
4 changes: 2 additions & 2 deletions Test/public/issues/Get-ProjectIssue.test.ps1
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
function Test_GetProjectIssue{

$p = Get-Mock_Project_700 ; $Owner = $p.owner ; $projectNumber = $p.number
$p = Get-Mock_Project_700
$i = $p.issue

MockCallJson -Command "Invoke-GetIssueOrPullRequest -Url $($i.url)" -FileName "invoke-GetIssueOrPullRequest-26.json"

# Act
$result = Get-ProjectIssue -Url $i.url
$result = Get-ProjectIssue -Url $i.url

Check notice

Code scanning / PSScriptAnalyzer

Line has trailing whitespace Note

Line has trailing whitespace

Assert-AreEqual -Expected $i.contentId -Presented $result.id
Assert-AreEqual -Expected $i.title -Presented $result.title
Expand Down
8 changes: 4 additions & 4 deletions Test/public/issues/Remove-ProjectIssue.test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ function Test_RemoveProjectIssue_SUCCESS {
MockCallJson -Command "Invoke-GetIssueOrPullRequest -Url $($i.url)" -fileName $i.getIssueOrPullRequestMockFile
MockCallJson -Command "Invoke-AddItemToProject -ProjectId $($p.id) -ContentId $($i.id)" -fileName $i.addIssueToOProjectMockFile
$itemId = Add-ProjectItem -owner $owner -projectNumber $projectNumber -Url $i.url
$item = Get-ProjectItem -Id $itemId
$item = Get-ProjectItem -Id $itemId -owner $owner -projectNumber $projectNumber
Assert-AreEqual -expected $i.id -Presented $item.contentId

MockCallJson -Command "Invoke-RemoveItemFromProject -ProjectId $($p.id) -ItemId $($i.itemId)" -fileName $i.removeIssueFromProjectMockFile
Expand All @@ -19,11 +19,11 @@ function Test_RemoveProjectIssue_SUCCESS {

# Assert
Assert-AreEqual -Expected $i.url -Presented $result
Assert-IsFalse -Condition $(Test-ProjectItem -Url $i.url)
Assert-IsFalse -Condition $(Test-ProjectItem -Url $i.url -Owner $owner -ProjectNumber $projectNumber)

# Remove issue assocaited
# Remove issue associated
$itemId = Add-ProjectItem -owner $owner -projectNumber $projectNumber -Url $i.url
Assert-IsTrue -Condition $(Test-ProjectItem -Url $i.url)
Assert-IsTrue -Condition $(Test-ProjectItem -Url $i.url -Owner $owner -ProjectNumber $projectNumber)
MockCallJson -Command "Invoke-RemoveIssue -IssueId $($i.id)" -FileName "invoke-removeissue-any.json"

# Act
Expand Down
4 changes: 1 addition & 3 deletions Test/public/items/project_item_draftissue.test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@ function Test_NewProjectDraftIssue {
# Act
$draftIssueId = New-ProjectDraftIssueDirect -Owner $owner -ProjectNumber $projectNumber -Title $title -Body $body


$item = Get-ProjectItem -ItemId $draftIssueId

# Assert
$item = Get-ProjectItem -ItemId $draftIssueId -Owner $owner -ProjectNumber $projectNumber
Assert-AreEqual -Expected $draftIssueId -Presented $item.id
Assert-AreEqual -Expected $title -Presented $item.Title
Assert-AreEqual -Expected $body -Presented $item.Body
Expand Down
31 changes: 28 additions & 3 deletions Test/public/items/use_order.test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,34 @@ function Test_UserOrder_Success{

}

function Test_UserOrder_Success_GetItem{
function Test_UserOrder_Success_GetItem_FAIL_NO_ENVIRONMENT{
MockCall_GetProject_700

$p = Get-Mock_Project_700 ; $owner = $p.owner ; $projectNumber = $p.number

# We need to have the environment set to get item details in PassThru
$list = Search-ProjectItem -Owner $owner -ProjectNumber $projectNumber -IncludeDone

# Act
$hasthorwn = $false
try {
$list | Use-Order 1
} catch {
$hasthorwn = $true
Assert-IsTrue -Condition $_.Exception.Message.StartsWith("ProjectEnvironment is required.")
}
Assert-IsTrue -Condition $hasthorwn
}

function Test_UserOrder_Success_GetItem{
MockCall_GetProject_700

$p = Get-Mock_Project_700 ; $owner = $p.owner ; $projectNumber = $p.number

# We need to have the environment set to get item details in PassThru
Set-ProjectHelperEnvironment -Owner $owner -ProjectNumber $projectNumber
$list = Search-ProjectItem -IncludeDone

# Act
$result = $list | Use-Order 1 -PassThru

Expand All @@ -33,7 +54,9 @@ function Test_UserOrder_Success_OpenBrowser{

MockCallToNull -command "Invoke-ProjectHelperOpenUrl -Url $url"

$list = Search-ProjectItem -Owner $owner -ProjectNumber $projectNumber -IncludeDone
# We need to have the environment set to get item details in PassThru
Set-ProjectHelperEnvironment -Owner $owner -ProjectNumber $projectNumber
$list = Search-ProjectItem -IncludeDone

# Act
$result = $list | Use-Order $order -OpenInBrowser
Expand All @@ -48,7 +71,9 @@ function Test_UserOrder_Success_Passthru{
$p = Get-Mock_Project_700 ; $owner = $p.owner ; $projectNumber = $p.number
$order = $p.issue.order ; $id = $p.issue.id

$list = Search-ProjectItem -Owner $owner -ProjectNumber $projectNumber -IncludeDone
# We need to have the environment set to get item details in PassThru
Set-ProjectHelperEnvironment -Owner $owner -ProjectNumber $projectNumber
$list = Search-ProjectItem -IncludeDone

# Act
$result = $list | Use-Order $order -PassThru
Expand Down
16 changes: 10 additions & 6 deletions Test/public/project_item.searchprojectitem.test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,22 @@ function Test_SearchProjectItem_Basic_SUCCESS {
$p = Get-Mock_Project_700
$Owner = $p.owner
$ProjectNumber = $p.number
$filter = $p.searchInTitle.titleFilter
$expected = $p.searchInTitle.Titles.Count
$s = $p.searchInTitle
$filter = $s.titleFilter
$expected = $s.Titles.Count
$defautlAttrs = $s.attributesDefault

$result = Search-ProjectItem -Owner $Owner -ProjectNumber $ProjectNumber -Filter $filter
Assert-Count -Expected $expected -Presented $result

# Default attributes should be id + Title
# Default attributes should be id + Title + RepositoryName
foreach($r in $result){
$props = $r.PSObject.Properties.Name
Assert-Count -Expected 2 -Presented $props
Assert-Contains -Expected "id" -Presented $props
Assert-Contains -Expected "Title" -Presented $props

Assert-Count -Expected $defautlAttrs.Count -Presented $props
$defautlAttrs | ForEach-Object -Process {
Assert-Contains -Expected $_ -Presented $props
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion Test/public/project_item.test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ function Test_TestProjectItem_Success{

# Not found

$result = Test-ProjectItem -Url "https://github.com/octodemo/Project-700/issues/999"
$result = Test-ProjectItem -Url "https://github.com/octodemo/Project-700/issues/999" -Owner $owner -ProjectNumber $projectNumber
Assert-IsFalse -Condition $result

}
Expand Down
17 changes: 8 additions & 9 deletions Test/public/project_items_staged.test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ function Test_SyncProjectItemsStaged_NoStaged {

function Test_SyncProjectItemsStaged_SUCCESS_Number{

$Owner = "octodemo" ; $ProjectNumber = 700
$p = Get-Mock_Project_700 ; $owner = $p.owner ; $projectNumber = $p.number
$projectId = "PVT_kwDOAlIw4c4BCe3V"

# project item issue
Expand Down Expand Up @@ -52,8 +52,7 @@ function Test_SyncProjectItemsStaged_SUCCESS_Number{

# Mock get-project
# MockCall_GetProject_700 -skipItems
MockCall_GetProject_700
$null = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber -Force
MockCall_GetProject -MockProject $p -Cache

Edit-ProjectItem -Owner $owner -ProjectNumber $projectNumber $itemId1 $fieldName $fieldValue

Expand All @@ -62,7 +61,7 @@ function Test_SyncProjectItemsStaged_SUCCESS_Number{
$staged = Get-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber
Assert-AreEqual -Expected $fieldValue -Presented $staged.$itemId1.$fieldId.Value

$showStaged = Show-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber | Show-ProjectItemStaged
$showStaged = Show-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber | Show-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber
Assert-AreEqual -Expected $fieldValue -Presented $showStaged.$fieldName.Value
Assert-AreEqual -Expected $fieldBeforeValueNumber -Presented $showStaged.$fieldName.Before

Expand All @@ -81,7 +80,6 @@ function Test_SyncProjectItemsStaged_SUCCESS_Number{

function Test_SyncProjectItemsStaged_SUCCESS_Date{

$Owner = "octodemo" ; $ProjectNumber = 700
$projectId = "PVT_kwDOAlIw4c4BCe3V"

# project item issue
Expand Down Expand Up @@ -117,8 +115,8 @@ function Test_SyncProjectItemsStaged_SUCCESS_Date{
}

# Mock get-project
MockCall_GetProject_700
$null = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber
$p = Get-Mock_Project_700 ; $owner = $p.owner ; $projectNumber = $p.number
MockCall_GetProject -MockProject $p -Cache

Edit-ProjectItem -Owner $owner -ProjectNumber $projectNumber $itemId1 $fieldName $fieldValue

Expand All @@ -127,7 +125,8 @@ function Test_SyncProjectItemsStaged_SUCCESS_Date{
$staged = Get-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber
Assert-AreEqual -Expected $fieldValue -Presented $staged.$itemId1.$fieldId.Value

$showStaged = Show-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber | Show-ProjectItemStaged
# During interactive use we will set project environment avoiding to use the owner an PN parameters
$showStaged = Show-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber | Show-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber
Assert-AreEqual -Expected $fieldValue -Presented $showStaged.$fieldName.Value
Assert-AreEqual -Expected $fieldBeforeValueDate -Presented $showStaged.$fieldName.Before

Expand Down Expand Up @@ -205,7 +204,7 @@ function Test_SyncProjectItemsStaged_SUCCESS_SingleSelect{
}
}

$showStaged = Show-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber | Show-ProjectItemStaged
$showStaged = Show-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber | Show-ProjectItemStaged -Owner $Owner -ProjectNumber $ProjectNumber
Assert-AreEqual -Expected $fieldNewValue -Presented $showStaged.$fieldName.Value
Assert-AreEqual -Expected $fieldBeforeValueSingleSelect -Presented $showStaged.$fieldName.Before

Expand Down
3 changes: 1 addition & 2 deletions private/projectDatabase/project_database_Async.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ function Sync-ProjectDatabaseAsync {
[Parameter()][int]$SyncBatchSize = 30
)

($Owner, $ProjectNumber) = Get-OwnerAndProjectNumber -Owner $Owner -ProjectNumber $ProjectNumber
if ([string]::IsNullOrWhiteSpace($owner) -or [string]::IsNullOrWhiteSpace($ProjectNumber)) { "Owner and ProjectNumber are required" | Write-MyError; return $null }
($owner,$ProjectNumber) = Resolve-ProjectParameters -Owner $Owner -ProjectNumber $ProjectNumber

if (! $(Test-ProjectDatabaseStaged -Owner $Owner -ProjectNumber $ProjectNumber)) {
"Nothing to commit" | Write-MyHost
Expand Down
3 changes: 1 addition & 2 deletions private/projectDatabase/project_database_Sync.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ function Sync-ProjectDatabase{
[Parameter()][int]$ProjectNumber
)

($Owner,$ProjectNumber) = Get-OwnerAndProjectNumber -Owner $Owner -ProjectNumber $ProjectNumber
if([string]::IsNullOrWhiteSpace($owner) -or [string]::IsNullOrWhiteSpace($ProjectNumber)){ "Owner and ProjectNumber are required" | Write-MyError; return $null}
($Owner,$ProjectNumber) = Resolve-ProjectParameters -Owner $Owner -ProjectNumber $ProjectNumber

if(! $(Test-ProjectDatabaseStaged -Owner $Owner -ProjectNumber $ProjectNumber)){
"Nothing to commit" | Write-MyHost
Expand Down
34 changes: 1 addition & 33 deletions public/environment/environmentCache.ps1
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

$DEFAULT_DISPLAY_FIELDS = @("id","title")
$DEFAULT_DISPLAY_FIELDS = @("id","Title")

function Get-ProjectHelperEnvironment{
[CmdletBinding()]
Expand Down Expand Up @@ -51,38 +51,6 @@ function Set-ProjectHelperEnvironment{

} Export-ModuleMember -Function Set-ProjectHelperEnvironment

function Get-OwnerAndProjectNumber{
[CmdletBinding()]
param(
[Parameter()][string]$Owner,
[Parameter()][string]$ProjectNumber
)

if($ProjectNumber -eq "0"){
$ProjectNumber = [string]::Empty
}

$ownerCache = Get-EnvItem -Name "EnvironmentCache_Owner"
if([string]::IsNullOrWhiteSpace($Owner)){
$owner = $ownerCache
} else {
if($owner -ne $ownerCache){
Set-EnvItem -Name "EnvironmentCache_Owner" -Value $Owner
}
}

$projectNumberCache = Get-EnvItem -Name "EnvironmentCache_ProjectNumber"
if([string]::IsNullOrWhiteSpace($ProjectNumber)){
$ProjectNumber = $projectNumberCache
} else {
if($ProjectNumber -ne $projectNumberCache){
Set-EnvItem -Name "EnvironmentCache_ProjectNumber" -Value $ProjectNumber
}
}

return ($owner, $ProjectNumber)
}

function Get-EnvironmentDisplayFields{
[CmdletBinding()]
param(
Expand Down
59 changes: 59 additions & 0 deletions public/environment/resolveProjectParameters.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
function Resolve-ProjectParameters {

Check warning

Code scanning / PSScriptAnalyzer

The cmdlet 'Resolve-ProjectParameters' uses a plural noun. A singular noun should be used instead. Warning

The cmdlet 'Resolve-ProjectParameters' uses a plural noun. A singular noun should be used instead.
[CmdletBinding()]
param(
[Parameter(Position = 0)][string]$ProjectNumber,
[Parameter(Position = 1)][string]$Owner,
[Parameter()][switch]$DoNotThrow

)

if($ProjectNumber -eq 0){
$ProjectNumber = ""
}

if([string]::IsNullOrWhiteSpace($Owner)){
$Owner = Get-EnvItem -Name "EnvironmentCache_Owner"
}

if([string]::IsNullOrWhiteSpace($ProjectNumber)){
$ProjectNumber = Get-EnvItem -Name "EnvironmentCache_ProjectNumber"
}

if([string]::IsNullOrWhiteSpace($ProjectNumber) -or [string]::IsNullOrWhiteSpace($Owner)){
if(-Not $DoNotThrow){
throw "Owner and ProjectNumber parameters are required. Please provide them as parameters or set them in the environment cache."
} else {
Write-MyDebug "Owner or ProjectNumber is missing. Returning null values." -Section "Resolve-ProjectParameters"
return ($null, $null)
}
}

return ($Owner, $ProjectNumber)
}

function Test-ProjectParameters {

Check warning

Code scanning / PSScriptAnalyzer

The cmdlet 'Test-ProjectParameters' uses a plural noun. A singular noun should be used instead. Warning

The cmdlet 'Test-ProjectParameters' uses a plural noun. A singular noun should be used instead.
[CmdletBinding()]
param(
[Parameter(Position = 0)][string]$ProjectNumber,
[Parameter(Position = 1)][string]$Owner
)

($Owner, $ProjectNumber) = Resolve-ProjectParameters -Owner $Owner -ProjectNumber $ProjectNumber -DoNotThrow

return -not ([string]::IsNullOrWhiteSpace($Owner) -or [string]::IsNullOrWhiteSpace($ProjectNumber))

Check notice

Code scanning / PSScriptAnalyzer

The cmdlet 'Test-ProjectParameters' returns an object of type 'System.Boolean' but this type is not declared in the OutputType attribute. Note

The cmdlet 'Test-ProjectParameters' returns an object of type 'System.Boolean' but this type is not declared in the OutputType attribute.
}

function Set-ProjectParameters {

Check warning

Code scanning / PSScriptAnalyzer

Function 'Set-ProjectParameters' has verb that could change system state. Therefore, the function has to support 'ShouldProcess'. Warning

Function 'Set-ProjectParameters' has verb that could change system state. Therefore, the function has to support 'ShouldProcess'.

Check warning

Code scanning / PSScriptAnalyzer

The cmdlet 'Set-ProjectParameters' uses a plural noun. A singular noun should be used instead. Warning

The cmdlet 'Set-ProjectParameters' uses a plural noun. A singular noun should be used instead.

Check notice

Code scanning / PSScriptAnalyzer

The cmdlet 'Set-ProjectParameters' does not have a help comment. Note

The cmdlet 'Set-ProjectParameters' does not have a help comment.
[CmdletBinding()]
[Alias("Set-Project")]
param(
[Parameter(Mandatory,ValueFromPipelineByPropertyName, Position = 0)][string]$Owner,
[Parameter(Mandatory,ValueFromPipelineByPropertyName, Position = 1)][string]$ProjectNumber
)

process {

Set-ProjectHelperEnvironment -Owner $Owner -ProjectNumber $ProjectNumber
}

} Export-ModuleMember -Function Set-ProjectParameters -Alias "Set-Project"
3 changes: 1 addition & 2 deletions public/fields/project_fields_list.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,7 @@ function Get-ProjectFields{
[Parameter()][switch]$Force
)

($Owner,$ProjectNumber) = Get-OwnerAndProjectNumber -Owner $Owner -ProjectNumber $ProjectNumber
if([string]::IsNullOrWhiteSpace($owner) -or [string]::IsNullOrWhiteSpace($ProjectNumber)){ "Owner and ProjectNumber are required" | Write-MyError; return $null}
($Owner,$ProjectNumber) = Resolve-ProjectParameters -Owner $Owner -ProjectNumber $ProjectNumber

$db = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber -Force:$Force -SkipItems

Expand Down
Loading
Loading