forked from StartAutomating/PowerShellAI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGet-CompletionFromMessages.tests.ps1
47 lines (39 loc) · 1.58 KB
/
Get-CompletionFromMessages.tests.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Import-Module $PSScriptRoot\..\PowerShellAI.psd1 -Force
Describe "Get-CompletionFromMessages" -Tag "Get-CompletionFromMessages" {
BeforeAll {
$script:savedKey = $env:OpenAIKey
$env:OpenAIKey = 'sk-1234567890'
}
AfterAll {
$env:OpenAIKey = $savedKey
}
It "tests the function Get-CompletionFromMessages exists" {
$actual = Get-Command Get-CompletionFromMessages -ErrorAction SilentlyContinue
$actual | Should -Not -BeNullOrEmpty
}
It "tests Get-CompletionFromMessages has a parameter named Messages" {
$actual = Get-Command Get-CompletionFromMessages -ErrorAction SilentlyContinue
$actual.Parameters.Keys | Should -Contain Messages
}
It "tests Get-CompletionFromMessages returns a response" {
Mock Invoke-RestMethodWithProgress -ModuleName PowerShellAI -ParameterFilter {
$Params.Method -eq 'Post' -and $Params.Uri -eq (Get-OpenAIChatCompletionUri)
} -MockWith {
[PSCustomObject]@{
choices = @(
[PSCustomObject]@{
message = [PSCustomObject]@{
content = 'Mocked Get-GPT4Completion call'
}
}
)
}
}
$messages = $(
New-ChatMessageTemplate -Role system "I am a bot"
New-ChatMessageTemplate -Role user "Hello"
)
$actual = Get-CompletionFromMessages -Messages $messages
$actual.content | Should -BeExactly "Mocked Get-GPT4Completion call"
}
}