parent
5a7a09381a
commit
2673bd4b0b
@ -8,7 +8,6 @@ module HTTPure.Body
|
|||||||
import Prelude
|
import Prelude
|
||||||
|
|
||||||
import Data.Either as Either
|
import Data.Either as Either
|
||||||
import Data.String as String
|
|
||||||
import Effect as Effect
|
import Effect as Effect
|
||||||
import Effect.Aff as Aff
|
import Effect.Aff as Aff
|
||||||
import Effect.Ref as Ref
|
import Effect.Ref as Ref
|
||||||
@ -47,5 +46,5 @@ write response body = void do
|
|||||||
|
|
||||||
-- | Get the size of the body in bytes
|
-- | Get the size of the body in bytes
|
||||||
size :: Body -> Effect.Effect Int
|
size :: Body -> Effect.Effect Int
|
||||||
size (StringBody body) = pure $ String.length body
|
size (StringBody body) = Buffer.fromString body Encoding.UTF8 >>= Buffer.size
|
||||||
size (BinaryBody body) = Buffer.size body
|
size (BinaryBody body) = Buffer.size body
|
||||||
|
@ -3,6 +3,8 @@ module Test.HTTPure.BodySpec where
|
|||||||
import Prelude
|
import Prelude
|
||||||
|
|
||||||
import Effect.Class as EffectClass
|
import Effect.Class as EffectClass
|
||||||
|
import Node.Buffer as Buffer
|
||||||
|
import Node.Encoding as Encoding
|
||||||
import Test.Spec as Spec
|
import Test.Spec as Spec
|
||||||
|
|
||||||
import HTTPure.Body as Body
|
import HTTPure.Body as Body
|
||||||
@ -17,6 +19,22 @@ readSpec = Spec.describe "read" do
|
|||||||
body <- Body.read request
|
body <- Body.read request
|
||||||
body ?= "test"
|
body ?= "test"
|
||||||
|
|
||||||
|
sizeSpec :: TestHelpers.Test
|
||||||
|
sizeSpec = Spec.describe "size" do
|
||||||
|
Spec.it "returns the correct size for ASCII string body" do
|
||||||
|
size <- EffectClass.liftEffect $ Body.size $ Body.StringBody "ascii"
|
||||||
|
size ?= 5
|
||||||
|
|
||||||
|
Spec.it "returns the correct size for UTF-8 string body" do
|
||||||
|
size <- EffectClass.liftEffect $ Body.size $ Body.StringBody "\x2603" -- snowman
|
||||||
|
size ?= 3
|
||||||
|
|
||||||
|
Spec.it "returns the correct size for binary body" do
|
||||||
|
size <- EffectClass.liftEffect do
|
||||||
|
buf <- Buffer.fromString "foobar" Encoding.UTF8
|
||||||
|
Body.size $ Body.BinaryBody buf
|
||||||
|
size ?= 6
|
||||||
|
|
||||||
writeSpec :: TestHelpers.Test
|
writeSpec :: TestHelpers.Test
|
||||||
writeSpec = Spec.describe "write" do
|
writeSpec = Spec.describe "write" do
|
||||||
Spec.it "writes the string to the Response body" do
|
Spec.it "writes the string to the Response body" do
|
||||||
@ -29,4 +47,5 @@ writeSpec = Spec.describe "write" do
|
|||||||
bodySpec :: TestHelpers.Test
|
bodySpec :: TestHelpers.Test
|
||||||
bodySpec = Spec.describe "Body" do
|
bodySpec = Spec.describe "Body" do
|
||||||
readSpec
|
readSpec
|
||||||
|
sizeSpec
|
||||||
writeSpec
|
writeSpec
|
||||||
|
Loading…
Reference in New Issue
Block a user