packages feed

cases-0.1.4.3: api-tests/Main.hs

module Main (main) where

import qualified Cases
import Test.Hspec
import Prelude

main :: IO ()
main = hspec do
  it "spinalizeCamelCase" do
    shouldBe "abc-def" $ Cases.spinalize "abcDef"
    shouldBe "abc-def" $ Cases.spinalize "abcDEF"
    shouldBe "my-html-processor" $ Cases.spinalize "myHTMLProcessor"

  it "spinalizeSymbols" do
    shouldBe "abc-def" $ Cases.spinalize "abc_def"
    shouldBe "abc-def" $ Cases.spinalize "abc-def"
    shouldBe "abc-def" $ Cases.spinalize "abc/def"
    shouldBe "abc-def" $ Cases.spinalize "abc,def"
    shouldBe "abc-def" $ Cases.spinalize "abc.def"
    shouldBe "abc-def" $ Cases.spinalize "abc:def"

  it "spinalizeMultipleDelimiters" do
    shouldBe "abc-def" $ Cases.spinalize "abc_-:,/def"
    shouldBe "abc-def" $ Cases.spinalize "abc /-def"

  it "spinalizeSpaces" do
    shouldBe "abc-def" $ Cases.spinalize "abc def"
    shouldBe "abc-def" $ Cases.spinalize "abc\ndef"
    shouldBe "abc-def" $ Cases.spinalize "abc\rdef"
    shouldBe "abc-def" $ Cases.spinalize "abc\r\n\rdef"
    shouldBe "abc-def" $ Cases.spinalize "abc\tdef"
    shouldBe "abc-def" $ Cases.spinalize "abc  def"

  it "spinalizeTrimming" do
    shouldBe "abc-def" $ Cases.spinalize " abc def "
    shouldBe "abc-def" $ Cases.spinalize "/abc/def/"

  it "spinalizeNumbers" do
    shouldBe "abc-12" $ Cases.spinalize "abc12"

  it "spinalizeUnicode" do
    shouldBe "ёжик-лижет-мёд" $ Cases.spinalize "Ёжик лижет мёд."

  it "snakify" do
    shouldBe "ёжик_лижет_мёд" $ Cases.snakify "Ёжик лижет мёд."

  it "camelize" do
    shouldBe "abcDef" $ Cases.camelize "abc-def"
    shouldBe "AbcDef" $ Cases.camelize "Abc-def"
    shouldBe "parseDbmXml" $ Cases.camelize "parse DBM XML"