Skip to content

Commit 136a64d

Browse files
committed
refactor(test): optimize project database test by using cached project retrieval
1 parent 3dd6d99 commit 136a64d

2 files changed

Lines changed: 24 additions & 7 deletions

File tree

Test/public/projectDatabase/project_database.test.ps1

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,29 @@ function Test_SaveProjectDatabase_SafeId_Flag_PrivateCall{
2727
function Test_SaveProjectDatabase_Safe_PrivateCall{
2828

2929
$p = Get-Mock_Project_700 ; $owner = $p.owner ; $projectNumber = $p.number
30-
MockCall_GetProject_700
30+
MockCall_GetProject_700 -Cache
3131

3232
Invoke-PrivateContext {
3333

3434
$Owner = "octodemo" ; $ProjectNumber = 700
3535
# Cache the project
36-
$prj1 = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber
36+
# $prj1 = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber
3737

3838
# modify the project
39-
$db = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber ; Save-ProjectDatabaseSafe -Database $db
40-
39+
# $db = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber
40+
$db1 = Get-ProjectFromDatabase -Owner $Owner -ProjectNumber $ProjectNumber
41+
$dbClone = $db1 | ConvertTo-Json | ConvertFrom-Json
42+
Save-ProjectDatabaseSafe -Database $db1
43+
4144
# Check that safeId has changed
42-
$prj2 = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber
43-
Assert-AreNotEqual -Presented $prj2.safeId -Expected $prj1.safeId
45+
$db2 = Get-ProjectFromDatabase -Owner $Owner -ProjectNumber $ProjectNumber
46+
# $prj2 = Get-Project -Owner $Owner -ProjectNumber $ProjectNumber
47+
Assert-AreNotEqual -Presented $dbClone.safeId -Expected $db2.safeId
4448

4549
## When saving again as prj1 that has been saved before it will throw
4650
$hasThrow = $false
4751
try{
48-
Save-ProjectDatabaseSafe -Database $prj1
52+
Save-ProjectDatabaseSafe -Database $dbClone
4953
} catch {
5054
$hasThrow = $true
5155
}

public/project/getproject.ps1

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ function Get-Project {
2121

2222
if ( ! $result) {
2323
"Failed to update project for $Owner/$ProjectNumber. Project may not exist or there was an error during update." | Write-MyError
24+
resetProjectCache -Owner $Owner -ProjectNumber $ProjectNumber
2425
return
2526
}
2627
} else {
@@ -179,3 +180,15 @@ function setProjectCache{
179180
SafeId = $safeId
180181
}
181182
}
183+
184+
function resetProjectCache{
185+
param(
186+
[Parameter(Mandatory,Position = 0)][string]$Owner,
187+
[Parameter(Mandatory,Position = 1)][string]$ProjectNumber
188+
)
189+
190+
"Resetting project cache for $Owner/$ProjectNumber" | Write-MyDebug -Section "Get-Project"
191+
192+
$key = "$Owner-$ProjectNumber"
193+
$script:ProjectsCache.Remove($key)
194+
}

0 commit comments

Comments
 (0)