Browse Source

Fix for stale events.

pull/691/head
Sebastian 5 years ago
parent
commit
b2e3465603
  1. 3
      backend/src/Migrations/OldEvents/AppPatternAdded.cs
  2. 3
      backend/src/Migrations/OldEvents/AppPatternUpdated.cs
  3. 4
      backend/src/Squidex.Domain.Apps.Entities/Rules/Runner/DefaultRuleRunnerService.cs
  4. 8
      backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleServiceTests.cs

3
backend/src/Migrations/OldEvents/AppPatternAdded.cs

@ -7,6 +7,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Squidex.Domain.Apps.Core.Apps; using Squidex.Domain.Apps.Core.Apps;
using Squidex.Domain.Apps.Entities.Apps.DomainObject; using Squidex.Domain.Apps.Entities.Apps.DomainObject;
using Squidex.Domain.Apps.Events; using Squidex.Domain.Apps.Events;
@ -35,7 +36,7 @@ namespace Migrations.OldEvents
{ {
var newSettings = new AppSettings var newSettings = new AppSettings
{ {
Patterns = new List<Pattern>(state.Settings.Patterns) Patterns = new List<Pattern>(state.Settings.Patterns.Where(x => x.Name != Name || x.Regex != Pattern))
{ {
new Pattern(Name, Pattern) new Pattern(Name, Pattern)
{ {

3
backend/src/Migrations/OldEvents/AppPatternUpdated.cs

@ -7,6 +7,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Squidex.Domain.Apps.Core.Apps; using Squidex.Domain.Apps.Core.Apps;
using Squidex.Domain.Apps.Entities.Apps.DomainObject; using Squidex.Domain.Apps.Entities.Apps.DomainObject;
using Squidex.Domain.Apps.Events; using Squidex.Domain.Apps.Events;
@ -35,7 +36,7 @@ namespace Migrations.OldEvents
{ {
var newSettings = new AppSettings var newSettings = new AppSettings
{ {
Patterns = new List<Pattern>(state.Settings.Patterns) Patterns = new List<Pattern>(state.Settings.Patterns.Where(x => x.Name != Name || x.Regex != Pattern))
{ {
new Pattern(Name, Pattern) new Pattern(Name, Pattern)
{ {

4
backend/src/Squidex.Domain.Apps.Entities/Rules/Runner/DefaultRuleRunnerService.cs

@ -121,8 +121,8 @@ namespace Squidex.Domain.Apps.Entities.Rules.Runner
AppId = rule.AppId, AppId = rule.AppId,
Rule = rule.RuleDef, Rule = rule.RuleDef,
RuleId = rule.Id, RuleId = rule.Id,
IgnoreStale = true IgnoreStale = false
}; };
} }
} }
} }

8
backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleServiceTests.cs

@ -354,7 +354,7 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules
A.CallTo(() => ruleTriggerHandler.Handles(@event.Payload)) A.CallTo(() => ruleTriggerHandler.Handles(@event.Payload))
.Returns(true); .Returns(true);
var (_, _, reason) = await sut.CreateJobsAsync(@event, Rule(ignoreState: true)).SingleAsync(); var (_, _, reason) = await sut.CreateJobsAsync(@event, Rule(ignoreStale: true)).SingleAsync();
Assert.Equal(SkipReason.TooOld, reason); Assert.Equal(SkipReason.TooOld, reason);
@ -365,7 +365,7 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules
[Fact] [Fact]
public async Task Should_create_job_if_too_old_but_stale_events_are_not_ignored() public async Task Should_create_job_if_too_old_but_stale_events_are_not_ignored()
{ {
var context = Rule(ignoreState: false); var context = Rule(ignoreStale: false);
var @event = var @event =
Envelope.Create(new ContentCreated()) Envelope.Create(new ContentCreated())
@ -715,7 +715,7 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules
}; };
} }
private RuleContext Rule(bool disable = false, bool ignoreState = true) private RuleContext Rule(bool disable = false, bool ignoreStale = true)
{ {
var rule = new Rule(new ContentChangedTriggerV2(), new ValidAction()); var rule = new Rule(new ContentChangedTriggerV2(), new ValidAction());
@ -729,7 +729,7 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules
AppId = appId, AppId = appId,
Rule = rule, Rule = rule,
RuleId = ruleId, RuleId = ruleId,
IgnoreStale = ignoreState IgnoreStale = ignoreStale
}; };
} }

Loading…
Cancel
Save