elm-pages 3.0.0-beta.14 → 3.0.0-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +1 -1
  2. package/codegen/elm-pages-codegen.js +4 -7
  3. package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  4. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  5. package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +1 -1
  6. package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
  7. package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
  8. package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +1 -1
  9. package/generator/src/compatibility-key.js +1 -1
  10. package/generator/src/error-formatter.js +7 -3
  11. package/generator/src/render.js +8 -17
  12. package/generator/src/request-cache.js +34 -4
  13. package/generator/static-code/hmr.js +16 -2
  14. package/package.json +1 -1
  15. package/src/ApiRoute.elm +1 -4
  16. package/src/BackendTask/Env.elm +10 -8
  17. package/src/BackendTask/File.elm +10 -10
  18. package/src/BackendTask/Glob.elm +2 -2
  19. package/src/BackendTask/Http.elm +49 -13
  20. package/src/BackendTask/Port.elm +50 -46
  21. package/src/BackendTask.elm +5 -5
  22. package/src/Exception.elm +70 -12
  23. package/src/Form.elm +3 -2
  24. package/src/Pages/Generate.elm +299 -102
  25. package/src/Pages/Internal/Platform/Cli.elm +17 -37
  26. package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
  27. package/src/Pages/Internal/Platform/GeneratorApplication.elm +17 -41
  28. package/src/Pages/Internal/Platform/StaticResponses.elm +11 -25
  29. package/src/Pages/Script.elm +2 -2
  30. package/src/Pages/StaticHttpRequest.elm +1 -23
  31. package/src/Server/Request.elm +3 -2
  32. package/src/MultiDict.elm +0 -49
  33. package/src/PairingHeap.elm +0 -137
  34. package/src/Parser/Extra/String.elm +0 -33
  35. package/src/Parser/Extra.elm +0 -69
  36. package/src/ProgramTest/ComplexQuery.elm +0 -360
  37. package/src/ProgramTest/EffectSimulation.elm +0 -122
  38. package/src/ProgramTest/Failure.elm +0 -367
  39. package/src/ProgramTest/HtmlHighlighter.elm +0 -116
  40. package/src/ProgramTest/HtmlParserHacks.elm +0 -58
  41. package/src/ProgramTest/HtmlRenderer.elm +0 -73
  42. package/src/ProgramTest/Program.elm +0 -30
  43. package/src/ProgramTest/StringLines.elm +0 -26
  44. package/src/ProgramTest/TestHtmlHacks.elm +0 -132
  45. package/src/ProgramTest/TestHtmlParser.elm +0 -201
  46. package/src/ProgramTest.elm +0 -2339
  47. package/src/Query/Extra.elm +0 -55
  48. package/src/SimulatedEffect/Cmd.elm +0 -69
  49. package/src/SimulatedEffect/Http.elm +0 -330
  50. package/src/SimulatedEffect/Navigation.elm +0 -69
  51. package/src/SimulatedEffect/Ports.elm +0 -62
  52. package/src/SimulatedEffect/Process.elm +0 -24
  53. package/src/SimulatedEffect/Sub.elm +0 -48
  54. package/src/SimulatedEffect/Task.elm +0 -252
  55. package/src/SimulatedEffect/Time.elm +0 -25
  56. package/src/SimulatedEffect.elm +0 -42
  57. package/src/String/Extra.elm +0 -6
  58. package/src/Test/Http.elm +0 -145
  59. package/src/TestResult.elm +0 -35
  60. package/src/TestState.elm +0 -305
  61. package/src/Url/Extra.elm +0 -100
  62. package/src/Vendored/Diff.elm +0 -321
  63. package/src/Vendored/Failure.elm +0 -217
  64. package/src/Vendored/FormatMonochrome.elm +0 -44
  65. package/src/Vendored/Highlightable.elm +0 -53
@@ -1,132 +0,0 @@
1
- module ProgramTest.TestHtmlHacks exposing (getPassingSelectors, parseFailureReport, parseFailureReportWithoutHtml, parseSimulateFailure, renderHtml)
2
-
3
- import Html.Parser
4
- import Parser
5
- import Parser.Extra
6
- import ProgramTest.HtmlHighlighter as HtmlHighlighter
7
- import ProgramTest.HtmlRenderer as HtmlRenderer
8
- import ProgramTest.TestHtmlParser as TestHtmlParser exposing (Assertion(..), FailureReport(..))
9
- import Test.Html.Query as Query
10
- import Test.Html.Selector as Selector exposing (Selector)
11
- import Test.Runner
12
-
13
-
14
- pleaseReport description =
15
- "PLEASE REPORT THIS AT <https://github.com/avh4/elm-program-test/issues>: " ++ description
16
-
17
-
18
- renderHtml : (String -> String) -> (String -> List Html.Parser.Attribute -> List Html.Parser.Node -> Bool) -> Query.Single any -> String
19
- renderHtml colorHidden highlightPredicate single =
20
- case forceFailureReport [] single of
21
- Ok (QueryFailure node _ _) ->
22
- let
23
- tryHighlight =
24
- HtmlHighlighter.highlight highlightPredicate
25
- node
26
-
27
- finalHighlighted =
28
- if HtmlHighlighter.isNonHiddenElement tryHighlight then
29
- tryHighlight
30
-
31
- else
32
- HtmlHighlighter.highlight (\_ _ _ -> True)
33
- node
34
- in
35
- "▼ Query.fromHtml\n\n"
36
- ++ HtmlRenderer.render colorHidden 4 [ finalHighlighted ]
37
-
38
- Ok (EventFailure name _) ->
39
- pleaseReport ("renderHtml: unexpected EventFailure: \"" ++ name ++ "\"")
40
-
41
- Err err ->
42
- pleaseReport ("renderHtml: couldn't parse failure report: " ++ err)
43
-
44
-
45
- getPassingSelectors : List Selector -> Query.Single msg -> List String
46
- getPassingSelectors selectors single =
47
- case forceFailureReportWithoutHtml selectors single of
48
- Ok (QueryFailure _ _ (Has _ results)) ->
49
- case List.reverse results of
50
- (Ok _) :: _ ->
51
- [ pleaseReport "getPassingSelectors: forced selector didn't fail" ]
52
-
53
- _ ->
54
- List.filterMap Result.toMaybe results
55
-
56
- Ok (EventFailure name _) ->
57
- [ pleaseReport ("getPassingSelectors: got unexpected EventFailure \"" ++ name ++ "\"") ]
58
-
59
- Err err ->
60
- [ pleaseReport ("getPassingSelectors: couldn't parse failure report: " ++ err) ]
61
-
62
-
63
- forceFailureReport : List Selector -> Query.Single any -> Result String (FailureReport Html.Parser.Node)
64
- forceFailureReport selectors =
65
- forceFailureReport_ parseFailureReport selectors "ProgramTest.TestHtmlHacks is trying to force a failure to collect the error message %%"
66
-
67
-
68
- forceFailureReportWithoutHtml : List Selector -> Query.Single any -> Result String (FailureReport ())
69
- forceFailureReportWithoutHtml selectors =
70
- forceFailureReport_ parseFailureReportWithoutHtml selectors "ProgramTest.TestHtmlHacks is trying to force a failure to collect the error message %%"
71
-
72
-
73
- forceFailureReport_ : (String -> result) -> List Selector -> String -> Query.Single any -> result
74
- forceFailureReport_ parseFailure selectors unique single =
75
- case
76
- single
77
- |> Query.has (selectors ++ [ Selector.text unique ])
78
- |> Test.Runner.getFailureReason
79
- of
80
- Nothing ->
81
- -- We expect the fake query to fail -- if it doesn't for some reason, just try recursing with a different fake matching string until it does fail
82
- forceFailureReport_ parseFailure selectors (unique ++ "_") single
83
-
84
- Just reason ->
85
- parseFailure reason.description
86
-
87
-
88
- parseFailureReport : String -> Result String (FailureReport Html.Parser.Node)
89
- parseFailureReport string =
90
- Parser.run TestHtmlParser.parser string
91
- |> Result.mapError Parser.Extra.deadEndsToString
92
-
93
-
94
- parseFailureReportWithoutHtml : String -> Result String (FailureReport ())
95
- parseFailureReportWithoutHtml string =
96
- Parser.run TestHtmlParser.parserWithoutHtml string
97
- |> Result.mapError Parser.Extra.deadEndsToString
98
-
99
-
100
- partitionSections_ : List String -> List (List String) -> List String -> List (List String)
101
- partitionSections_ accLines accSections remaining =
102
- case remaining of
103
- [] ->
104
- case List.reverse (List.reverse accLines :: accSections) of
105
- [] :: rest ->
106
- rest
107
-
108
- all ->
109
- all
110
-
111
- next :: rest ->
112
- if String.startsWith "▼ " next then
113
- partitionSections_ [ next ] (List.reverse accLines :: accSections) rest
114
-
115
- else
116
- partitionSections_ (next :: accLines) accSections rest
117
-
118
-
119
- parseSimulateFailure : String -> String
120
- parseSimulateFailure string =
121
- let
122
- simpleFailure result =
123
- case result of
124
- EventFailure name html ->
125
- Ok ("Event.expectEvent: I found a node, but it does not listen for \"" ++ name ++ "\" events like I expected it would.")
126
-
127
- _ ->
128
- Err (pleaseReport "Got a failure message from Test.Html.Query that we couldn't parse: " ++ string)
129
- in
130
- parseFailureReport string
131
- |> Result.andThen simpleFailure
132
- |> Result.withDefault (pleaseReport "Got a failure message from Test.Html.Query that we couldn't parse: " ++ string)
@@ -1,201 +0,0 @@
1
- module ProgramTest.TestHtmlParser exposing (Assertion(..), FailureReport(..), Selector(..), Step(..), parser, parserWithoutHtml)
2
-
3
- import Html.Parser
4
- import Parser exposing ((|.), (|=), Parser)
5
- import Parser.Extra.String
6
- import ProgramTest.HtmlParserHacks as HtmlParserHacks
7
-
8
-
9
- type FailureReport html
10
- = QueryFailure html (List (Step html)) Assertion
11
- | EventFailure String html
12
-
13
-
14
- type Step html
15
- = FindStep (List Selector) html
16
-
17
-
18
- type Selector
19
- = Tag String
20
- | Containing (List Selector)
21
- | Text String
22
- | Attribute String String
23
- | All (List Selector)
24
-
25
-
26
- type Assertion
27
- = Has (List Selector) (List (Result String String))
28
-
29
-
30
- parser_ : Parser html -> Parser (FailureReport html)
31
- parser_ parseHtml =
32
- Parser.oneOf
33
- [ Parser.succeed QueryFailure
34
- |. Parser.keyword "▼ Query.fromHtml"
35
- |. Parser.symbol "\n\n "
36
- |= parseHtml
37
- |= stepsParser parseHtml
38
- |= assertionParser
39
- |. Parser.end
40
- , Parser.succeed EventFailure
41
- |. Parser.keyword "Event.expectEvent:"
42
- |. Parser.symbol " I found a node, but it does not listen for \""
43
- |= (Parser.getChompedString <| Parser.chompUntil "\"")
44
- |. Parser.symbol "\" events like I expected it would.\n\n"
45
- |= parseHtml
46
- |. Parser.end
47
- ]
48
-
49
-
50
- parser : Parser (FailureReport Html.Parser.Node)
51
- parser =
52
- parser_ trimmedHtml
53
-
54
-
55
- trimmedHtml : Parser Html.Parser.Node
56
- trimmedHtml =
57
- Parser.map HtmlParserHacks.trimText Html.Parser.node
58
- |. Parser.oneOf
59
- [ Parser.symbol "\n\n\n"
60
- , Parser.end
61
- ]
62
-
63
-
64
- parserWithoutHtml : Parser (FailureReport ())
65
- parserWithoutHtml =
66
- parser_ ignoreHtml
67
-
68
-
69
- ignoreHtml : Parser ()
70
- ignoreHtml =
71
- Parser.chompUntilEndOr "▼"
72
-
73
-
74
- stepsParser : Parser html -> Parser (List (Step html))
75
- stepsParser parseHtml =
76
- Parser.loop [] <|
77
- \acc ->
78
- Parser.oneOf
79
- [ Parser.succeed (\stmt -> Parser.Loop (stmt :: acc))
80
- |= stepParser parseHtml
81
- , Parser.succeed ()
82
- |> Parser.map (\_ -> Parser.Done (List.reverse acc))
83
- ]
84
-
85
-
86
- stepParser : Parser html -> Parser (Step html)
87
- stepParser parseHtml =
88
- Parser.oneOf
89
- [ Parser.succeed FindStep
90
- |. Parser.keyword "▼ Query.find "
91
- |= selectorsParser
92
- |. Parser.symbol "\n\n 1) "
93
- |= parseHtml
94
- ]
95
-
96
-
97
- selectorsParser : Parser (List Selector)
98
- selectorsParser =
99
- Parser.sequence
100
- { start = "[ "
101
- , separator = ", "
102
- , end = " ]"
103
- , spaces = Parser.succeed ()
104
- , item = selectorParser
105
- , trailing = Parser.Forbidden
106
- }
107
-
108
-
109
- selectorParser : Parser Selector
110
- selectorParser =
111
- -- As of elm-explorations/test 1.2.2, `Selector.all` renders simply as a space-separated sequence of selectors
112
- let
113
- done acc =
114
- case acc of
115
- [ single ] ->
116
- single
117
-
118
- more ->
119
- All (List.reverse more)
120
- in
121
- singleSelectorParser
122
- |> Parser.andThen
123
- (\first ->
124
- Parser.loop [ first ] <|
125
- \acc ->
126
- Parser.oneOf
127
- [ Parser.succeed (\stmt -> Parser.Loop (stmt :: acc))
128
- |. Parser.backtrackable (Parser.symbol " ")
129
- |= singleSelectorParser
130
- , Parser.succeed ()
131
- |> Parser.map (\_ -> Parser.Done (done acc))
132
- ]
133
- )
134
-
135
-
136
- singleSelectorParser : Parser Selector
137
- singleSelectorParser =
138
- Parser.oneOf
139
- [ Parser.succeed Tag
140
- |. Parser.keyword "tag "
141
- |= Parser.Extra.String.string
142
- , Parser.succeed Text
143
- |. Parser.keyword "text "
144
- |= Parser.Extra.String.string
145
- , Parser.succeed Attribute
146
- |. Parser.keyword "attribute "
147
- |= Parser.Extra.String.string
148
- |. Parser.symbol " "
149
- |= Parser.oneOf
150
- [ Parser.Extra.String.string
151
- , Parser.succeed "true"
152
- |. Parser.keyword "True"
153
- , Parser.succeed "false"
154
- |. Parser.keyword "False"
155
- ]
156
- , Parser.succeed Containing
157
- |. Parser.keyword "containing "
158
- |= Parser.lazy (\() -> selectorsParser)
159
- |. Parser.symbol " "
160
- ]
161
-
162
-
163
- assertionParser : Parser Assertion
164
- assertionParser =
165
- Parser.oneOf
166
- [ Parser.succeed Has
167
- |. Parser.keyword "▼ Query.has "
168
- |= selectorsParser
169
- |. Parser.symbol "\n\n"
170
- |= selectorResultsParser
171
- ]
172
-
173
-
174
- selectorResultsParser : Parser (List (Result String String))
175
- selectorResultsParser =
176
- let
177
- help acc =
178
- Parser.oneOf
179
- [ Parser.succeed (\stmt -> Parser.Loop (stmt :: acc))
180
- |= selectorResultParser
181
- , Parser.succeed ()
182
- |> Parser.map (\_ -> Parser.Done (List.reverse acc))
183
- ]
184
- in
185
- Parser.loop [] help
186
-
187
-
188
- selectorResultParser : Parser (Result String String)
189
- selectorResultParser =
190
- Parser.oneOf
191
- [ Parser.succeed (Ok << String.trim)
192
- |. Parser.symbol "✓ "
193
- |. Parser.commit ()
194
- |= (Parser.getChompedString <| Parser.chompUntilEndOr "\n")
195
- |. Parser.chompWhile ((==) '\n')
196
- , Parser.succeed (Err << String.trim)
197
- |. Parser.symbol "✗ "
198
- |. Parser.commit ()
199
- |= (Parser.getChompedString <| Parser.chompUntilEndOr "\n")
200
- |. Parser.chompWhile ((==) '\n')
201
- ]