diff --git a/src/Elmish.WPF.Tests/DynamicViewModelTests.fs b/src/Elmish.WPF.Tests/DynamicViewModelTests.fs index 7f5e7b19..baaa5bff 100644 --- a/src/Elmish.WPF.Tests/DynamicViewModelTests.fs +++ b/src/Elmish.WPF.Tests/DynamicViewModelTests.fs @@ -222,6 +222,30 @@ module OneWay = test <@ vm.Get name = returnEven m (m + 1) @> } + [] + let ``when model updated, event is not called before view model property is updated`` () = + Property.check <| property { + let! name = GenX.auto + let! m1 = GenX.auto + let! m2 = GenX.auto |> GenX.notEqualTo m1 + + let get = string + + let binding = oneWay get name + let vm = TestVm(m1, binding) + let mutable eventFired = false + + (vm :> INotifyPropertyChanged).PropertyChanged.Add (fun e -> + test <@ e.PropertyName = name @> + test <@ vm.Get name = get m2 @> + eventFired <- true + ) + + vm.UpdateModel m2 + + test <@ eventFired @> + } + module OneWayLazy =