Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitdbcf65d

Browse files
committed
fix: use Retry on Effects to prevent exception stopping effect runners
1 parent497b816 commitdbcf65d

File tree

8 files changed

+64
-8
lines changed

8 files changed

+64
-8
lines changed

‎ReduxSimple.DevTools/ReduxSimple.DevTools.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<RootNamespace>ReduxSimple.DevTools</RootNamespace>
66
<PackageId>ReduxSimple.DevTools</PackageId>
7-
<Version>3.5.1-preview001</Version>
7+
<Version>3.5.2-preview001</Version>
88
<Authors>David Bottiau</Authors>
99
<Title>ReduxSimple DevTools</Title>
1010
<Description>Simple Stupid Redux Store using Reactive Extensions</Description>

‎ReduxSimple.Entity/ReduxSimple.Entity.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<RootNamespace>ReduxSimple.Entity</RootNamespace>
66
<PackageId>ReduxSimple.Entity</PackageId>
7-
<Version>3.5.1-preview001</Version>
7+
<Version>3.5.2-preview001</Version>
88
<Authors>David Bottiau</Authors>
99
<Title>ReduxSimple Entity Management</Title>
1010
<Description>Simple Stupid Redux Store using Reactive Extensions</Description>

‎ReduxSimple.Tests/EffectsTest.cs‎

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
usingstaticReduxSimple.Tests.Setup.TodoListStore.Functions;
66
usingstaticReduxSimple.Effects;
77
usingTodoListStore=ReduxSimple.ReduxStore<ReduxSimple.Tests.Setup.TodoListStore.TodoListState>;
8+
usingSystem;
89

910
namespaceReduxSimple.Tests
1011
{
@@ -79,5 +80,56 @@ public void CanUseEffectWithoutDispatch()
7980
store.State.TodoList.ShouldHaveSingleItem();
8081
calls.ShouldBe(1);
8182
}
83+
84+
[Fact]
85+
publicvoidCanReplayEffectWhenExceptionOccured()
86+
{
87+
// Arrange
88+
varinitialState=CreateInitialTodoListState();
89+
varstore=newTodoListStore(
90+
Setup.TodoListStore.Reducers.CreateReducers(),
91+
initialState
92+
);
93+
intcalls=0;
94+
95+
vareffectWithDispatch=CreateEffect<TodoListState>(
96+
()=>store.ObserveAction<AddTodoItemAction>()
97+
.Do(_=>calls++)
98+
.Select(_=>
99+
{
100+
thrownewException("Too bad!");
101+
102+
#pragma warning disableCS0162// Unreachable code detected
103+
returnnewAddTodoItemAction
104+
{
105+
TodoItem=newTodoItem
106+
{
107+
Id=2,
108+
Title="Listen to side effects"
109+
}
110+
};
111+
#pragma warning restoreCS0162// Unreachable code detected
112+
}),
113+
true
114+
);
115+
116+
store.RegisterEffects(
117+
effectWithDispatch
118+
);
119+
120+
// Act #1
121+
DispatchAddTodoItemAction(store,1,"Create unit tests");
122+
123+
// Assert #1
124+
store.State.TodoList?.Count.ShouldBe(1);
125+
calls.ShouldBe(1);
126+
127+
// Act #2
128+
DispatchAddTodoItemAction(store,3,"Create unit tests, again");
129+
130+
// Assert #2
131+
store.State.TodoList?.Count.ShouldBe(2);
132+
calls.ShouldBe(2);
133+
}
82134
}
83135
}

‎ReduxSimple.Uwp.DevTools/ReduxSimple.Uwp.DevTools.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<TargetFramework>uap10.0.18362</TargetFramework>
44
<RootNamespace>ReduxSimple.Uwp.DevTools</RootNamespace>
55
<PackageId>ReduxSimple.Uwp.DevTools</PackageId>
6-
<Version>3.5.1-preview001</Version>
6+
<Version>3.5.2-preview001</Version>
77
<Authors>David Bottiau</Authors>
88
<Title>ReduxSimple DevTools for UWP</Title>
99
<Description>Simple Stupid Redux Store using Reactive Extensions - DevTools for UWP applications</Description>

‎ReduxSimple.Uwp.RouterStore/ReduxSimple.Uwp.RouterStore.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<TargetFramework>uap10.0.16299</TargetFramework>
44
<RootNamespace>ReduxSimple.Uwp.RouterStore</RootNamespace>
55
<PackageId>ReduxSimple.Uwp.RouterStore</PackageId>
6-
<Version>3.5.1-preview001</Version>
6+
<Version>3.5.2-preview001</Version>
77
<Authors>David Bottiau</Authors>
88
<Title>ReduxSimple Router Store for UWP</Title>
99
<Description>Simple Stupid Redux Store using Reactive Extensions - Binding between Store and Routing in UWP applications</Description>

‎ReduxSimple.Uwp/ReduxSimple.Uwp.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<TargetFramework>uap10.0.16299</TargetFramework>
44
<RootNamespace>ReduxSimple.Uwp</RootNamespace>
55
<PackageId>ReduxSimple.Uwp</PackageId>
6-
<Version>3.5.1-preview001</Version>
6+
<Version>3.5.2-preview001</Version>
77
<Authors>David Bottiau</Authors>
88
<Title>ReduxSimple for UWP</Title>
99
<Description>Simple Stupid Redux Store using Reactive Extensions - Store in UWP applications</Description>

‎ReduxSimple/ReduxSimple.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<PackageId>ReduxSimple</PackageId>
6-
<Version>3.5.1</Version>
6+
<Version>3.5.2</Version>
77
<Authors>David Bottiau</Authors>
88
<Description>Simple Stupid Redux Store using Reactive Extensions</Description>
99
<PackageProjectUrl>https://github.com/Odonno/ReduxSimple</PackageProjectUrl>

‎ReduxSimple/ReduxStore.Effects.cs‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,15 @@ public void RegisterEffects(params Effect<TState>[] effects)
2929

3030
if(effect.Config.Dispatch)
3131
{
32-
effect.Run().Subscribe(Dispatch);
32+
effect.Run()
33+
.Retry()
34+
.Subscribe(Dispatch);
3335
}
3436
else
3537
{
36-
effect.Run().Subscribe();
38+
effect.Run()
39+
.Retry()
40+
.Subscribe();
3741
}
3842

3943
_effects.Add(effect);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp