Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Test.Main where
- import Prelude
- import Control.Monad.Eff (Eff)
- import Control.Monad.Aff.AVar (AVAR)
- import Control.Monad.Eff.Console (CONSOLE)
- import Test.Unit (TestSuite, suite, test)
- import Test.Unit.Console (TESTOUTPUT)
- import Test.Unit.Main (runTest)
- import Test.Unit.Assert as Assert
- import PhoneNumber (phoneNumber)
- main :: forall eff
- . Eff ( avar :: AVAR
- , console :: CONSOLE
- , testOutput :: TESTOUTPUT
- | eff
- )
- Unit
- main = runTest suites
- suites :: forall e. TestSuite e
- suites = do
- suite "PhoneNumber.phoneNumber" do
- test "cleans the number" do
- Assert.equal "2234567890" $ phoneNumber "(223) 456-7890"
- test "cleans numbers with dots" do
- Assert.equal "2234567890" $ phoneNumber "223.456.7890"
- test "cleans numbers with multiple spaces" do
- Assert.equal "2234567890" $ phoneNumber "223 456 7890 "
- test "invalid when 9 digits" do
- Assert.equal "None" $ phoneNumber "123456789"
- test "invalid when 11 digits does not start with a 1" do
- Assert.equal "None" $ phoneNumber "22234567890"
- test "valid when 11 digits and starting with 1" do
- Assert.equal "2234567890" $ phoneNumber "12234567890"
- test "valid when 11 digits and starting with 1 even with punctuation" do
- Assert.equal "2234567890" $ phoneNumber "+1 (223) 456-7890"
- test "invalid when more than 11 digits" do
- Assert.equal "None" $ phoneNumber "321234567890"
- test "invalid with letters" do
- Assert.equal "None" $ phoneNumber "123-abc-7890"
- test "invalid with punctuations" do
- Assert.equal "None" $ phoneNumber "123-@:!-7890"
- test "invalid if area code does not start with 2-9" do
- Assert.equal "None" $ phoneNumber "(123) 456-7890"
- test "invalid if exchange code does not start with 2-9" do
- Assert.equal "None" $ phoneNumber "(223) 056-7890"
Add Comment
Please, Sign In to add comment