Setup Hello World and top level testing

This commit is contained in:
Lew Parker 2016-02-22 20:29:13 -07:00
parent d518a9b629
commit 8c8481fb8f
9 changed files with 93 additions and 3 deletions

1
.gitignore vendored
View file

@ -2,4 +2,5 @@
.DS_Store .DS_Store
bin/configlet bin/configlet
bin/configlet.exe bin/configlet.exe
elm-stuff
CHECKLIST CHECKLIST

View file

@ -1,5 +1,17 @@
--- ---
language: bash language: bash
sudo: false
install:
- nvm install 0.12
- nvm use 0.12
- npm install -g elm@0.16.0
- elm package install -y
- npm install elm-test
script: script:
- bin/fetch-configlet - bin/fetch-configlet
- bin/configlet . - bin/configlet .
- bin/build.sh

15
TestRunner.elm Normal file
View file

@ -0,0 +1,15 @@
module Main where
import Signal exposing (Signal)
import ElmTest exposing (consoleRunner)
import Console exposing (IO, run)
import Task
import Tests
console : IO ()
console = consoleRunner Tests.all
port runner : Signal (Task.Task x ())
port runner = run console

13
bin/build.sh Executable file
View file

@ -0,0 +1,13 @@
for example_file in exercises/**/*.example
do
exercise_dir=$(dirname $example_file)
exercise=$(basename $example_file .example)
echo 'setting up .....'
mv "$exercise_dir/$exercise.elm" "$exercise_dir/$exercise.impl"
mv "$exercise_dir/$exercise.example" "$exercise_dir/$exercise.elm"
echo 'building .....'
elm-test exercises/**/*Tests.elm
echo 'tearing down .....'
mv "$exercise_dir/$exercise.elm" "$exercise_dir/$exercise.example"
mv "$exercise_dir/$exercise.impl" "$exercise_dir/$exercise.elm"
done

View file

@ -5,13 +5,15 @@
"active": false, "active": false,
"test_pattern": "TODO", "test_pattern": "TODO",
"problems": [ "problems": [
"hello_world"
], ],
"deprecated": [ "deprecated": [
], ],
"ignored": [ "ignored": [
"bin", "bin",
"elm-stuff",
"node_modules",
"docs" "docs"
], ],
"foregone": [ "foregone": [

17
elm-package.json Normal file
View file

@ -0,0 +1,17 @@
{
"version": "1.0.0",
"summary": "Exercism problems in Elm.",
"repository": "https://github.com/exercism/xelm.git",
"license": "BSD3",
"source-directories": [
".",
"./exercises/hello_world"
],
"exposed-modules": [],
"dependencies": {
"deadfoxygrandpa/elm-test": "3.0.1 <= v < 4.0.0",
"elm-lang/core": "2.0.0 <= v < 4.0.0",
"laszlopandy/elm-console": "1.1.0 <= v < 2.0.0"
},
"elm-version": "0.15.0 <= v < 0.17.0"
}

View file

@ -0,0 +1 @@
module HelloWorld where

View file

@ -0,0 +1,9 @@
module HelloWorld where
helloworld : Maybe String -> String
helloworld name =
case name of
Just name ->
"Hello, " ++ name ++ "!"
Nothing ->
"Hello, World!"

View file

@ -0,0 +1,20 @@
import String
import Task
import Console
import ElmTest exposing (..)
import HelloWorld exposing (..)
tests : Test
tests =
suite "Hello, World!"
[ test "Hello with no name" (assertEqual "Hello, World!" (helloworld Nothing))
, test "Hello to a sample name" (assertEqual "Hello, Alice!" (helloworld (Just "Alice")))
, test "Hello to another sample name" (assertEqual "Hello, Bob!" (helloworld (Just "Bob")))
]
port runner : Signal (Task.Task x ())
port runner =
Console.run (consoleRunner tests)