Skip to content
This repository was archived by the owner on Nov 13, 2025. It is now read-only.

Commit 4fa112e

Browse files
author
Tomasz Juszczak
committed
Improved command matching for some patterns
1 parent aa3f201 commit 4fa112e

File tree

5 files changed

+86
-5
lines changed

5 files changed

+86
-5
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,6 @@ bin/
22
obj/
33
/packages/
44
riderModule.iml
5-
/_ReSharper.Caches/
5+
/_ReSharper.Caches/
6+
/Slack-GPT-Socket/app-log.db
7+
/Slack-GPT-Socket/app.db

Slack-GPT-Socket.sln.DotSettings.user

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,19 @@
11
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
2+
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=518a87a3_002D49c7_002D40fb_002Dbec1_002D478ce2091847/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="GptClientEdgeCasesTests_1" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
3+
&lt;TestAncestor&gt;&#xD;
4+
&lt;TestId&gt;NUnit3x::8513CAC6-F4FB-4821-B229-7B2E31E1DA66::net7.0::Slack_GPT_Tests.GptApi.GptClientEdgeCasesTests.GptClientEdgeCasesTests_1&lt;/TestId&gt;&#xD;
5+
&lt;/TestAncestor&gt;&#xD;
6+
&lt;/SessionState&gt;</s:String>
7+
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=7a21a381_002D1bd7_002D4190_002Daea7_002D60bbc3080eac/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="GptClientEdgeCasesTests_1 #3" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
8+
&lt;TestAncestor&gt;&#xD;
9+
&lt;TestId&gt;NUnit3x::8513CAC6-F4FB-4821-B229-7B2E31E1DA66::net7.0::Slack_GPT_Tests.GptApi.GptClientEdgeCasesTests.GptClientEdgeCasesTests_1&lt;/TestId&gt;&#xD;
10+
&lt;/TestAncestor&gt;&#xD;
11+
&lt;/SessionState&gt;</s:String>
12+
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=bc0f8e87_002D43a6_002D4830_002D802e_002Db69debc2f54b/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="GptClientEdgeCasesTests_1 #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
13+
&lt;TestAncestor&gt;&#xD;
14+
&lt;TestId&gt;NUnit3x::8513CAC6-F4FB-4821-B229-7B2E31E1DA66::net7.0::Slack_GPT_Tests.GptApi.GptClientEdgeCasesTests.GptClientEdgeCasesTests_1&lt;/TestId&gt;&#xD;
15+
&lt;/TestAncestor&gt;&#xD;
16+
&lt;/SessionState&gt;</s:String>
217

318

419
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=e72966db_002D060a_002D4577_002D858b_002D3601c1cb06de/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="ContextBlockSanitation_OK" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
@@ -22,5 +37,7 @@
2237
&lt;TestId&gt;NUnit3x::8513CAC6-F4FB-4821-B229-7B2E31E1DA66::net7.0::Slack_GPT_Tests.TestLiteDB.TestNullConnectionString_Ok&lt;/TestId&gt;&#xD;
2338
&lt;TestId&gt;NUnit3x::8513CAC6-F4FB-4821-B229-7B2E31E1DA66::net7.0::Slack_GPT_Tests.Handlers.CommandHandlerTests.CommandsCommand_AddOverwrite_Ok&lt;/TestId&gt;&#xD;
2439
&lt;TestId&gt;NUnit3x::8513CAC6-F4FB-4821-B229-7B2E31E1DA66::net7.0::Slack_GPT_Tests.Handlers.CommandHandlerTests.CommandsCommand_RemoveSingle_Ok&lt;/TestId&gt;&#xD;
40+
&lt;TestId&gt;NUnit3x::8513CAC6-F4FB-4821-B229-7B2E31E1DA66::net7.0::Slack_GPT_Tests.GptApi.GptClientEdgeCasesTests.GptClientEdgeCasesTests_1&lt;/TestId&gt;&#xD;
41+
&lt;TestId&gt;NUnit3x::8513CAC6-F4FB-4821-B229-7B2E31E1DA66::net7.0::Slack_GPT_Tests.GptApi.GptClientEdgeCasesTests.GptClientEdgeCases_Ok&lt;/TestId&gt;&#xD;
2542
&lt;/TestAncestor&gt;&#xD;
2643
&lt;/SessionState&gt;</s:String></wpf:ResourceDictionary>

Slack-GPT-Socket/GptApi/GptClientResolver.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,11 @@ private void ResolveModel(ref GptRequest input)
126126
private void ResolveParameters(ref GptRequest input)
127127
{
128128
var lastIndex = 0;
129-
Match match;
130-
131-
while ((match = ParameterRegex.Match(input.Prompt)).Success)
129+
Match match = ParameterRegex.Match(input.Prompt);
130+
131+
if(!match.Success) return;
132+
133+
do
132134
{
133135
var paramName = match.Groups[1].Value;
134136
var paramValueTrim = match.Groups[2]?.Value.Trim() ?? string.Empty;
@@ -163,7 +165,7 @@ private void ResolveParameters(ref GptRequest input)
163165
// if we get an exception, we'll just ignore the parameter and move on
164166
break;
165167
}
166-
}
168+
} while ((match = match.NextMatch()).Success);
167169
}
168170

169171
/// <summary>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-context "You are an expert programmer in TypeScript. You are tasked to find issues with the code and perform critical code reviews. You will ALWAYS ask questions to clarify is something is unclear. You will only provide code to fix an issue after everything is perfectly clear and understand."
2+
Given this method, please find why sometimes all there is background visible and not a still frame of a previous video.
3+
...
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
using FluentAssertions;
2+
using LiteDB;
3+
using Slack_GPT_Socket.GptApi;
4+
using Slack_GPT_Socket.Settings;
5+
using Slack_GPT_Socket.Utilities.LiteDB;
6+
7+
namespace Slack_GPT_Tests.GptApi;
8+
9+
[TestFixture]
10+
[Parallelizable(ParallelScope.All)]
11+
[FixtureLifeCycle(LifeCycle.InstancePerTestCase)]
12+
public class GptClientEdgeCasesTests
13+
{
14+
[SetUp]
15+
public void Setup()
16+
{
17+
_gptDefaults = new GptDefaults();
18+
_customCommands = new GptCustomCommands(MoqUtils.CreateOptionsMonitorMock(
19+
new GptCommands()
20+
));
21+
var userCommandDb = new UserCommandDb(new LiteDatabase("Filename=:memory:;Mode=Memory;Cache=Shared"));
22+
_resolver = new GptClientResolver(_customCommands, _gptDefaults, userCommandDb);
23+
}
24+
25+
private GptDefaults _gptDefaults;
26+
private GptCustomCommands _customCommands;
27+
private GptClientResolver _resolver;
28+
29+
private string GetTestFile(string fileName)
30+
{
31+
var solutionPath = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\"));
32+
var filePath = Path.Combine(solutionPath, $"GptApi/FileCases/{fileName}");
33+
Assert.True(File.Exists(filePath));
34+
var file = File.ReadAllText(filePath);
35+
file.Should().NotBeNull();
36+
return file;
37+
}
38+
39+
[Test]
40+
[Timeout(1000)]
41+
[TestCase("stack-overflow-30042023.txt")]
42+
public void GptClientEdgeCases_Ok(string fileName)
43+
{
44+
var content = GetTestFile(fileName);
45+
46+
var prompts = new[] {
47+
("user", content)
48+
};
49+
50+
// Act
51+
var chatRequest = _resolver.TestParseRequest("U0123ID", prompts);
52+
53+
// Assert not null
54+
chatRequest.Should().NotBeNull();
55+
chatRequest.Messages.Should().NotBeNull();
56+
}
57+
}

0 commit comments

Comments
 (0)