Skip to content

Commit 0325366

Browse files
Add tests
1 parent 15409e1 commit 0325366

File tree

1 file changed

+48
-3
lines changed

1 file changed

+48
-3
lines changed

test/Main.purs

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ module Test.Main where
33
import Prelude
44

55
import Data.Either (Either(..))
6-
import Data.Maybe (Maybe(..), fromJust, isNothing, isJust)
6+
import Data.Maybe (Maybe(..), fromJust, isJust, isNothing)
77
import Effect (Effect)
88
import Effect.Console (log)
99
import Node.Buffer as Buffer
1010
import Node.Encoding (Encoding(..))
11-
import Node.Stream (Duplex, Readable, Writable, onDataString, end, writeString, pipe, onDataEither, onData, setEncoding, setDefaultEncoding, read, onReadable, readString)
11+
import Node.Stream (Duplex, Readable, Writable, destroy, end, onData, onDataEither, onDataString, onError, onReadable, pipe, read, readString, setDefaultEncoding, setEncoding, writeString)
1212
import Partial.Unsafe (unsafePartial)
1313
import Test.Assert (assert, assert')
1414

@@ -39,6 +39,12 @@ main = do
3939
log "test pipe"
4040
_ <- testPipe
4141

42+
log "test write"
43+
testWrite
44+
45+
log "test end"
46+
testEnd
47+
4248
log "test manual reads"
4349
testReads
4450

@@ -129,7 +135,7 @@ testPipe = do
129135
_ <- unzip `pipe` sOut
130136

131137
writeString sIn UTF8 testString \_ -> do
132-
end sIn do
138+
end sIn \_ -> do
133139
onDataString sOut UTF8 \str -> do
134140
assertEqual str testString
135141

@@ -140,3 +146,42 @@ foreign import createGunzip :: Effect Duplex
140146

141147
-- | Create a PassThrough stream, which simply writes its input to its output.
142148
foreign import passThrough :: Effect Duplex
149+
150+
testWrite :: Effect Unit
151+
testWrite = do
152+
hasError
153+
noError
154+
where
155+
hasError = do
156+
w1 <- writableStreamBuffer
157+
_ <- onError w1 (const $ pure unit)
158+
void $ end w1 $ const $ pure unit
159+
void $ writeString w1 UTF8 "msg" \err -> do
160+
assert' "writeString - should have error" $ isJust err
161+
162+
noError = do
163+
w1 <- writableStreamBuffer
164+
_ <- onError w1 (const $ pure unit)
165+
void $ writeString w1 UTF8 "msg1" \err -> do
166+
assert' "writeString - should have no error" $ isNothing err
167+
void $ end w1 (const $ pure unit)
168+
169+
testEnd :: Effect Unit
170+
testEnd = do
171+
hasError
172+
noError
173+
where
174+
hasError = do
175+
w1 <- writableStreamBuffer
176+
_ <- onError w1 (const $ pure unit)
177+
void $ writeString w1 UTF8 "msg" \_ -> do
178+
_ <- destroy w1
179+
end w1 \err -> do
180+
assert' "end - should have error" $ isJust err
181+
182+
noError = do
183+
w1 <- writableStreamBuffer
184+
_ <- onError w1 (const $ pure unit)
185+
void $ writeString w1 UTF8 "msg" \_ -> do
186+
end w1 \err -> do
187+
assert' "end - should have no error" $ isNothing err

0 commit comments

Comments
 (0)