aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-05-12 15:05:26 +0000
committers-ol <s-ol@users.noreply.github.com>2020-05-12 15:37:18 +0000
commit03c1ee5726a39bcee72e368c4cbab264452e28cd (patch)
tree22aba6108e3076aad8794d2b0f72282043d57eb4
parentreport errors when requiring lua modules (diff)
downloadalive-03c1ee5726a39bcee72e368c4cbab264452e28cd.tar.gz
alive-03c1ee5726a39bcee72e368c4cbab264452e28cd.zip
EvtStream:set(nil) doesnt set :dirty
-rw-r--r--alv/result/evt.moon2
-rw-r--r--spec/result/evt_spec.moon17
2 files changed, 19 insertions, 0 deletions
diff --git a/alv/result/evt.moon b/alv/result/evt.moon
index a89aa74..6bd0fee 100644
--- a/alv/result/evt.moon
+++ b/alv/result/evt.moon
@@ -65,7 +65,9 @@ class EvtStream extends Result
--- push an event value into the stream.
--
-- Marks this stream as dirty for the remainder of the current tick.
+ -- If `event` is nil, does nothing.
set: (event) =>
+ return if event == nil
assert not @dirty!, "#{@} is already dirty!"
@updated = COPILOT.T
@value = event
diff --git a/spec/result/evt_spec.moon b/spec/result/evt_spec.moon
index 93c09e0..c9416db 100644
--- a/spec/result/evt_spec.moon
+++ b/spec/result/evt_spec.moon
@@ -52,6 +52,23 @@ describe 'EvtStream', ->
assert.is.equal 3, stream\unwrap!
assert.is.true stream\dirty!
+ it 'ignores nil values', ->
+ stream = EvtStream T.num
+ assert.is.nil stream\unwrap!
+ assert.is.false stream\dirty!
+
+ stream\set!
+ assert.is.nil stream\unwrap!
+ assert.is.false stream\dirty!
+
+ stream\set nil
+ assert.is.nil stream\unwrap!
+ assert.is.false stream\dirty!
+
+ stream\set false
+ assert.is.equal false, stream\unwrap!
+ assert.is.true stream\dirty!
+
it 'errors when set twice', ->
stream = EvtStream T.num
stream\set 1