Fix frontend tests running

This commit is contained in:
Alexey Safronov 2023-03-09 12:12:31 +04:00
parent 3acd390f2b
commit 34b3fe715c
6 changed files with 39 additions and 509 deletions

View File

@ -1,2 +1,5 @@
PUSHD %~dp0.. PUSHD %~dp0..
dotnet test common\Tests\Frontend.Translations.Tests\Frontend.Translations.Tests.csproj --filter Name~SpellCheckTest -l:html -r TestsResults set dir=%~dp0..
echo %dir%
dotnet test common\Tests\Frontend.Translations.Tests\Frontend.Translations.Tests.csproj --filter Name~SpellCheckTest -l:html --environment "BASE_DIR=%dir%" --results-directory "%dir%/TestsResults"

View File

@ -0,0 +1,8 @@
rd="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
echo "Run script directory:" $dir
dir=$(builtin cd $rd/../; pwd)
echo "Root directory:" $dir
dotnet test $dir/common/Tests/Frontend.Translations.Tests/Frontend.Translations.Tests.csproj --filter Name~SpellCheckTest -l:html --results-directory "$dir/TestsResults" --environment "BASE_DIR=$dir"

View File

@ -1,4 +1,4 @@
PUSHD %~dp0.. PUSHD %~dp0..
set dir=%~dp0.. set dir=%~dp0..
echo %dir% echo %dir%
dotnet test common\Tests\Frontend.Translations.Tests\Frontend.Translations.Tests.csproj --filter "TestCategory=FastRunning" -l:html --environment "BASE_DIR=%dir%" --results-directory "%dir%/TestsResults" dotnet test common\Tests\Frontend.Translations.Tests\Frontend.Translations.Tests.csproj --filter "TestCategory=Locales" -l:html --environment "BASE_DIR=%dir%" --results-directory "%dir%/TestsResults"

View File

@ -5,4 +5,4 @@ dir=$(builtin cd $rd/../; pwd)
echo "Root directory:" $dir echo "Root directory:" $dir
dotnet test $dir/common/Tests/Frontend.Translations.Tests/Frontend.Translations.Tests.csproj --filter "TestCategory=FastRunning" -l:html --results-directory "$dir/TestsResults" --environment "BASE_DIR=$dir" dotnet test $dir/common/Tests/Frontend.Translations.Tests/Frontend.Translations.Tests.csproj --filter "TestCategory=Locales" -l:html --results-directory "$dir/TestsResults" --environment "BASE_DIR=$dir"

View File

@ -181,7 +181,7 @@ public class ImagesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Images")]
public void ParseMd5Test() public void ParseMd5Test()
{ {
Assert.AreEqual(0, HashErrorFiles.Count, string.Join("\r\n", Assert.AreEqual(0, HashErrorFiles.Count, string.Join("\r\n",
@ -189,7 +189,7 @@ public class ImagesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Images")]
public void DublicatesFilesByMD5HashTest() public void DublicatesFilesByMD5HashTest()
{ {
var duplicatesByMD5 = ImageFiles var duplicatesByMD5 = ImageFiles
@ -205,7 +205,7 @@ public class ImagesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Images")]
public void DublicatesFilesByFileNameButDifferentByMD5HashTest() public void DublicatesFilesByFileNameButDifferentByMD5HashTest()
{ {
var duplicatesByNameWithDifMD5 = ImageFiles var duplicatesByNameWithDifMD5 = ImageFiles
@ -222,7 +222,7 @@ public class ImagesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Images")]
public void UselessImagesTest() public void UselessImagesTest()
{ {
var usedImages = SourceImageFiles var usedImages = SourceImageFiles
@ -371,487 +371,5 @@ public class ImagesTest
} }
Assert.AreEqual(0, 0); Assert.AreEqual(0, 0);
} }
/*[Test]
[Category("FastRunning")]
public void NotTranslatedKeysTest()
{
var message = $"Next languages are not equal 'en' by translated keys count:\r\n\r\n";
var exists = false;
var i = 0;
foreach (var module in ModuleFolders)
{
if (module.AvailableLanguages == null)
continue;
var enLanguages = module.AvailableLanguages.Where(l => l.Language == "en").ToList();
var otherLanguages = module.AvailableLanguages.Where(l => l.Language != "en").ToList();
foreach (var lng in otherLanguages)
{
var lngKeys = lng.Translations.Select(f => f.Key).ToList();
var enKeys = enLanguages.Where(l => l.Path == lng.Path.Replace(Utils.ConvertPathToOS($"/{lng.Language}/"), Utils.ConvertPathToOS("/en/")))
.SelectMany(l => l.Translations.Select(f => f.Key))
.ToList();
var notFoundKeys = enKeys.Except(lngKeys).ToList();
if (!notFoundKeys.Any())
continue;
exists = true;
message += $"{++i}. Language ('{lng.Language}'={notFoundKeys.Count}/'en'={enKeys.Count}). Path '{lng.Path}' " +
$"Not found keys:\r\n\r\n";
message += string.Join("\r\n", notFoundKeys) + "\r\n\r\n";
// Save empty not found keys
//SaveNotFoundKeys(lng.Path, notFoundKeys);
}
}
Assert.AreEqual(false, exists, message);
}
[Test]
[Category("FastRunning")]
public void NotFoundKeysTest()
{
var allEnKeys = TranslationFiles
.Where(file => file.Language == "en")
.SelectMany(item => item.Translations)
.Select(item => item.Key);
var allJsTranslationKeys = JavaScriptFiles
.Where(f => !f.Path.Contains("Banner.js")) // skip Banner.js (translations from firebase)
.SelectMany(j => j.TranslationKeys)
.Select(k => k.Substring(k.IndexOf(":") + 1))
.Distinct();
var notFoundJsKeys = allJsTranslationKeys.Except(allEnKeys);
Assert.AreEqual(0, notFoundJsKeys.Count(),
"Some i18n-keys are not exist in translations in 'en' language: Keys:\r\n{0}",
string.Join("\r\n", notFoundJsKeys));
}
[Test]
[Category("FastRunning")]
public void UselessTranslationKeysTest()
{
var allEnKeys = TranslationFiles
.Where(file => file.Language == "en")
.SelectMany(item => item.Translations)
.Select(item => item.Key)
.Where(k => !k.StartsWith("Culture_"))
.OrderBy(t => t);
var allJsTranslationKeys = JavaScriptFiles
.SelectMany(j => j.TranslationKeys)
.Select(k => k.Substring(k.IndexOf(":") + 1))
.Where(k => !k.StartsWith("Culture_"))
.Distinct()
.OrderBy(t => t);
var notFoundi18nKeys = allEnKeys.Except(allJsTranslationKeys);
Assert.AreEqual(0, notFoundi18nKeys.Count(),
"Some i18n-keys are not found in js keys:\r\n{0}",
string.Join("\r\n", notFoundi18nKeys));
}
[Test]
[Category("FastRunning")]
public void UselessModuleTranslationKeysTest()
{
var notFoundi18nKeys = new List<KeyValuePair<string, List<string>>>();
var message = $"Some i18n-keys are not found in Module or Common translations: \r\nKeys: \r\n\r\n";
var index = 0;
for (int i = 0; i < ModuleFolders.Count; i++)
{
var module = ModuleFolders[i];
if (module.AppliedJsTranslationKeys == null && module.AvailableLanguages != null)
{
message += $"{++index}. 'ANY LANGUAGES' '{module.Path}' NOT USED\r\n";
var list = module.AvailableLanguages
.SelectMany(l => l.Translations.Select(t => t.Key).ToList())
.ToList();
notFoundi18nKeys.Add(new KeyValuePair<string, List<string>>("ANY LANGUAGES", list));
continue;
}
var notCommonKeys = module.AppliedJsTranslationKeys
.Where(k => !k.StartsWith("Common:"))
.OrderBy(t => t)
.ToList();
var onlyCommonKeys = module.AppliedJsTranslationKeys
.Except(notCommonKeys)
.Select(k => k.Replace("Common:", ""))
.OrderBy(t => t)
.ToList();
notCommonKeys = notCommonKeys.Select(k => k.Substring(k.IndexOf(":") + 1)).ToList();
if (onlyCommonKeys.Any())
{
foreach (var lng in CommonTranslations)
{
var list = onlyCommonKeys
.Except(lng.Translations.Select(t => t.Key))
.ToList();
if (!list.Any())
continue;
message += $"{++index}. '{lng.Language}' '{module.Path}' \r\n {string.Join("\r\n", list)} \r\n";
notFoundi18nKeys.Add(new KeyValuePair<string, List<string>>(lng.Language, list));
}
}
if (module.AvailableLanguages == null)
{
if (notCommonKeys.Any())
{
message += $"{++index}. 'ANY LANGUAGES' '{module.Path}' \r\n {string.Join("\r\n", notCommonKeys)} \r\n";
notFoundi18nKeys.Add(new KeyValuePair<string, List<string>>("ANY LANGUAGES", notCommonKeys));
}
continue;
}
foreach (var lng in module.AvailableLanguages)
{
var list = lng.Translations
.Select(t => t.Key)
.Except(notCommonKeys)
.ToList();
if (!list.Any())
continue;
message += $"{++index}. '{lng.Language}' '{module.Path}' \r\n {string.Join("\r\n", list)} \r\n";
notFoundi18nKeys.Add(new KeyValuePair<string, List<string>>(lng.Language, list));
}
}
Assert.AreEqual(0, notFoundi18nKeys.Count, message);
}
[Test]
[Category("FastRunning")]
public void NotTranslatedCommonKeysTest()
{
var message = $"Some i18n-keys are not found in COMMON translations: \r\nKeys: \r\n\r\n";
var enLanguageKeys = CommonTranslations
.Where(l => l.Language == "en")
.FirstOrDefault()
.Translations
.Select(k => k.Key)
.ToList();
var otherCommonLanguages = CommonTranslations.Where(l => l.Language != "en");
var exists = false;
var i = 0;
foreach (var lng in otherCommonLanguages)
{
var list = enLanguageKeys
.Except(lng.Translations.Select(t => t.Key))
.ToList();
if (!list.Any())
continue;
message += $"{++i}. '{lng.Language}' Keys: \r\n {string.Join("\r\n", list)} \r\n";
exists = true;
// Save empty not found keys
//SaveNotFoundKeys(lng.Path, list);
}
Assert.AreEqual(false, exists, message);
}
public static void UpdateKeys(string pathToJson, List<TranslationItem> newKeys)
{
if (!File.Exists(pathToJson) || !newKeys.Any())
return;
var jsonTranslation = JObject.Parse(File.ReadAllText(pathToJson));
var keys = newKeys.Select(k => k.Key).ToList();
var properties = jsonTranslation.Properties().ToList();
properties.ForEach(p =>
{
var newKey = newKeys.Where(k => k.Key == p.Name).FirstOrDefault();
if (newKey != null)
p.Value = newKey.Value;
});
var result = new JObject(properties);
var sortedJsonString = JsonConvert.SerializeObject(result, Formatting.Indented);
File.WriteAllText(pathToJson, sortedJsonString, Encoding.UTF8);
}
public static void RemoveEmptyKeys(string pathToJson, List<string> emptyKeys)
{
if (!File.Exists(pathToJson) || !emptyKeys.Any())
return;
var jsonTranslation = JObject.Parse(File.ReadAllText(pathToJson));
var properties = jsonTranslation.Properties().Where(p => !emptyKeys.Contains(p.Name)).ToList();
var result = new JObject(properties);
var sortedJsonString = JsonConvert.SerializeObject(result, Formatting.Indented);
File.WriteAllText(pathToJson, sortedJsonString, Encoding.UTF8);
}
public string GetWorkspace(string path)
{
var folderName = Directory.GetParent(Path.GetDirectoryName(path)).Name;
switch (folderName)
{
case "Client":
return Workspaces.Find(w => w.Contains("client"));
case "Editor":
return Workspaces.Find(w => w.Contains("editor"));
case "Login":
return Workspaces.Find(w => w.Contains("login"));
default:
return Path.Combine(BasePath, Utils.ConvertPathToOS("public\\locales"));
}
}
[Test]
[Category("FastRunning")]
public void EmptyValueKeysTest()
{
var message = $"Next files have empty keys:\r\n\r\n";
var exists = false;
var i = 0;
foreach (var module in ModuleFolders)
{
if (module.AvailableLanguages == null)
continue;
foreach (var lng in module.AvailableLanguages)
{
var emptyTranslationItems = lng.Translations.Where(f => string.IsNullOrEmpty(f.Value)).ToList();
if (!emptyTranslationItems.Any())
continue;
exists = true;
message += $"{++i}. Language '{lng.Language}' (Count: {emptyTranslationItems.Count}). Path '{lng.Path}' " +
$"Empty keys:\r\n\r\n";
var emptyKeys = emptyTranslationItems.Select(t => t.Key).ToList();
message += string.Join("\r\n", emptyKeys) + "\r\n\r\n";
}
}
foreach (var lng in CommonTranslations)
{
var emptyTranslationItems = lng.Translations.Where(f => string.IsNullOrEmpty(f.Value)).ToList();
if (!emptyTranslationItems.Any())
continue;
exists = true;
message += $"{++i}. Language '{lng.Language}' (Count: {emptyTranslationItems.Count}). Path '{lng.Path}' " +
$"Empty keys:\r\n\r\n";
var emptyKeys = emptyTranslationItems.Select(t => t.Key).ToList();
message += string.Join("\r\n", emptyKeys) + "\r\n\r\n";
}
Assert.AreEqual(false, exists, message);
}
[Test]
[Category("FastRunning")]
public void LanguageTranslatedPercentTest()
{
var message = $"Next languages translated less then 100%:\r\n\r\n";
var groupedByLng = TranslationFiles
.GroupBy(t => t.Language)
.Select(g => new
{
Language = g.Key,
AllTranslated = g.ToList()
.SelectMany(t => t.Translations)
.ToList()
})
.Select(t => new
{
t.Language,
TotalKeysCount = t.AllTranslated.LongCount(),
EmptyKeysCount = t.AllTranslated
.Where(t => string.IsNullOrEmpty(t.Value))
.LongCount()
})
.ToList();
var i = 0;
var exists = false;
var expectedTotalKeysCount = groupedByLng.Where(t => t.Language == "en").Single().TotalKeysCount;
foreach (var lng in groupedByLng)
{
if (lng.EmptyKeysCount == 0 && lng.TotalKeysCount == expectedTotalKeysCount)
continue;
exists = true;
var translated = lng.TotalKeysCount == expectedTotalKeysCount
? Math.Round(100f - (lng.EmptyKeysCount * 100f / expectedTotalKeysCount), 1)
: Math.Round(lng.TotalKeysCount * 100f / expectedTotalKeysCount, 1);
message += $"{++i}. Language '{lng.Language}' translated by '{translated}%'\r\n";
}
Assert.AreEqual(false, exists, message);
}
[Test]
[Category("FastRunning")]
public void NotTranslatedToastsTest()
{
var message = $"Next text not translated in toasts:\r\n\r\n";
var i = 0;
NotTranslatedToasts.GroupBy(t => t.Key)
.Select(g => new
{
FilePath = g.Key,
Values = g.ToList()
})
.ToList()
.ForEach(t =>
{
message += $"{++i}. Path='{t.FilePath}'\r\n\r\n{string.Join("\r\n", t.Values.Select(v => v.Value))}\r\n\r\n";
});
Assert.AreEqual(0, NotTranslatedToasts.Count, message);
}
[Test]
[Category("FastRunning")]
public void WrongTranslationVariablesTest()
{
var message = $"Next keys have wrong variables:\r\n\r\n";
var regVariables = new Regex("\\{\\{([^\\{].?[^\\}]+)\\}\\}", RegexOptions.Compiled | RegexOptions.Multiline);
var groupedByLng = TranslationFiles
.GroupBy(t => t.Language)
.Select(g => new
{
Language = g.Key,
TranslationsWithVariables = g.ToList()
.SelectMany(t => t.Translations)
.Where(k => k.Value.IndexOf("{{") != -1)
.Select(t => new
{
t.Key,
t.Value,
Variables = regVariables.Matches(t.Value)
.Select(m => m.Groups[1]?.Value?.Trim().Replace(", lowercase", ""))
.ToList()
})
.ToList()
})
.ToList();
var enWithVariables = groupedByLng
.Where(t => t.Language == "en")
.SelectMany(t => t.TranslationsWithVariables)
.ToList();
var otherLanguagesWithVariables = groupedByLng
.Where(t => t.Language != "en")
.ToList();
var i = 0;
var errorsCount = 0;
foreach (var lng in otherLanguagesWithVariables)
{
foreach (var t in lng.TranslationsWithVariables)
{
var enKey = enWithVariables
.Where(en => en.Key == t.Key)
.FirstOrDefault();
if (enKey == null)
{
// wrong
message += $"{++i}. lng='{lng.Language}' key='{t.Key}' has no 'en' language variant (!!!useless key!!!)\r\n\r\n";
errorsCount++;
continue;
}
if (enKey.Variables.Count != t.Variables.Count)
{
// wrong
message += $"{++i}. lng='{lng.Language}' key='{t.Key}' has less variables then 'en' language have " +
$"(en={enKey.Variables.Count}|{lng.Language}={t.Variables.Count})\r\n" +
$"'en': '{enKey.Value}'\r\n'{lng.Language}': '{t.Value}'\r\n\r\n";
errorsCount++;
}
if (!t.Variables.All(v => enKey.Variables.Contains(v)))
{
// wrong
errorsCount++;
message += $"{++i}. lng='{lng.Language}' key='{t.Key}' has not equals variables of 'en' language have\r\n\r\n" +
$"Have to be:\r\n'{enKey.Value}'\r\n\r\n{string.Join("\r\n", enKey.Variables)}\r\n\r\n" +
$"But in real:\r\n'{t.Value}'\r\n\r\n{string.Join("\r\n", t.Variables)} \r\n\r\n";
}
}
}
Assert.AreEqual(0, errorsCount, message);
}*/
} }

View File

@ -174,6 +174,7 @@ public class LocalesTest
let clientDir = Path.Combine(BasePath, wsPath) let clientDir = Path.Combine(BasePath, wsPath)
from filePath in Utils.GetFiles(clientDir, searchPatern, SearchOption.AllDirectories) from filePath in Utils.GetFiles(clientDir, searchPatern, SearchOption.AllDirectories)
where !filePath.Contains(Utils.ConvertPathToOS("dist/")) where !filePath.Contains(Utils.ConvertPathToOS("dist/"))
&& !filePath.Contains(Utils.ConvertPathToOS("storybook-static/"))
&& !filePath.Contains(".test.js") && !filePath.Contains(".test.js")
&& !filePath.Contains(".stories.js") && !filePath.Contains(".stories.js")
&& !filePath.Contains(".test.ts") && !filePath.Contains(".test.ts")
@ -316,12 +317,12 @@ public class LocalesTest
TestContext.Progress.WriteLine($"Found CommonTranslations = {CommonTranslations.Count()}. First path is '{CommonTranslations.FirstOrDefault()?.Path}'"); TestContext.Progress.WriteLine($"Found CommonTranslations = {CommonTranslations.Count()}. First path is '{CommonTranslations.FirstOrDefault()?.Path}'");
TestContext.Progress.WriteLine($"Found _md5Excludes = {_md5Excludes.Count()} Path to file '{_md5ExcludesPath}'"); TestContext.Progress.WriteLine($"Found _md5Excludes = {_md5Excludes.Count()} Path to file '{_md5ExcludesPath}'");
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void ParseJsonTest() public void ParseJsonTest()
{ {
Assert.AreEqual(0, ParseJsonErrors.Count, string.Join("\r\n", ParseJsonErrors.Select(e => $"File path = '{e.Path}' failed to parse with error: '{e.Exception.Message}'"))); Assert.AreEqual(0, ParseJsonErrors.Count, string.Join("\r\n", ParseJsonErrors.Select(e => $"File path = '{e.Path}' failed to parse with error: '{e.Exception.Message}'")));
@ -350,7 +351,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("LongRunning")] [Category("SpellCheck")]
public void SpellCheckTest() public void SpellCheckTest()
{ {
var i = 0; var i = 0;
@ -425,7 +426,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void SingleKeyFilesTest() public void SingleKeyFilesTest()
{ {
var singleKeyTranslationFiles = TranslationFiles var singleKeyTranslationFiles = TranslationFiles
@ -436,7 +437,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void DublicatesFilesByMD5HashTest() public void DublicatesFilesByMD5HashTest()
{ {
var duplicatesByMD5 = TranslationFiles var duplicatesByMD5 = TranslationFiles
@ -452,7 +453,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void FullEnDublicatesTest() public void FullEnDublicatesTest()
{ {
var fullEnDuplicates = TranslationFiles var fullEnDuplicates = TranslationFiles
@ -469,7 +470,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void EnDublicatesByContentTest() public void EnDublicatesByContentTest()
{ {
var allRuTranslations = TranslationFiles var allRuTranslations = TranslationFiles
@ -548,7 +549,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void NotAllLanguageTranslatedTest() public void NotAllLanguageTranslatedTest()
{ {
var groupedByLng = TranslationFiles var groupedByLng = TranslationFiles
@ -625,7 +626,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void NotTranslatedKeysTest() public void NotTranslatedKeysTest()
{ {
var message = $"Next languages are not equal 'en' by translated keys count:\r\n\r\n"; var message = $"Next languages are not equal 'en' by translated keys count:\r\n\r\n";
@ -672,7 +673,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void NotFoundKeysTest() public void NotFoundKeysTest()
{ {
var allEnKeys = TranslationFiles var allEnKeys = TranslationFiles
@ -694,7 +695,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void UselessTranslationKeysTest() public void UselessTranslationKeysTest()
{ {
var allEnKeys = TranslationFiles var allEnKeys = TranslationFiles
@ -719,7 +720,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void UselessModuleTranslationKeysTest() public void UselessModuleTranslationKeysTest()
{ {
var notFoundi18nKeys = new List<KeyValuePair<string, List<string>>>(); var notFoundi18nKeys = new List<KeyValuePair<string, List<string>>>();
@ -807,7 +808,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void NotTranslatedCommonKeysTest() public void NotTranslatedCommonKeysTest()
{ {
var message = $"Some i18n-keys are not found in COMMON translations: \r\nKeys: \r\n\r\n"; var message = $"Some i18n-keys are not found in COMMON translations: \r\nKeys: \r\n\r\n";
@ -904,7 +905,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void EmptyValueKeysTest() public void EmptyValueKeysTest()
{ {
// Uncomment if new keys are available // Uncomment if new keys are available
@ -1008,7 +1009,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void LanguageTranslatedPercentTest() public void LanguageTranslatedPercentTest()
{ {
var message = $"Next languages translated less then 100%:\r\n\r\n"; var message = $"Next languages translated less then 100%:\r\n\r\n";
@ -1055,7 +1056,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void NotTranslatedToastsTest() public void NotTranslatedToastsTest()
{ {
var message = $"Next text not translated in toasts:\r\n\r\n"; var message = $"Next text not translated in toasts:\r\n\r\n";
@ -1078,7 +1079,7 @@ public class LocalesTest
} }
[Test] [Test]
[Category("FastRunning")] [Category("Locales")]
public void WrongTranslationVariablesTest() public void WrongTranslationVariablesTest()
{ {
var message = $"Next keys have wrong variables:\r\n\r\n"; var message = $"Next keys have wrong variables:\r\n\r\n";
@ -1156,7 +1157,7 @@ public class LocalesTest
} }
//[Test] //[Test]
//[Category("FastRunning")] //[Category("Locales")]
//public void TranslationsEncodingTest() //public void TranslationsEncodingTest()
//{ //{
// /*//Convert to UTF-8 // /*//Convert to UTF-8