support tests/ with elm 0.19.0

With earlier elm versions, a separate package file is maintained for
tests, which when properly configured enabled the compiler to find what
it needed to compile the tests.  Under elm 0.19, test dependencies are
managed in the top-level package file, so `elm make` will fail on the
tests.  `elm-test make` is required in this case.

See https://github.com/elm-explorations/test/issues/64
This commit is contained in:
Aryeh Leib Taurog
2019-01-01 20:42:06 +02:00
parent bbf02d837e
commit ba38688dff
12 changed files with 84 additions and 14 deletions

View File

@@ -7,29 +7,47 @@ After:
call ale#assert#TearDownLinterTest()
Execute(should get valid executable with default params):
call ale#test#SetFilename('../elm-test-files/app/testfile.elm')
call ale#test#SetFilename('../elm-test-files/newapp/src/Main.elm')
let g:executable = ale#path#Simplify(g:dir . '/../elm-test-files/app/node_modules/.bin/elm')
let g:executable = ale#path#Simplify(g:dir . '/../elm-test-files/newapp/node_modules/.bin/elm')
AssertLinter g:executable,
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/../elm-test-files/app')) . ' && '
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/../elm-test-files/newapp')) . ' && '
\ . ale#Escape(g:executable) . ' make --report=json --output=/dev/null %t'
Execute(should get elm-test executable for test code with elm >= 0.19):
call ale#test#SetFilename('../elm-test-files/newapp/tests/TestSuite.elm')
let g:executable = ale#path#Simplify(g:dir . '/../elm-test-files/newapp/node_modules/.bin/elm-test')
AssertLinter g:executable,
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/../elm-test-files/newapp')) . ' && '
\ . ale#Escape(g:executable) . ' make --report=json --output=/dev/null %t'
Execute(should get plain elm executable for test code with elm < 0.19):
call ale#test#SetFilename('../elm-test-files/oldapp/tests/TestSuite.elm')
let g:executable = ale#path#Simplify(g:dir . '/../elm-test-files/oldapp/node_modules/.bin/elm')
AssertLinter g:executable,
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/../elm-test-files/oldapp')) . ' && '
\ . ale#Escape(g:executable) . ' make --report=json --output=/dev/null %t'
Execute(should get valid executable with 'use_global' params):
let g:ale_elm_make_use_global = 1
call ale#test#SetFilename('../elm-test-files/app/testfile.elm')
call ale#test#SetFilename('../elm-test-files/newapp/src/Main.elm')
AssertLinter 'elm',
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/../elm-test-files/app')) . ' && '
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/../elm-test-files/newapp')) . ' && '
\ . ale#Escape('elm') . ' make --report=json --output=/dev/null %t'
Execute(should get valid executable with 'use_global' and 'executable' params):
let g:ale_elm_make_executable = 'other-elm'
let g:ale_elm_make_use_global = 1
call ale#test#SetFilename('../elm-test-files/app/testfile.elm')
call ale#test#SetFilename('../elm-test-files/newapp/src/Main.elm')
AssertLinter 'other-elm',
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/../elm-test-files/app')) . ' && '
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/../elm-test-files/newapp')) . ' && '
\ . ale#Escape('other-elm') . ' make --report=json --output=/dev/null %t'

View File

0
test/elm-test-files/oldapp/node_modules/.bin/elm generated vendored Normal file
View File

View File

View File