Refresh editor after quick reparse
This commit is contained in:
@@ -56,7 +56,7 @@
|
||||
}
|
||||
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">
|
||||
@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");
|
||||
}
|
||||
|
||||
[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(
|
||||
string rawCellText,
|
||||
string descriptionText,
|
||||
|
||||
Reference in New Issue
Block a user