mirror of
https://github.com/jfmengels/elm-review.git
synced 2024-12-23 09:42:49 +03:00
135 lines
3.2 KiB
Elm
135 lines
3.2 KiB
Elm
module TestProject exposing (application, lamderaApplication, package)
|
|
|
|
import Elm.Package
|
|
import Elm.Project
|
|
import Elm.Version
|
|
import Json.Decode as Decode
|
|
import Review.Project as Project exposing (Project)
|
|
|
|
|
|
application : Project
|
|
application =
|
|
Project.new
|
|
|> Project.addElmJson applicationElmJson
|
|
|
|
|
|
lamderaApplication : Project
|
|
lamderaApplication =
|
|
Project.new
|
|
|> Project.addElmJson lamderaApplicationElmJson
|
|
|
|
|
|
applicationElmJson : { path : String, raw : String, project : Elm.Project.Project }
|
|
applicationElmJson =
|
|
{ path = "elm.json"
|
|
, raw = """{
|
|
"type": "application",
|
|
"source-directories": [
|
|
"src"
|
|
],
|
|
"elm-version": "0.19.1",
|
|
"dependencies": {
|
|
"direct": {
|
|
"elm/core": "1.0.0"
|
|
},
|
|
"indirect": {}
|
|
},
|
|
"test-dependencies": {
|
|
"direct": {},
|
|
"indirect": {}
|
|
}
|
|
}"""
|
|
, project =
|
|
Elm.Project.Application
|
|
{ elm = Elm.Version.one
|
|
, dirs = []
|
|
, depsDirect = [ ( unsafePackageName "elm/core", Elm.Version.one ) ]
|
|
, depsIndirect = []
|
|
, testDepsDirect = []
|
|
, testDepsIndirect = []
|
|
}
|
|
}
|
|
|
|
|
|
lamderaApplicationElmJson : { path : String, raw : String, project : Elm.Project.Project }
|
|
lamderaApplicationElmJson =
|
|
{ path = "elm.json"
|
|
, raw = """{
|
|
"type": "application",
|
|
"source-directories": [
|
|
"src"
|
|
],
|
|
"elm-version": "0.19.1",
|
|
"dependencies": {
|
|
"direct": {
|
|
"elm/core": "1.0.0",
|
|
"lamdera/core": "1.0.0"
|
|
},
|
|
"indirect": {}
|
|
},
|
|
"test-dependencies": {
|
|
"direct": {},
|
|
"indirect": {}
|
|
}
|
|
}"""
|
|
, project =
|
|
Elm.Project.Application
|
|
{ elm = Elm.Version.one
|
|
, dirs = []
|
|
, depsDirect =
|
|
[ ( unsafePackageName "elm/core", Elm.Version.one )
|
|
, ( unsafePackageName "lamdera/core", Elm.Version.one )
|
|
]
|
|
, depsIndirect = []
|
|
, testDepsDirect = []
|
|
, testDepsIndirect = []
|
|
}
|
|
}
|
|
|
|
|
|
unsafePackageName : String -> Elm.Package.Name
|
|
unsafePackageName packageName =
|
|
case Elm.Package.fromString packageName of
|
|
Just name ->
|
|
name
|
|
|
|
Nothing ->
|
|
-- unsafe, but if the generation went well, it should all be good.
|
|
unsafePackageName packageName
|
|
|
|
|
|
package : Project
|
|
package =
|
|
Project.new
|
|
|> Project.addElmJson (createPackageElmJson ())
|
|
|
|
|
|
createPackageElmJson : () -> { path : String, raw : String, project : Elm.Project.Project }
|
|
createPackageElmJson () =
|
|
case Decode.decodeString Elm.Project.decoder rawPackageElmJson of
|
|
Ok elmJson ->
|
|
{ path = "elm.json"
|
|
, raw = rawPackageElmJson
|
|
, project = elmJson
|
|
}
|
|
|
|
Err err ->
|
|
Debug.todo ("Invalid elm.json supplied to test: " ++ Debug.toString err)
|
|
|
|
|
|
rawPackageElmJson : String
|
|
rawPackageElmJson =
|
|
"""{
|
|
"type": "package",
|
|
"name": "author/package",
|
|
"summary": "Summary",
|
|
"license": "BSD-3-Clause",
|
|
"version": "1.0.0",
|
|
"exposed-modules": [
|
|
"Exposed"
|
|
],
|
|
"elm-version": "0.19.0 <= v < 0.20.0",
|
|
"dependencies": {},
|
|
"test-dependencies": {}
|
|
}"""
|