Refresh editor after quick reparse
This commit is contained in:
@@ -56,7 +56,7 @@
|
|||||||
}
|
}
|
||||||
else if (Model is not null)
|
else if (Model is not null)
|
||||||
{
|
{
|
||||||
<EditForm Model="Model" OnSubmit="HandleSubmitAsync" class="critical-editor-form">
|
<EditForm @key="Model" Model="Model" OnSubmit="HandleSubmitAsync" class="critical-editor-form">
|
||||||
<div class="critical-editor-body">
|
<div class="critical-editor-body">
|
||||||
@if (!string.IsNullOrWhiteSpace(ReparseErrorMessage))
|
@if (!string.IsNullOrWhiteSpace(ReparseErrorMessage))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -370,6 +370,66 @@ public sealed class CriticalCellReparseIntegrationTests
|
|||||||
Assert.Contains(reparsed.GeneratedState!.Effects, effect => effect.EffectCode == AppCriticalEffectCodes.PowerPointModifier && effect.ValueExpression == "-2d10-16");
|
Assert.Contains(reparsed.GeneratedState!.Effects, effect => effect.EffectCode == AppCriticalEffectCodes.PowerPointModifier && effect.ValueExpression == "-2d10-16");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task Lookup_service_reparse_updates_mana_c36_after_quick_input_was_saved_without_generation()
|
||||||
|
{
|
||||||
|
var databasePath = CreateTemporaryDatabaseCopy();
|
||||||
|
var lookupService = new LookupService(CreateDbContextFactory(databasePath));
|
||||||
|
var resultId = await GetResultIdAsync(databasePath, "mana", "C", "36-45");
|
||||||
|
|
||||||
|
var initialResponse = await lookupService.GetCriticalCellEditorAsync("mana", resultId);
|
||||||
|
Assert.NotNull(initialResponse);
|
||||||
|
|
||||||
|
var editedQuickParseInput = initialResponse!.QuickParseInput.Replace("+2d10-16pp", "-2d10-16pp", StringComparison.Ordinal);
|
||||||
|
|
||||||
|
var saveResponse = await lookupService.UpdateCriticalCellAsync(
|
||||||
|
"mana",
|
||||||
|
resultId,
|
||||||
|
new CriticalCellUpdateRequest(
|
||||||
|
initialResponse.RawCellText,
|
||||||
|
editedQuickParseInput,
|
||||||
|
initialResponse.DescriptionText,
|
||||||
|
initialResponse.RawAffixText,
|
||||||
|
initialResponse.ParseStatus,
|
||||||
|
initialResponse.ParsedJson,
|
||||||
|
initialResponse.IsDescriptionOverridden,
|
||||||
|
initialResponse.IsRawAffixTextOverridden,
|
||||||
|
initialResponse.AreEffectsOverridden,
|
||||||
|
initialResponse.AreBranchesOverridden,
|
||||||
|
initialResponse.Effects,
|
||||||
|
initialResponse.Branches));
|
||||||
|
|
||||||
|
Assert.NotNull(saveResponse);
|
||||||
|
Assert.Contains(saveResponse!.Effects, effect => effect.EffectCode == AppCriticalEffectCodes.PowerPointModifier && effect.ValueExpression == "2d10-16");
|
||||||
|
|
||||||
|
var reopenedResponse = await lookupService.GetCriticalCellEditorAsync("mana", resultId);
|
||||||
|
Assert.NotNull(reopenedResponse);
|
||||||
|
Assert.Contains("-2d10-16pp", reopenedResponse!.QuickParseInput, StringComparison.Ordinal);
|
||||||
|
Assert.Contains(reopenedResponse.Effects, effect => effect.EffectCode == AppCriticalEffectCodes.PowerPointModifier && effect.ValueExpression == "2d10-16");
|
||||||
|
|
||||||
|
var reparsed = await lookupService.ReparseCriticalCellAsync(
|
||||||
|
"mana",
|
||||||
|
resultId,
|
||||||
|
new CriticalCellUpdateRequest(
|
||||||
|
reopenedResponse.RawCellText,
|
||||||
|
reopenedResponse.QuickParseInput,
|
||||||
|
reopenedResponse.DescriptionText,
|
||||||
|
reopenedResponse.RawAffixText,
|
||||||
|
reopenedResponse.ParseStatus,
|
||||||
|
reopenedResponse.ParsedJson,
|
||||||
|
reopenedResponse.IsDescriptionOverridden,
|
||||||
|
reopenedResponse.IsRawAffixTextOverridden,
|
||||||
|
reopenedResponse.AreEffectsOverridden,
|
||||||
|
reopenedResponse.AreBranchesOverridden,
|
||||||
|
reopenedResponse.Effects,
|
||||||
|
reopenedResponse.Branches));
|
||||||
|
|
||||||
|
Assert.NotNull(reparsed);
|
||||||
|
Assert.Contains(reparsed!.Effects, effect => effect.EffectCode == AppCriticalEffectCodes.PowerPointModifier && effect.ValueExpression == "-2d10-16");
|
||||||
|
Assert.NotNull(reparsed.GeneratedState);
|
||||||
|
Assert.Contains(reparsed.GeneratedState!.Effects, effect => effect.EffectCode == AppCriticalEffectCodes.PowerPointModifier && effect.ValueExpression == "-2d10-16");
|
||||||
|
}
|
||||||
|
|
||||||
private static CriticalCellUpdateRequest CreateEditorRequest(
|
private static CriticalCellUpdateRequest CreateEditorRequest(
|
||||||
string rawCellText,
|
string rawCellText,
|
||||||
string descriptionText,
|
string descriptionText,
|
||||||
|
|||||||
Reference in New Issue
Block a user