elm-pages 3.0.0-beta.10 → 3.0.0-beta.13
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.
- package/README.md +1 -1
- package/codegen/elm-pages-codegen.js +1 -1
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/dependencies.75364bef27ac5a049b87c3325f846fc6dbda23b8ed7187ed06748b96bb6a50a7.json +1 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Console-Text.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Console-Text.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Generated-Main.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Generated-Main.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Color.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Color.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Monochrome.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format-Monochrome.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console-Format.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Console.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Highlightable.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Highlightable.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-JUnit.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-JUnit.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Json.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Json.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Reporter.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-Reporter.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-TestResults.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Reporter-TestResults.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-JsMessage.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-JsMessage.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Console.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Console.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Diff.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node-Vendor-Diff.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/Test-Runner-Node.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/lock +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elm.json +38 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/elmTestOutput.js +29603 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/package.json +1 -0
- package/generator/dead-code-review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision9/src/Test/Generated/Main.elm +27 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1327 -122
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +15157 -13245
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
- package/generator/dead-code-review/elm.json +8 -6
- package/generator/dead-code-review/node_modules/.package-lock.json +484 -0
- package/generator/dead-code-review/node_modules/ansi-styles/index.d.ts +345 -0
- package/generator/dead-code-review/node_modules/ansi-styles/index.js +163 -0
- package/generator/dead-code-review/node_modules/ansi-styles/license +9 -0
- package/generator/dead-code-review/node_modules/ansi-styles/package.json +56 -0
- package/generator/dead-code-review/node_modules/ansi-styles/readme.md +152 -0
- package/generator/dead-code-review/node_modules/anymatch/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/anymatch/README.md +87 -0
- package/generator/dead-code-review/node_modules/anymatch/index.d.ts +20 -0
- package/generator/dead-code-review/node_modules/anymatch/index.js +104 -0
- package/generator/dead-code-review/node_modules/anymatch/package.json +48 -0
- package/generator/dead-code-review/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/generator/dead-code-review/node_modules/balanced-match/LICENSE.md +21 -0
- package/generator/dead-code-review/node_modules/balanced-match/README.md +97 -0
- package/generator/dead-code-review/node_modules/balanced-match/index.js +62 -0
- package/generator/dead-code-review/node_modules/balanced-match/package.json +48 -0
- package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json +260 -0
- package/generator/dead-code-review/node_modules/binary-extensions/binary-extensions.json.d.ts +3 -0
- package/generator/dead-code-review/node_modules/binary-extensions/index.d.ts +14 -0
- package/generator/dead-code-review/node_modules/binary-extensions/index.js +1 -0
- package/generator/dead-code-review/node_modules/binary-extensions/license +9 -0
- package/generator/dead-code-review/node_modules/binary-extensions/package.json +38 -0
- package/generator/dead-code-review/node_modules/binary-extensions/readme.md +41 -0
- package/generator/dead-code-review/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
- package/generator/dead-code-review/node_modules/brace-expansion/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/brace-expansion/README.md +135 -0
- package/generator/dead-code-review/node_modules/brace-expansion/index.js +203 -0
- package/generator/dead-code-review/node_modules/brace-expansion/package.json +46 -0
- package/generator/dead-code-review/node_modules/braces/CHANGELOG.md +184 -0
- package/generator/dead-code-review/node_modules/braces/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/braces/README.md +593 -0
- package/generator/dead-code-review/node_modules/braces/index.js +170 -0
- package/generator/dead-code-review/node_modules/braces/lib/compile.js +57 -0
- package/generator/dead-code-review/node_modules/braces/lib/constants.js +57 -0
- package/generator/dead-code-review/node_modules/braces/lib/expand.js +113 -0
- package/generator/dead-code-review/node_modules/braces/lib/parse.js +333 -0
- package/generator/dead-code-review/node_modules/braces/lib/stringify.js +32 -0
- package/generator/dead-code-review/node_modules/braces/lib/utils.js +112 -0
- package/generator/dead-code-review/node_modules/braces/package.json +77 -0
- package/generator/dead-code-review/node_modules/chalk/index.d.ts +415 -0
- package/generator/dead-code-review/node_modules/chalk/license +9 -0
- package/generator/dead-code-review/node_modules/chalk/package.json +68 -0
- package/generator/dead-code-review/node_modules/chalk/readme.md +341 -0
- package/generator/dead-code-review/node_modules/chalk/source/index.js +229 -0
- package/generator/dead-code-review/node_modules/chalk/source/templates.js +134 -0
- package/generator/dead-code-review/node_modules/chalk/source/util.js +39 -0
- package/generator/dead-code-review/node_modules/chokidar/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/chokidar/README.md +308 -0
- package/generator/dead-code-review/node_modules/chokidar/index.js +973 -0
- package/generator/dead-code-review/node_modules/chokidar/lib/constants.js +65 -0
- package/generator/dead-code-review/node_modules/chokidar/lib/fsevents-handler.js +524 -0
- package/generator/dead-code-review/node_modules/chokidar/lib/nodefs-handler.js +654 -0
- package/generator/dead-code-review/node_modules/chokidar/package.json +85 -0
- package/generator/dead-code-review/node_modules/chokidar/types/index.d.ts +188 -0
- package/generator/dead-code-review/node_modules/color-convert/CHANGELOG.md +54 -0
- package/generator/dead-code-review/node_modules/color-convert/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/color-convert/README.md +68 -0
- package/generator/dead-code-review/node_modules/color-convert/conversions.js +839 -0
- package/generator/dead-code-review/node_modules/color-convert/index.js +81 -0
- package/generator/dead-code-review/node_modules/color-convert/package.json +48 -0
- package/generator/dead-code-review/node_modules/color-convert/route.js +97 -0
- package/generator/dead-code-review/node_modules/color-name/LICENSE +8 -0
- package/generator/dead-code-review/node_modules/color-name/README.md +11 -0
- package/generator/dead-code-review/node_modules/color-name/index.js +152 -0
- package/generator/dead-code-review/node_modules/color-name/package.json +28 -0
- package/generator/dead-code-review/node_modules/commander/LICENSE +22 -0
- package/generator/dead-code-review/node_modules/commander/Readme.md +1118 -0
- package/generator/dead-code-review/node_modules/commander/esm.mjs +16 -0
- package/generator/dead-code-review/node_modules/commander/index.js +27 -0
- package/generator/dead-code-review/node_modules/commander/lib/argument.js +147 -0
- package/generator/dead-code-review/node_modules/commander/lib/command.js +2160 -0
- package/generator/dead-code-review/node_modules/commander/lib/error.js +45 -0
- package/generator/dead-code-review/node_modules/commander/lib/help.js +406 -0
- package/generator/dead-code-review/node_modules/commander/lib/option.js +326 -0
- package/generator/dead-code-review/node_modules/commander/lib/suggestSimilar.js +100 -0
- package/generator/dead-code-review/node_modules/commander/package-support.json +16 -0
- package/generator/dead-code-review/node_modules/commander/package.json +80 -0
- package/generator/dead-code-review/node_modules/commander/typings/index.d.ts +881 -0
- package/generator/dead-code-review/node_modules/cross-spawn/CHANGELOG.md +130 -0
- package/generator/dead-code-review/node_modules/cross-spawn/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/cross-spawn/README.md +96 -0
- package/generator/dead-code-review/node_modules/cross-spawn/index.js +39 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/enoent.js +59 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/parse.js +91 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/util/escape.js +45 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
- package/generator/dead-code-review/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
- package/generator/dead-code-review/node_modules/cross-spawn/package.json +73 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/LICENSE +373 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/README.md +64 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.d.ts +22 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm.js +419 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/elm_solve_deps_wasm_bg.wasm +0 -0
- package/generator/dead-code-review/node_modules/elm-solve-deps-wasm/package.json +27 -0
- package/generator/dead-code-review/node_modules/elm-test/LICENSE +27 -0
- package/generator/dead-code-review/node_modules/elm-test/README.md +192 -0
- package/generator/dead-code-review/node_modules/elm-test/bin/elm-test +3 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/elm.json +25 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Console/Text.elm +217 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Color.elm +30 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format/Monochrome.elm +39 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console/Format.elm +212 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Console.elm +207 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Highlightable.elm +48 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/JUnit.elm +161 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Json.elm +158 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/Reporter.elm +53 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Reporter/TestResults.elm +113 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/JsMessage.elm +38 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Console.elm +230 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node/Vendor/Diff.elm +326 -0
- package/generator/dead-code-review/node_modules/elm-test/elm/src/Test/Runner/Node.elm +440 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Compile.js +110 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/DependencyProvider.js +343 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/ElmCompiler.js +109 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/ElmHome.js +47 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/ElmJson.js +194 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/FindTests.js +276 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Generate.js +294 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Install.js +290 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Parser.js +941 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Project.js +117 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Report.js +23 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/RunTests.js +322 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Solve.js +76 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/Supervisor.js +294 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/SyncGet.js +45 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/SyncGetWorker.js +36 -0
- package/generator/dead-code-review/node_modules/elm-test/lib/elm-test.js +318 -0
- package/generator/dead-code-review/node_modules/elm-test/package.json +69 -0
- package/generator/dead-code-review/node_modules/elm-test/templates/after.js +29 -0
- package/generator/dead-code-review/node_modules/elm-test/templates/before.js +58 -0
- package/generator/dead-code-review/node_modules/elm-test/templates/tests/Example.elm +10 -0
- package/generator/dead-code-review/node_modules/fill-range/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/fill-range/README.md +237 -0
- package/generator/dead-code-review/node_modules/fill-range/index.js +249 -0
- package/generator/dead-code-review/node_modules/fill-range/package.json +69 -0
- package/generator/dead-code-review/node_modules/fs.realpath/LICENSE +43 -0
- package/generator/dead-code-review/node_modules/fs.realpath/README.md +33 -0
- package/generator/dead-code-review/node_modules/fs.realpath/index.js +66 -0
- package/generator/dead-code-review/node_modules/fs.realpath/old.js +303 -0
- package/generator/dead-code-review/node_modules/fs.realpath/package.json +26 -0
- package/generator/dead-code-review/node_modules/fsevents/LICENSE +22 -0
- package/generator/dead-code-review/node_modules/fsevents/README.md +83 -0
- package/generator/dead-code-review/node_modules/fsevents/fsevents.d.ts +46 -0
- package/generator/dead-code-review/node_modules/fsevents/fsevents.js +82 -0
- package/generator/dead-code-review/node_modules/fsevents/fsevents.node +0 -0
- package/generator/dead-code-review/node_modules/fsevents/package.json +62 -0
- package/generator/dead-code-review/node_modules/glob/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/glob/README.md +378 -0
- package/generator/dead-code-review/node_modules/glob/common.js +240 -0
- package/generator/dead-code-review/node_modules/glob/glob.js +790 -0
- package/generator/dead-code-review/node_modules/glob/package.json +55 -0
- package/generator/dead-code-review/node_modules/glob/sync.js +486 -0
- package/generator/dead-code-review/node_modules/glob-parent/CHANGELOG.md +110 -0
- package/generator/dead-code-review/node_modules/glob-parent/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/glob-parent/README.md +137 -0
- package/generator/dead-code-review/node_modules/glob-parent/index.js +42 -0
- package/generator/dead-code-review/node_modules/glob-parent/package.json +48 -0
- package/generator/dead-code-review/node_modules/graceful-fs/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/graceful-fs/README.md +143 -0
- package/generator/dead-code-review/node_modules/graceful-fs/clone.js +23 -0
- package/generator/dead-code-review/node_modules/graceful-fs/graceful-fs.js +448 -0
- package/generator/dead-code-review/node_modules/graceful-fs/legacy-streams.js +118 -0
- package/generator/dead-code-review/node_modules/graceful-fs/package.json +50 -0
- package/generator/dead-code-review/node_modules/graceful-fs/polyfills.js +355 -0
- package/generator/dead-code-review/node_modules/has-flag/index.d.ts +39 -0
- package/generator/dead-code-review/node_modules/has-flag/index.js +8 -0
- package/generator/dead-code-review/node_modules/has-flag/license +9 -0
- package/generator/dead-code-review/node_modules/has-flag/package.json +46 -0
- package/generator/dead-code-review/node_modules/has-flag/readme.md +89 -0
- package/generator/dead-code-review/node_modules/inflight/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/inflight/README.md +37 -0
- package/generator/dead-code-review/node_modules/inflight/inflight.js +54 -0
- package/generator/dead-code-review/node_modules/inflight/package.json +29 -0
- package/generator/dead-code-review/node_modules/inherits/LICENSE +16 -0
- package/generator/dead-code-review/node_modules/inherits/README.md +42 -0
- package/generator/dead-code-review/node_modules/inherits/inherits.js +9 -0
- package/generator/dead-code-review/node_modules/inherits/inherits_browser.js +27 -0
- package/generator/dead-code-review/node_modules/inherits/package.json +29 -0
- package/generator/dead-code-review/node_modules/is-binary-path/index.d.ts +17 -0
- package/generator/dead-code-review/node_modules/is-binary-path/index.js +7 -0
- package/generator/dead-code-review/node_modules/is-binary-path/license +9 -0
- package/generator/dead-code-review/node_modules/is-binary-path/package.json +40 -0
- package/generator/dead-code-review/node_modules/is-binary-path/readme.md +34 -0
- package/generator/dead-code-review/node_modules/is-extglob/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/is-extglob/README.md +107 -0
- package/generator/dead-code-review/node_modules/is-extglob/index.js +20 -0
- package/generator/dead-code-review/node_modules/is-extglob/package.json +69 -0
- package/generator/dead-code-review/node_modules/is-glob/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/is-glob/README.md +206 -0
- package/generator/dead-code-review/node_modules/is-glob/index.js +150 -0
- package/generator/dead-code-review/node_modules/is-glob/package.json +81 -0
- package/generator/dead-code-review/node_modules/is-number/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/is-number/README.md +187 -0
- package/generator/dead-code-review/node_modules/is-number/index.js +18 -0
- package/generator/dead-code-review/node_modules/is-number/package.json +82 -0
- package/generator/dead-code-review/node_modules/isexe/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/isexe/README.md +51 -0
- package/generator/dead-code-review/node_modules/isexe/index.js +57 -0
- package/generator/dead-code-review/node_modules/isexe/mode.js +41 -0
- package/generator/dead-code-review/node_modules/isexe/package.json +31 -0
- package/generator/dead-code-review/node_modules/isexe/test/basic.js +221 -0
- package/generator/dead-code-review/node_modules/isexe/windows.js +42 -0
- package/generator/dead-code-review/node_modules/minimatch/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/minimatch/README.md +259 -0
- package/generator/dead-code-review/node_modules/minimatch/lib/path.js +4 -0
- package/generator/dead-code-review/node_modules/minimatch/minimatch.js +906 -0
- package/generator/dead-code-review/node_modules/minimatch/package.json +32 -0
- package/generator/dead-code-review/node_modules/normalize-path/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/normalize-path/README.md +127 -0
- package/generator/dead-code-review/node_modules/normalize-path/index.js +35 -0
- package/generator/dead-code-review/node_modules/normalize-path/package.json +77 -0
- package/generator/dead-code-review/node_modules/once/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/once/README.md +79 -0
- package/generator/dead-code-review/node_modules/once/once.js +42 -0
- package/generator/dead-code-review/node_modules/once/package.json +33 -0
- package/generator/dead-code-review/node_modules/path-key/index.d.ts +40 -0
- package/generator/dead-code-review/node_modules/path-key/index.js +16 -0
- package/generator/dead-code-review/node_modules/path-key/license +9 -0
- package/generator/dead-code-review/node_modules/path-key/package.json +39 -0
- package/generator/dead-code-review/node_modules/path-key/readme.md +61 -0
- package/generator/dead-code-review/node_modules/picomatch/CHANGELOG.md +136 -0
- package/generator/dead-code-review/node_modules/picomatch/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/picomatch/README.md +708 -0
- package/generator/dead-code-review/node_modules/picomatch/index.js +3 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/constants.js +179 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/parse.js +1091 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/picomatch.js +342 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/scan.js +391 -0
- package/generator/dead-code-review/node_modules/picomatch/lib/utils.js +64 -0
- package/generator/dead-code-review/node_modules/picomatch/package.json +81 -0
- package/generator/dead-code-review/node_modules/readdirp/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/readdirp/README.md +122 -0
- package/generator/dead-code-review/node_modules/readdirp/index.d.ts +43 -0
- package/generator/dead-code-review/node_modules/readdirp/index.js +287 -0
- package/generator/dead-code-review/node_modules/readdirp/package.json +122 -0
- package/generator/dead-code-review/node_modules/shebang-command/index.js +19 -0
- package/generator/dead-code-review/node_modules/shebang-command/license +9 -0
- package/generator/dead-code-review/node_modules/shebang-command/package.json +34 -0
- package/generator/dead-code-review/node_modules/shebang-command/readme.md +34 -0
- package/generator/dead-code-review/node_modules/shebang-regex/index.d.ts +22 -0
- package/generator/dead-code-review/node_modules/shebang-regex/index.js +2 -0
- package/generator/dead-code-review/node_modules/shebang-regex/license +9 -0
- package/generator/dead-code-review/node_modules/shebang-regex/package.json +35 -0
- package/generator/dead-code-review/node_modules/shebang-regex/readme.md +33 -0
- package/generator/dead-code-review/node_modules/split/.travis.yml +3 -0
- package/generator/dead-code-review/node_modules/split/LICENCE +22 -0
- package/generator/dead-code-review/node_modules/split/examples/pretty.js +26 -0
- package/generator/dead-code-review/node_modules/split/index.js +63 -0
- package/generator/dead-code-review/node_modules/split/package.json +30 -0
- package/generator/dead-code-review/node_modules/split/readme.markdown +72 -0
- package/generator/dead-code-review/node_modules/split/test/options.asynct.js +46 -0
- package/generator/dead-code-review/node_modules/split/test/partitioned_unicode.js +34 -0
- package/generator/dead-code-review/node_modules/split/test/split.asynct.js +137 -0
- package/generator/dead-code-review/node_modules/split/test/try_catch.asynct.js +51 -0
- package/generator/dead-code-review/node_modules/supports-color/browser.js +5 -0
- package/generator/dead-code-review/node_modules/supports-color/index.js +135 -0
- package/generator/dead-code-review/node_modules/supports-color/license +9 -0
- package/generator/dead-code-review/node_modules/supports-color/package.json +53 -0
- package/generator/dead-code-review/node_modules/supports-color/readme.md +76 -0
- package/generator/dead-code-review/node_modules/through/.travis.yml +5 -0
- package/generator/dead-code-review/node_modules/through/LICENSE.APACHE2 +15 -0
- package/generator/dead-code-review/node_modules/through/LICENSE.MIT +24 -0
- package/generator/dead-code-review/node_modules/through/index.js +108 -0
- package/generator/dead-code-review/node_modules/through/package.json +36 -0
- package/generator/dead-code-review/node_modules/through/readme.markdown +64 -0
- package/generator/dead-code-review/node_modules/through/test/async.js +28 -0
- package/generator/dead-code-review/node_modules/through/test/auto-destroy.js +30 -0
- package/generator/dead-code-review/node_modules/through/test/buffering.js +71 -0
- package/generator/dead-code-review/node_modules/through/test/end.js +45 -0
- package/generator/dead-code-review/node_modules/through/test/index.js +133 -0
- package/generator/dead-code-review/node_modules/to-regex-range/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/to-regex-range/README.md +305 -0
- package/generator/dead-code-review/node_modules/to-regex-range/index.js +288 -0
- package/generator/dead-code-review/node_modules/to-regex-range/package.json +88 -0
- package/generator/dead-code-review/node_modules/which/CHANGELOG.md +166 -0
- package/generator/dead-code-review/node_modules/which/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/which/README.md +54 -0
- package/generator/dead-code-review/node_modules/which/bin/node-which +52 -0
- package/generator/dead-code-review/node_modules/which/package.json +43 -0
- package/generator/dead-code-review/node_modules/which/which.js +125 -0
- package/generator/dead-code-review/node_modules/wrappy/LICENSE +15 -0
- package/generator/dead-code-review/node_modules/wrappy/README.md +36 -0
- package/generator/dead-code-review/node_modules/wrappy/package.json +29 -0
- package/generator/dead-code-review/node_modules/wrappy/wrappy.js +33 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/.nycrc +6 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/.vscode/launch.json +23 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/CHANGELOG.md +593 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/LICENSE +21 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/README.md +103 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/Derivation.js +10 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/DocumentPosition.js +12 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/NodeType.js +25 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/OperationType.js +11 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/Utility.js +88 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/WriterState.js +10 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLAttribute.js +130 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCData.js +41 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLCharacterData.js +86 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLComment.js +41 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMConfiguration.js +80 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js +20 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMImplementation.js +55 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDOMStringList.js +44 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDAttList.js +66 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDElement.js +44 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDEntity.js +115 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDTDNotation.js +66 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDeclaration.js +51 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocType.js +235 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocument.js +282 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentCB.js +650 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDocumentFragment.js +21 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLDummy.js +39 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLElement.js +334 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNamedNodeMap.js +77 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNode.js +999 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeFilter.js +51 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLNodeList.js +45 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js +56 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLRaw.js +40 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStreamWriter.js +209 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringWriter.js +40 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLStringifier.js +291 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLText.js +82 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLTypeInfo.js +23 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLUserDataHandler.js +27 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/XMLWriterBase.js +485 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/lib/index.js +120 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/package.json +51 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/escaping.coffee +244 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/basic/object.coffee +21 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/index.coffee +161 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/perf/perf.list +11 -0
- package/generator/dead-code-review/node_modules/xmlbuilder/typings/index.d.ts +1771 -0
- package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +1 -0
- package/generator/review/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/review/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/review/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision10/install/elm.json +25 -0
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/review/elm-stuff/generated-code/elm-community/elm-test/0.19.1-revision7/install/elm.json +41 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1327 -122
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +14575 -12632
- package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
- package/generator/review/elm.json +8 -8
- package/generator/src/build.js +7 -10
- package/generator/src/cli.js +124 -42
- package/generator/src/codegen.js +11 -10
- package/generator/src/compatibility-key.js +1 -1
- package/generator/src/elm-codegen.js +3 -0
- package/generator/src/render-worker.js +1 -1
- package/generator/src/render.js +222 -37
- package/generator/src/request-cache.js +1 -0
- package/generator/src/rewrite-elm-json.js +3 -3
- package/package.json +12 -12
- package/src/ApiRoute.elm +147 -9
- package/src/DataSource/Env.elm +27 -3
- package/src/DataSource.elm +11 -22
- package/src/Form.elm +32 -32
- package/src/Head.elm +112 -8
- package/src/MultiDict.elm +49 -0
- package/src/Pages/Generate.elm +4 -1
- package/src/Pages/GeneratorProgramConfig.elm +15 -0
- package/src/Pages/Internal/Platform/CompatibilityKey.elm +1 -1
- package/src/Pages/Internal/Platform/GeneratorApplication.elm +455 -0
- package/src/Pages/Internal/Platform/StaticResponses.elm +35 -5
- package/src/Pages/Internal/Script.elm +16 -0
- package/src/Pages/Manifest.elm +24 -0
- package/src/Pages/Script.elm +94 -0
- package/src/Pages/StaticHttpRequest.elm +9 -7
- package/src/PairingHeap.elm +137 -0
- package/src/Parser/Extra/String.elm +33 -0
- package/src/Parser/Extra.elm +69 -0
- package/src/ProgramTest/ComplexQuery.elm +360 -0
- package/src/ProgramTest/EffectSimulation.elm +122 -0
- package/src/ProgramTest/Failure.elm +367 -0
- package/src/ProgramTest/HtmlHighlighter.elm +116 -0
- package/src/ProgramTest/HtmlParserHacks.elm +58 -0
- package/src/ProgramTest/HtmlRenderer.elm +73 -0
- package/src/ProgramTest/Program.elm +30 -0
- package/src/ProgramTest/StringLines.elm +26 -0
- package/src/ProgramTest/TestHtmlHacks.elm +132 -0
- package/src/ProgramTest/TestHtmlParser.elm +201 -0
- package/src/ProgramTest.elm +2339 -0
- package/src/Query/Extra.elm +55 -0
- package/src/Result/Extra.elm +21 -0
- package/src/Server/Request.elm +2 -2
- package/src/SimulatedEffect/Cmd.elm +69 -0
- package/src/SimulatedEffect/Http.elm +330 -0
- package/src/SimulatedEffect/Navigation.elm +69 -0
- package/src/SimulatedEffect/Ports.elm +62 -0
- package/src/SimulatedEffect/Process.elm +24 -0
- package/src/SimulatedEffect/Sub.elm +48 -0
- package/src/SimulatedEffect/Task.elm +252 -0
- package/src/SimulatedEffect/Time.elm +25 -0
- package/src/SimulatedEffect.elm +42 -0
- package/src/String/Extra.elm +6 -0
- package/src/Test/Http.elm +145 -0
- package/src/TestResult.elm +35 -0
- package/src/TestState.elm +305 -0
- package/src/Url/Extra.elm +100 -0
- package/src/Vendored/Diff.elm +321 -0
- package/src/Vendored/Failure.elm +217 -0
- package/src/Vendored/FormatMonochrome.elm +44 -0
- package/src/Vendored/Highlightable.elm +53 -0
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
module ProgramTest.Failure exposing (Failure(..), toString)
|
|
2
|
+
|
|
3
|
+
import Html exposing (Html)
|
|
4
|
+
import ProgramTest.ComplexQuery as ComplexQuery exposing (Failure(..), FailureContext1(..))
|
|
5
|
+
import ProgramTest.TestHtmlHacks as TestHtmlHacks
|
|
6
|
+
import Set
|
|
7
|
+
import String.Extra
|
|
8
|
+
import Test.Html.Query as Query
|
|
9
|
+
import Test.Runner.Failure
|
|
10
|
+
import Url exposing (Url)
|
|
11
|
+
import Vendored.Failure
|
|
12
|
+
import Vendored.FormatMonochrome
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
type Failure
|
|
16
|
+
= ChangedPage String Url
|
|
17
|
+
-- Errors
|
|
18
|
+
| ExpectFailed String String Test.Runner.Failure.Reason
|
|
19
|
+
| SimulateFailed String String
|
|
20
|
+
| SimulateFailedToFindTarget String String
|
|
21
|
+
| SimulateLastEffectFailed String
|
|
22
|
+
| InvalidLocationUrl String String
|
|
23
|
+
| InvalidFlags String String
|
|
24
|
+
| ProgramDoesNotSupportNavigation String
|
|
25
|
+
| NoBaseUrl String String
|
|
26
|
+
| NoMatchingHttpRequest Int Int String { method : String, url : String } (List ( String, String ))
|
|
27
|
+
| MultipleMatchingHttpRequest Int Int String { method : String, url : String } (List ( String, String ))
|
|
28
|
+
| EffectSimulationNotConfigured String
|
|
29
|
+
| ViewAssertionFailed String (Html ()) ComplexQuery.Highlight ( ComplexQuery.FailureContext, ComplexQuery.Failure )
|
|
30
|
+
| CustomFailure String String
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
toString : Failure -> String
|
|
34
|
+
toString failure =
|
|
35
|
+
case failure of
|
|
36
|
+
ChangedPage cause finalLocation ->
|
|
37
|
+
cause ++ " caused the program to end by navigating to " ++ String.Extra.escape (Url.toString finalLocation) ++ ". NOTE: If this is what you intended, use ProgramTest.expectPageChange to end your test."
|
|
38
|
+
|
|
39
|
+
ExpectFailed expectationName description reason ->
|
|
40
|
+
expectationName
|
|
41
|
+
++ ":\n"
|
|
42
|
+
++ Vendored.Failure.format
|
|
43
|
+
Vendored.FormatMonochrome.formatEquality
|
|
44
|
+
description
|
|
45
|
+
reason
|
|
46
|
+
|
|
47
|
+
SimulateFailed functionName message ->
|
|
48
|
+
functionName ++ ":\n" ++ message
|
|
49
|
+
|
|
50
|
+
SimulateFailedToFindTarget functionName message ->
|
|
51
|
+
functionName ++ ":\n" ++ message
|
|
52
|
+
|
|
53
|
+
SimulateLastEffectFailed message ->
|
|
54
|
+
"simulateLastEffect failed: " ++ message
|
|
55
|
+
|
|
56
|
+
InvalidLocationUrl functionName invalidUrl ->
|
|
57
|
+
functionName ++ ": " ++ "Not a valid absolute URL:\n" ++ String.Extra.escape invalidUrl
|
|
58
|
+
|
|
59
|
+
InvalidFlags functionName message ->
|
|
60
|
+
functionName ++ ":\n" ++ message
|
|
61
|
+
|
|
62
|
+
ProgramDoesNotSupportNavigation functionName ->
|
|
63
|
+
functionName ++ ": Program does not support navigation. Use ProgramTest.createApplication to create a ProgramTest that supports navigation."
|
|
64
|
+
|
|
65
|
+
NoBaseUrl functionName relativeUrl ->
|
|
66
|
+
functionName ++ ": The ProgramTest does not have a base URL and cannot resolve the relative URL " ++ String.Extra.escape relativeUrl ++ ". Use ProgramTest.withBaseUrl before calling ProgramTest.start to create a ProgramTest that can resolve relative URLs."
|
|
67
|
+
|
|
68
|
+
NoMatchingHttpRequest expected actual functionName request pendingRequests ->
|
|
69
|
+
String.concat
|
|
70
|
+
[ functionName
|
|
71
|
+
, ": "
|
|
72
|
+
, "Expected "
|
|
73
|
+
, case expected of
|
|
74
|
+
1 ->
|
|
75
|
+
"HTTP request"
|
|
76
|
+
|
|
77
|
+
_ ->
|
|
78
|
+
"at least " ++ String.fromInt expected ++ " HTTP requests"
|
|
79
|
+
, " ("
|
|
80
|
+
, request.method
|
|
81
|
+
, " "
|
|
82
|
+
, request.url
|
|
83
|
+
, ") to have been made and still be pending, "
|
|
84
|
+
, case actual of
|
|
85
|
+
0 ->
|
|
86
|
+
"but no such requests were made."
|
|
87
|
+
|
|
88
|
+
_ ->
|
|
89
|
+
"but only " ++ String.fromInt actual ++ " such requests were made."
|
|
90
|
+
, "\n"
|
|
91
|
+
, case pendingRequests of
|
|
92
|
+
[] ->
|
|
93
|
+
" No requests were made."
|
|
94
|
+
|
|
95
|
+
_ ->
|
|
96
|
+
String.concat
|
|
97
|
+
[ " The following requests were made:\n"
|
|
98
|
+
, String.join "\n" <|
|
|
99
|
+
List.map (\( method, url ) -> " - " ++ method ++ " " ++ url) pendingRequests
|
|
100
|
+
]
|
|
101
|
+
]
|
|
102
|
+
|
|
103
|
+
MultipleMatchingHttpRequest expected actual functionName request pendingRequests ->
|
|
104
|
+
String.concat
|
|
105
|
+
[ functionName
|
|
106
|
+
, ": "
|
|
107
|
+
, "Expected "
|
|
108
|
+
, case expected of
|
|
109
|
+
1 ->
|
|
110
|
+
"a single HTTP request"
|
|
111
|
+
|
|
112
|
+
_ ->
|
|
113
|
+
String.fromInt expected ++ " HTTP requests"
|
|
114
|
+
, " ("
|
|
115
|
+
, request.method
|
|
116
|
+
, " "
|
|
117
|
+
, request.url
|
|
118
|
+
, ") to have been made, but "
|
|
119
|
+
, String.fromInt actual
|
|
120
|
+
, " such requests were made.\n"
|
|
121
|
+
, case pendingRequests of
|
|
122
|
+
[] ->
|
|
123
|
+
" No requests were made."
|
|
124
|
+
|
|
125
|
+
_ ->
|
|
126
|
+
String.concat
|
|
127
|
+
[ " The following requests were made:\n"
|
|
128
|
+
, String.join "\n" <|
|
|
129
|
+
List.map (\( method, url ) -> " - " ++ method ++ " " ++ url) pendingRequests
|
|
130
|
+
]
|
|
131
|
+
, if expected == 1 && actual > 1 then
|
|
132
|
+
let
|
|
133
|
+
useInstead =
|
|
134
|
+
if String.startsWith "simulate" functionName then
|
|
135
|
+
"simulateHttpResponseAdvanced"
|
|
136
|
+
|
|
137
|
+
else if String.startsWith "expect" functionName then
|
|
138
|
+
"expectHttpRequests"
|
|
139
|
+
|
|
140
|
+
else
|
|
141
|
+
"ensureHttpRequests"
|
|
142
|
+
in
|
|
143
|
+
"\n\nNOTE: If you want to allow multiple requests to the same endpoint, use ProgramTest." ++ useInstead ++ "."
|
|
144
|
+
|
|
145
|
+
else
|
|
146
|
+
""
|
|
147
|
+
]
|
|
148
|
+
|
|
149
|
+
EffectSimulationNotConfigured functionName ->
|
|
150
|
+
"TEST SETUP ERROR: In order to use " ++ functionName ++ ", you MUST use ProgramTest.withSimulatedEffects before calling ProgramTest.start"
|
|
151
|
+
|
|
152
|
+
ViewAssertionFailed functionName html highlight reason ->
|
|
153
|
+
let
|
|
154
|
+
highlighter =
|
|
155
|
+
if Set.isEmpty highlight then
|
|
156
|
+
\_ _ _ -> True
|
|
157
|
+
|
|
158
|
+
else
|
|
159
|
+
\tag attrs children ->
|
|
160
|
+
Set.member tag highlight
|
|
161
|
+
in
|
|
162
|
+
String.join "\n"
|
|
163
|
+
[ TestHtmlHacks.renderHtml showColors.dim highlighter (Query.fromHtml html)
|
|
164
|
+
, ""
|
|
165
|
+
, "▼ " ++ functionName
|
|
166
|
+
, ""
|
|
167
|
+
, renderQueryFailureWithContext renderQueryFailure 0 True reason
|
|
168
|
+
]
|
|
169
|
+
|
|
170
|
+
CustomFailure assertionName message ->
|
|
171
|
+
assertionName ++ ": " ++ message
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
renderQueryFailureWithContext : (Int -> Bool -> a -> String) -> Int -> Bool -> ( ComplexQuery.FailureContext, a ) -> String
|
|
175
|
+
renderQueryFailureWithContext renderInner indent color failure =
|
|
176
|
+
let
|
|
177
|
+
indentS =
|
|
178
|
+
String.repeat indent " "
|
|
179
|
+
in
|
|
180
|
+
case failure of
|
|
181
|
+
( [], inner ) ->
|
|
182
|
+
renderInner indent color inner
|
|
183
|
+
|
|
184
|
+
( (Description description) :: baseFailure, inner ) ->
|
|
185
|
+
String.join "\n" <|
|
|
186
|
+
List.filter ((/=) "")
|
|
187
|
+
[ indentS ++ renderDescriptionResult (colorsFor color) description ++ ":"
|
|
188
|
+
, renderQueryFailureWithContext renderInner (indent + 2) color ( baseFailure, inner )
|
|
189
|
+
]
|
|
190
|
+
|
|
191
|
+
( (CheckSucceeded description checkContext) :: baseFailure, inner ) ->
|
|
192
|
+
String.join "\n" <|
|
|
193
|
+
List.filter ((/=) "")
|
|
194
|
+
[ indentS ++ renderDescriptionResult (colorsFor color) (Ok description) ++ ":"
|
|
195
|
+
, renderQueryFailureWithContext_ (\_ _ () -> "") (indent + 2) color ( checkContext, () )
|
|
196
|
+
, renderQueryFailureWithContext renderInner indent color ( baseFailure, inner )
|
|
197
|
+
]
|
|
198
|
+
|
|
199
|
+
( (FindSucceeded (Just description) successfulChecks) :: baseFailure, inner ) ->
|
|
200
|
+
String.join "\n" <|
|
|
201
|
+
List.filter ((/=) "")
|
|
202
|
+
[ indentS ++ renderDescriptionResult (colorsFor color) (Ok description) ++ ":"
|
|
203
|
+
, renderSelectorResults (indent + 2) (colorsFor color) (List.map Ok (successfulChecks ()))
|
|
204
|
+
, renderQueryFailureWithContext renderInner indent color ( baseFailure, inner )
|
|
205
|
+
]
|
|
206
|
+
|
|
207
|
+
( (FindSucceeded Nothing successfulChecks) :: baseFailure, inner ) ->
|
|
208
|
+
String.join "\n" <|
|
|
209
|
+
List.filter ((/=) "")
|
|
210
|
+
[ renderSelectorResults indent (colorsFor color) (List.map Ok (successfulChecks ()))
|
|
211
|
+
, renderQueryFailureWithContext renderInner indent color ( baseFailure, inner )
|
|
212
|
+
]
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
renderQueryFailureWithContext_ : (Int -> Bool -> a -> String) -> Int -> Bool -> ( ComplexQuery.FailureContext, a ) -> String
|
|
216
|
+
renderQueryFailureWithContext_ =
|
|
217
|
+
renderQueryFailureWithContext
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
renderQueryFailure : Int -> Bool -> ComplexQuery.Failure -> String
|
|
221
|
+
renderQueryFailure indent color failure =
|
|
222
|
+
let
|
|
223
|
+
indentS =
|
|
224
|
+
String.repeat indent " "
|
|
225
|
+
in
|
|
226
|
+
case failure of
|
|
227
|
+
QueryFailed failureReason ->
|
|
228
|
+
renderSelectorResults indent (colorsFor color) failureReason
|
|
229
|
+
|
|
230
|
+
ComplexQuery.SimulateFailed string ->
|
|
231
|
+
let
|
|
232
|
+
colors =
|
|
233
|
+
colorsFor color
|
|
234
|
+
in
|
|
235
|
+
indentS ++ renderSelectorResult colors (Err string)
|
|
236
|
+
|
|
237
|
+
NoMatches description options ->
|
|
238
|
+
let
|
|
239
|
+
sortedByPriority =
|
|
240
|
+
options
|
|
241
|
+
|> List.sortBy (\( _, prio, _ ) -> -prio)
|
|
242
|
+
|
|
243
|
+
maxPriority =
|
|
244
|
+
List.head sortedByPriority
|
|
245
|
+
|> Maybe.map (\( _, prio, _ ) -> prio)
|
|
246
|
+
|> Maybe.withDefault 0
|
|
247
|
+
in
|
|
248
|
+
String.join "\n" <|
|
|
249
|
+
List.concat
|
|
250
|
+
[ [ indentS ++ description ++ ":" ]
|
|
251
|
+
, sortedByPriority
|
|
252
|
+
|> List.filter (\( _, prio, _ ) -> prio > maxPriority - 2)
|
|
253
|
+
|> List.map (\( desc, prio, reason ) -> indentS ++ "- " ++ desc ++ "\n" ++ renderQueryFailureWithContext renderQueryFailure (indent + 4) (color && prio >= maxPriority - 1) reason)
|
|
254
|
+
]
|
|
255
|
+
|
|
256
|
+
TooManyMatches description matches ->
|
|
257
|
+
String.join "\n" <|
|
|
258
|
+
List.concat
|
|
259
|
+
[ [ indentS ++ description ++ ", but there were multiple successful matches:" ]
|
|
260
|
+
, matches
|
|
261
|
+
|> List.sortBy (\( _, prio, _ ) -> -prio)
|
|
262
|
+
|> List.map (\( desc, _, todo ) -> indentS ++ "- " ++ desc)
|
|
263
|
+
, [ ""
|
|
264
|
+
, "If that's what you intended, use `ProgramTest.within` to focus in on a portion of"
|
|
265
|
+
, "the view that contains only one of the matches."
|
|
266
|
+
]
|
|
267
|
+
]
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
renderSelectorResults : Int -> Colors -> List (Result String String) -> String
|
|
271
|
+
renderSelectorResults indent colors results =
|
|
272
|
+
let
|
|
273
|
+
indentS =
|
|
274
|
+
String.repeat indent " "
|
|
275
|
+
in
|
|
276
|
+
List.map ((++) indentS << renderSelectorResult colors) (upToFirstErr results)
|
|
277
|
+
|> String.join "\n"
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
renderSelectorResult : Colors -> Result String String -> String
|
|
281
|
+
renderSelectorResult colors result =
|
|
282
|
+
case result of
|
|
283
|
+
Ok selector ->
|
|
284
|
+
String.concat
|
|
285
|
+
[ colors.green "✓"
|
|
286
|
+
, " "
|
|
287
|
+
, colors.bold selector
|
|
288
|
+
]
|
|
289
|
+
|
|
290
|
+
Err selector ->
|
|
291
|
+
colors.red <|
|
|
292
|
+
String.concat
|
|
293
|
+
[ "✗"
|
|
294
|
+
, " "
|
|
295
|
+
, selector
|
|
296
|
+
]
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
renderDescriptionResult : Colors -> Result String String -> String
|
|
300
|
+
renderDescriptionResult colors result =
|
|
301
|
+
case result of
|
|
302
|
+
Ok selector ->
|
|
303
|
+
String.concat
|
|
304
|
+
[ colors.green "✓"
|
|
305
|
+
, " "
|
|
306
|
+
, selector
|
|
307
|
+
]
|
|
308
|
+
|
|
309
|
+
Err selector ->
|
|
310
|
+
String.concat
|
|
311
|
+
[ colors.red "✗"
|
|
312
|
+
, " "
|
|
313
|
+
, selector
|
|
314
|
+
]
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
upToFirstErr : List (Result x a) -> List (Result x a)
|
|
318
|
+
upToFirstErr results =
|
|
319
|
+
let
|
|
320
|
+
step acc results_ =
|
|
321
|
+
case results_ of
|
|
322
|
+
[] ->
|
|
323
|
+
acc
|
|
324
|
+
|
|
325
|
+
(Err x) :: _ ->
|
|
326
|
+
Err x :: acc
|
|
327
|
+
|
|
328
|
+
(Ok a) :: rest ->
|
|
329
|
+
step (Ok a :: acc) rest
|
|
330
|
+
in
|
|
331
|
+
step [] results
|
|
332
|
+
|> List.reverse
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
type alias Colors =
|
|
336
|
+
{ bold : String -> String
|
|
337
|
+
, red : String -> String
|
|
338
|
+
, green : String -> String
|
|
339
|
+
, dim : String -> String
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
colorsFor : Bool -> Colors
|
|
344
|
+
colorsFor show =
|
|
345
|
+
if show then
|
|
346
|
+
showColors
|
|
347
|
+
|
|
348
|
+
else
|
|
349
|
+
noColors
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
showColors : Colors
|
|
353
|
+
showColors =
|
|
354
|
+
{ bold = \s -> String.concat [ "\u{001B}[1m", s, "\u{001B}[0m" ]
|
|
355
|
+
, red = \s -> String.concat [ "\u{001B}[31m", s, "\u{001B}[0m" ]
|
|
356
|
+
, green = \s -> String.concat [ "\u{001B}[32m", s, "\u{001B}[0m" ]
|
|
357
|
+
, dim = \s -> String.concat [ "\u{001B}[2m", s, "\u{001B}[0m" ]
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
noColors : Colors
|
|
362
|
+
noColors =
|
|
363
|
+
{ bold = identity
|
|
364
|
+
, red = identity
|
|
365
|
+
, green = identity
|
|
366
|
+
, dim = identity
|
|
367
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
module ProgramTest.HtmlHighlighter exposing (Attribute, Node(..), NodeF(..), fold, foldWithOriginal, highlight, isNonHiddenElement)
|
|
2
|
+
|
|
3
|
+
import Html.Parser
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
type NodeF a
|
|
7
|
+
= TextF String
|
|
8
|
+
| ElementF String (List Attribute) (List a)
|
|
9
|
+
| CommentF String
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
type alias Attribute =
|
|
13
|
+
( String, String )
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
fold : (NodeF a -> a) -> Html.Parser.Node -> a
|
|
17
|
+
fold f node =
|
|
18
|
+
case node of
|
|
19
|
+
Html.Parser.Text text ->
|
|
20
|
+
f (TextF text)
|
|
21
|
+
|
|
22
|
+
Html.Parser.Element tag attrs children ->
|
|
23
|
+
f (ElementF tag attrs (List.map (fold f) children))
|
|
24
|
+
|
|
25
|
+
Html.Parser.Comment string ->
|
|
26
|
+
f (CommentF string)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
foldWithOriginal : (NodeF ( Html.Parser.Node, a ) -> a) -> Html.Parser.Node -> a
|
|
30
|
+
foldWithOriginal f node =
|
|
31
|
+
case node of
|
|
32
|
+
Html.Parser.Text text ->
|
|
33
|
+
f (TextF text)
|
|
34
|
+
|
|
35
|
+
Html.Parser.Element tag attrs children ->
|
|
36
|
+
f (ElementF tag attrs (List.map (\child -> ( child, foldWithOriginal f child )) children))
|
|
37
|
+
|
|
38
|
+
Html.Parser.Comment string ->
|
|
39
|
+
f (CommentF string)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
type Node
|
|
43
|
+
= Text String
|
|
44
|
+
| Element String (List Attribute) (List Node)
|
|
45
|
+
| Comment String
|
|
46
|
+
| Hidden String
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
highlight : (String -> List Attribute -> List Html.Parser.Node -> Bool) -> Html.Parser.Node -> Node
|
|
50
|
+
highlight predicate =
|
|
51
|
+
foldWithOriginal <|
|
|
52
|
+
\node ->
|
|
53
|
+
case node of
|
|
54
|
+
TextF text ->
|
|
55
|
+
Text text
|
|
56
|
+
|
|
57
|
+
ElementF tag attrs children ->
|
|
58
|
+
let
|
|
59
|
+
foldedChildren =
|
|
60
|
+
List.map Tuple.second children
|
|
61
|
+
in
|
|
62
|
+
if predicate tag attrs (List.map Tuple.first children) || List.any isNonHiddenElement foldedChildren then
|
|
63
|
+
Element tag attrs foldedChildren
|
|
64
|
+
|
|
65
|
+
else
|
|
66
|
+
let
|
|
67
|
+
bestId =
|
|
68
|
+
List.concatMap identity
|
|
69
|
+
[ List.filter (Tuple.first >> (==) "id") attrs
|
|
70
|
+
, List.filter (Tuple.first >> (==) "name") attrs
|
|
71
|
+
, List.filter (Tuple.first >> (==) "class") attrs
|
|
72
|
+
]
|
|
73
|
+
|> List.head
|
|
74
|
+
|> Maybe.map (\( name, value ) -> " " ++ name ++ "=\"" ++ value ++ "\"")
|
|
75
|
+
|> Maybe.withDefault ""
|
|
76
|
+
|
|
77
|
+
bestContent =
|
|
78
|
+
case foldedChildren of
|
|
79
|
+
[] ->
|
|
80
|
+
""
|
|
81
|
+
|
|
82
|
+
[ Text single ] ->
|
|
83
|
+
truncate 15 (String.trim single)
|
|
84
|
+
|
|
85
|
+
_ ->
|
|
86
|
+
"..."
|
|
87
|
+
in
|
|
88
|
+
Hidden ("<" ++ tag ++ bestId ++ ">" ++ bestContent ++ "</" ++ tag ++ ">")
|
|
89
|
+
|
|
90
|
+
CommentF string ->
|
|
91
|
+
Comment string
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
isNonHiddenElement : Node -> Bool
|
|
95
|
+
isNonHiddenElement node =
|
|
96
|
+
case node of
|
|
97
|
+
Text _ ->
|
|
98
|
+
False
|
|
99
|
+
|
|
100
|
+
Element _ _ _ ->
|
|
101
|
+
True
|
|
102
|
+
|
|
103
|
+
Comment _ ->
|
|
104
|
+
False
|
|
105
|
+
|
|
106
|
+
Hidden _ ->
|
|
107
|
+
False
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
truncate : Int -> String -> String
|
|
111
|
+
truncate max input =
|
|
112
|
+
if String.length input < max - 3 then
|
|
113
|
+
input
|
|
114
|
+
|
|
115
|
+
else
|
|
116
|
+
String.left (max - 3) input ++ "..."
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
module ProgramTest.HtmlParserHacks exposing (parse, trimText)
|
|
2
|
+
|
|
3
|
+
import Html.Parser
|
|
4
|
+
import Parser
|
|
5
|
+
import ProgramTest.StringLines as StringLines
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
parse : String -> Result (List Parser.DeadEnd) (List Html.Parser.Node)
|
|
9
|
+
parse input =
|
|
10
|
+
case Html.Parser.run input of
|
|
11
|
+
Ok nodes ->
|
|
12
|
+
Ok nodes
|
|
13
|
+
|
|
14
|
+
Err errs ->
|
|
15
|
+
case fixError errs input of
|
|
16
|
+
Nothing ->
|
|
17
|
+
Err errs
|
|
18
|
+
|
|
19
|
+
Just nodes ->
|
|
20
|
+
Ok nodes
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
fixError : List Parser.DeadEnd -> String -> Maybe (List Html.Parser.Node)
|
|
24
|
+
fixError errs input =
|
|
25
|
+
case errs of
|
|
26
|
+
[] ->
|
|
27
|
+
Nothing
|
|
28
|
+
|
|
29
|
+
{ row, col, problem } :: rest ->
|
|
30
|
+
case problem of
|
|
31
|
+
Parser.UnexpectedChar ->
|
|
32
|
+
case StringLines.charAt row (col - 1) input of
|
|
33
|
+
Just "<" ->
|
|
34
|
+
parse (StringLines.replaceAt row (col - 1) "<" input)
|
|
35
|
+
|> Result.toMaybe
|
|
36
|
+
|
|
37
|
+
_ ->
|
|
38
|
+
fixError rest input
|
|
39
|
+
|
|
40
|
+
_ ->
|
|
41
|
+
fixError rest input
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
trimText : Html.Parser.Node -> Html.Parser.Node
|
|
45
|
+
trimText node =
|
|
46
|
+
case node of
|
|
47
|
+
Html.Parser.Text string ->
|
|
48
|
+
Html.Parser.Text (String.trim string)
|
|
49
|
+
|
|
50
|
+
Html.Parser.Element string list nodes ->
|
|
51
|
+
Html.Parser.Element string
|
|
52
|
+
list
|
|
53
|
+
(List.map trimText nodes
|
|
54
|
+
|> List.filter ((/=) (Html.Parser.Text ""))
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
Html.Parser.Comment string ->
|
|
58
|
+
Html.Parser.Comment string
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
module ProgramTest.HtmlRenderer exposing (render)
|
|
2
|
+
|
|
3
|
+
import ProgramTest.HtmlHighlighter as HtmlHighlighter exposing (Node(..))
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
render : (String -> String) -> Int -> List HtmlHighlighter.Node -> String
|
|
7
|
+
render colorHidden indent nodes =
|
|
8
|
+
case nodes of
|
|
9
|
+
[] ->
|
|
10
|
+
""
|
|
11
|
+
|
|
12
|
+
(Text text) :: rest ->
|
|
13
|
+
case String.trim (String.replace "\n" " " text) of
|
|
14
|
+
"" ->
|
|
15
|
+
render colorHidden indent rest
|
|
16
|
+
|
|
17
|
+
trimmed ->
|
|
18
|
+
String.repeat indent " " ++ trimmed ++ "\n" ++ render colorHidden indent rest
|
|
19
|
+
|
|
20
|
+
(Comment text) :: rest ->
|
|
21
|
+
String.repeat indent " " ++ "<!--" ++ text ++ "-->\n" ++ render colorHidden indent rest
|
|
22
|
+
|
|
23
|
+
(Element tag attrs []) :: rest ->
|
|
24
|
+
String.repeat indent " "
|
|
25
|
+
++ "<"
|
|
26
|
+
++ tag
|
|
27
|
+
++ renderAttrs attrs
|
|
28
|
+
++ "></"
|
|
29
|
+
++ tag
|
|
30
|
+
++ ">\n"
|
|
31
|
+
++ render colorHidden indent rest
|
|
32
|
+
|
|
33
|
+
(Element tag attrs children) :: rest ->
|
|
34
|
+
String.repeat indent " "
|
|
35
|
+
++ "<"
|
|
36
|
+
++ tag
|
|
37
|
+
++ renderAttrs attrs
|
|
38
|
+
++ ">\n"
|
|
39
|
+
++ render colorHidden (indent + 4) children
|
|
40
|
+
++ String.repeat indent " "
|
|
41
|
+
++ "</"
|
|
42
|
+
++ tag
|
|
43
|
+
++ ">\n"
|
|
44
|
+
++ render colorHidden indent rest
|
|
45
|
+
|
|
46
|
+
(Hidden short) :: rest ->
|
|
47
|
+
String.repeat indent " " ++ colorHidden short ++ "\n" ++ render colorHidden indent rest
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
renderAttrs : List HtmlHighlighter.Attribute -> String
|
|
51
|
+
renderAttrs attrs =
|
|
52
|
+
case attrs of
|
|
53
|
+
[] ->
|
|
54
|
+
""
|
|
55
|
+
|
|
56
|
+
some ->
|
|
57
|
+
" " ++ String.join " " (List.map renderAttr some)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
renderAttr : ( String, String ) -> String
|
|
61
|
+
renderAttr ( name, value ) =
|
|
62
|
+
case ( name, value ) of
|
|
63
|
+
( "htmlfor", _ ) ->
|
|
64
|
+
"for=\"" ++ value ++ "\""
|
|
65
|
+
|
|
66
|
+
( _, "true" ) ->
|
|
67
|
+
name ++ "=true"
|
|
68
|
+
|
|
69
|
+
( _, "false" ) ->
|
|
70
|
+
name ++ "=false"
|
|
71
|
+
|
|
72
|
+
_ ->
|
|
73
|
+
name ++ "=\"" ++ value ++ "\""
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module ProgramTest.Program exposing (Program, renderView)
|
|
2
|
+
|
|
3
|
+
import Browser
|
|
4
|
+
import Html exposing (Html)
|
|
5
|
+
import Test.Html.Query as Query
|
|
6
|
+
import Url exposing (Url)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
{-| Since we can't inspect `Platform.Program`s in Elm,
|
|
10
|
+
this type represents the same thing as a record that we can access.
|
|
11
|
+
|
|
12
|
+
Note that we also parameterize `effect` and `sub` separately because
|
|
13
|
+
`Platform.Cmd` and `Platform.Sub` are not inspectable in Elm.
|
|
14
|
+
|
|
15
|
+
-}
|
|
16
|
+
type alias Program model msg effect sub =
|
|
17
|
+
{ update : msg -> model -> ( model, effect )
|
|
18
|
+
, view : model -> Html msg
|
|
19
|
+
, onUrlRequest : Maybe (Browser.UrlRequest -> msg)
|
|
20
|
+
, onUrlChange : Maybe (Url -> msg)
|
|
21
|
+
, subscriptions : Maybe (model -> sub)
|
|
22
|
+
, withinFocus : Query.Single msg -> Query.Single msg
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
renderView : Program model msg effect sub -> model -> Query.Single msg
|
|
27
|
+
renderView program model =
|
|
28
|
+
program.view model
|
|
29
|
+
|> Query.fromHtml
|
|
30
|
+
|> program.withinFocus
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module ProgramTest.StringLines exposing (charAt, replaceAt)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
charAt : Int -> Int -> String -> Maybe String
|
|
5
|
+
charAt row col input =
|
|
6
|
+
String.lines input
|
|
7
|
+
|> List.drop (row - 1)
|
|
8
|
+
|> List.head
|
|
9
|
+
|> Maybe.map
|
|
10
|
+
(String.dropLeft (col - 1)
|
|
11
|
+
>> String.left 1
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
replaceAt : Int -> Int -> String -> String -> String
|
|
16
|
+
replaceAt row col replacement input =
|
|
17
|
+
String.lines input
|
|
18
|
+
|> List.indexedMap
|
|
19
|
+
(\i line ->
|
|
20
|
+
if i == (row - 1) then
|
|
21
|
+
String.left (col - 1) line ++ replacement ++ String.dropLeft col line
|
|
22
|
+
|
|
23
|
+
else
|
|
24
|
+
line
|
|
25
|
+
)
|
|
26
|
+
|> String.join "\n"
|