mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-11-05 01:47:21 +00:00
Improved the dialogs for local data sources and the Batch Processing assistant (#1096)
Co-authored-by: Thorsten Sommer <SommerEngineering@users.noreply.github.com>
This commit is contained in:
1 parent
149395c1a0
commit
f7e6ceb915
45 files changed
+2514
-361
No files matched your search
@@ -4,7 +4,6 @@ using AIStudio.Settings;
|
||||
using AIStudio.Settings.DataModel;
|
||||
using AIStudio.Tools;
|
||||
using AIStudio.Tools.Services;
|
||||
using AIStudio.Tools.Validation;
|
||||
|
||||
namespace AIStudio.Tests.Tools;
|
||||
|
||||
@@ -22,7 +21,7 @@ public sealed class FileExclusionsTests
|
||||
[TestCase(FileExclusions.DEFAULT_PATTERNS)]
|
||||
public void ValidExclusionListsAreAccepted(string patterns)
|
||||
{
|
||||
Assert.That(new DataSourceValidation().ValidateExcludePatterns(patterns), Is.Null);
|
||||
Assert.That(FileExclusions.Validate(patterns), Is.Null);
|
||||
}
|
||||
|
||||
[TestCase("a/b/")]
|
||||
@@ -33,7 +32,72 @@ public sealed class FileExclusionsTests
|
||||
[TestCase("**/bin/")]
|
||||
public void InvalidExclusionListsAreRejected(string patterns)
|
||||
{
|
||||
Assert.That(new DataSourceValidation().ValidateExcludePatterns(patterns), Is.Not.Null);
|
||||
Assert.That(FileExclusions.Validate(patterns), Is.Not.Null);
|
||||
}
|
||||
|
||||
[TestCase(null, true)]
|
||||
[TestCase("", true)]
|
||||
[TestCase(" ; \r\n", true)]
|
||||
[TestCase("build/;cmake-build-*/", true)]
|
||||
[TestCase(".env/;archive.v1/;*.vmwarevm/", true)]
|
||||
[TestCase("*.pdf", false)]
|
||||
[TestCase("Dockerfile", false)]
|
||||
[TestCase("node_modules", false)]
|
||||
[TestCase("build/;*.txt", false)]
|
||||
public void FolderFieldRequiresExplicitFolderRules(string? patterns, bool valid)
|
||||
{
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(FileExclusions.IsValidFolders(patterns), Is.EqualTo(valid));
|
||||
Assert.That(FileExclusions.ValidateFolders(patterns) is null, Is.EqualTo(valid));
|
||||
});
|
||||
}
|
||||
|
||||
[TestCase(null, true)]
|
||||
[TestCase("", true)]
|
||||
[TestCase(" ; \r\n", true)]
|
||||
[TestCase("*.pdf;draft-*;report-?.md", true)]
|
||||
[TestCase("Dockerfile;Caddyfile;.gitignore", true)]
|
||||
[TestCase("build", true)]
|
||||
[TestCase("build/", false)]
|
||||
[TestCase("*.tmp;obj/", false)]
|
||||
public void FileFieldRejectsFolderRulesButAcceptsExtensionlessFiles(string? patterns, bool valid)
|
||||
{
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(FileExclusions.IsValidFiles(patterns), Is.EqualTo(valid));
|
||||
Assert.That(FileExclusions.ValidateFiles(patterns) is null, Is.EqualTo(valid));
|
||||
});
|
||||
}
|
||||
|
||||
[TestCase(":text:")]
|
||||
[TestCase(":documents:")]
|
||||
[TestCase("src/build/")]
|
||||
[TestCase("**/*.tmp")]
|
||||
[TestCase("/")]
|
||||
[TestCase("./")]
|
||||
public void BothFieldValidatorsReuseTheExistingSyntaxErrors(string patterns)
|
||||
{
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(FileExclusions.IsValidFolders(patterns), Is.False);
|
||||
Assert.That(FileExclusions.IsValidFiles(patterns), Is.False);
|
||||
Assert.That(FileExclusions.ValidateFolders(patterns), Is.EqualTo(FileExclusions.Validate(patterns)));
|
||||
Assert.That(FileExclusions.ValidateFiles(patterns), Is.EqualTo(FileExclusions.Validate(patterns)));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void StoredListsStillAcceptBothKindsOfRulesTogether()
|
||||
{
|
||||
const string PATTERNS = "bin/;*.pdf;Dockerfile;.git/";
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(FileExclusions.IsValid(PATTERNS), Is.True);
|
||||
Assert.That(FileExclusions.Validate(PATTERNS), Is.Null);
|
||||
Assert.That(FileExclusions.ExcludesFolder("bin", FileExclusions.Parse(PATTERNS)), Is.True);
|
||||
Assert.That(FileExclusions.ExcludesFile("report.pdf", FileExclusions.Parse(PATTERNS)), Is.True);
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -42,6 +106,18 @@ public sealed class FileExclusionsTests
|
||||
Assert.That(FileExclusions.Parse(" bin/ ;obj/\r\n\r\n*.min.js\nBIN/ "), Is.EqualTo(new[] { "bin/", "obj/", "*.min.js" }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GroupingSplitsFoldersFromFilesAndDropsDuplicates()
|
||||
{
|
||||
var groups = FileExclusions.Group(" bin/ ;*.min.js\r\nobj/;BIN/;;\n*.MIN.js");
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(groups.Folders, Is.EqualTo("bin/; obj/"));
|
||||
Assert.That(groups.Files, Is.EqualTo("*.min.js"));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SettingsFromBeforeTheListGetTheDefault()
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user