124 lines
3.1 KiB
PowerShell
124 lines
3.1 KiB
PowerShell
param(
|
|
[string]$BaseUrl = 'http://localhost:5099'
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
$stamp = Get-Date -Format 'yyyyMMddHHmmss'
|
|
$phoneA = "+7999$stamp"
|
|
$phoneB = "+7888$stamp"
|
|
|
|
function Invoke-JsonPost {
|
|
param(
|
|
[string]$Uri,
|
|
[hashtable]$Body,
|
|
[hashtable]$Headers = @{}
|
|
)
|
|
|
|
return Invoke-RestMethod `
|
|
-Uri $Uri `
|
|
-Method Post `
|
|
-Headers $Headers `
|
|
-ContentType 'application/json' `
|
|
-Body ($Body | ConvertTo-Json)
|
|
}
|
|
|
|
$challengeA = Invoke-JsonPost `
|
|
-Uri "$BaseUrl/api/auth/request-code" `
|
|
-Body @{ phoneNumber = $phoneA }
|
|
|
|
$sessionA = Invoke-JsonPost `
|
|
-Uri "$BaseUrl/api/auth/verify-code" `
|
|
-Body @{
|
|
challengeId = $challengeA.challengeId
|
|
phoneNumber = $phoneA
|
|
code = $challengeA.testCode
|
|
displayName = 'Phone Smoke A'
|
|
}
|
|
|
|
$challengeB = Invoke-JsonPost `
|
|
-Uri "$BaseUrl/api/auth/request-code" `
|
|
-Body @{ phoneNumber = $phoneB }
|
|
|
|
$sessionB = Invoke-JsonPost `
|
|
-Uri "$BaseUrl/api/auth/verify-code" `
|
|
-Body @{
|
|
challengeId = $challengeB.challengeId
|
|
phoneNumber = $phoneB
|
|
code = $challengeB.testCode
|
|
displayName = 'Phone Smoke B'
|
|
}
|
|
|
|
$headersA = @{
|
|
Authorization = "Bearer $($sessionA.accessToken)"
|
|
}
|
|
|
|
$meA = Invoke-RestMethod `
|
|
-Uri "$BaseUrl/api/users/me" `
|
|
-Method Get `
|
|
-Headers $headersA
|
|
|
|
$resolve = Invoke-JsonPost `
|
|
-Uri "$BaseUrl/api/users/contacts/resolve" `
|
|
-Headers $headersA `
|
|
-Body @{
|
|
phoneNumbers = @(
|
|
$phoneB,
|
|
'+7 (777) 000-00-00'
|
|
)
|
|
}
|
|
|
|
if ($null -eq $resolve) {
|
|
$resolve = @()
|
|
}
|
|
else {
|
|
$resolve = @($resolve)
|
|
}
|
|
|
|
$repeatChallengeA = Invoke-JsonPost `
|
|
-Uri "$BaseUrl/api/auth/request-code" `
|
|
-Body @{ phoneNumber = $phoneA }
|
|
|
|
$repeatSessionA = Invoke-JsonPost `
|
|
-Uri "$BaseUrl/api/auth/verify-code" `
|
|
-Body @{
|
|
challengeId = $repeatChallengeA.challengeId
|
|
phoneNumber = $phoneA
|
|
code = $repeatChallengeA.testCode
|
|
displayName = $null
|
|
}
|
|
|
|
$chat = Invoke-JsonPost `
|
|
-Uri "$BaseUrl/api/chats/direct" `
|
|
-Headers $headersA `
|
|
-Body @{
|
|
userId = $sessionB.user.id
|
|
}
|
|
|
|
$chats = Invoke-RestMethod `
|
|
-Uri "$BaseUrl/api/chats" `
|
|
-Method Get `
|
|
-Headers $headersA
|
|
|
|
if ($null -eq $chats) {
|
|
$chats = @()
|
|
}
|
|
else {
|
|
$chats = @($chats)
|
|
}
|
|
|
|
[pscustomobject]@{
|
|
PhoneARegistered = -not $challengeA.isRegistered
|
|
PhoneBRegistered = -not $challengeB.isRegistered
|
|
PhoneAMeDisplayName = $meA.displayName
|
|
PhoneAMePhone = $meA.phoneNumber
|
|
ResolvedCount = $resolve.Count
|
|
ResolvedPhone = if ($resolve.Count -gt 0) { $resolve[0].phoneNumber } else { $null }
|
|
ResolvedDisplayName = if ($resolve.Count -gt 0) { $resolve[0].user.displayName } else { $null }
|
|
ReLoginRegistered = $repeatChallengeA.isRegistered
|
|
ReLoginSameUser = $repeatSessionA.user.id -eq $sessionA.user.id
|
|
DirectChatType = $chat.type
|
|
DirectChatCreated = $chat.type -eq 1 -or $chat.type -eq 'Direct'
|
|
ChatsCount = $chats.Count
|
|
}
|