git.iko.soy/rowtype-yoga/purescript-playwright
on main help sign in
Add `close`, fix incorrect use of `Options`.
commit5e5459fb392897e91707e1bab04595700bbe8e54 authorVladimir Kalnitsky <klntsky@gmail.com> dateTue 25 Aug 2020, 23:39 (6 years ago) parente2de167
5 files changed+47−14
.gitignore+9−8 spago.dhall+8−1 src/Playwright.js+6 src/Playwright.purs+10−3 test/Main.purs+14−2
.gitignore+9−8
@@ -1,8 +1,9 @@
1−# Dependencies
2−.psci_modules
3−bower_components
4−node_modules
5−
6−# Generated files
7−.psci
8−output
1+/bower_components/
2+/node_modules/
3+/.pulp-cache/
4+/output/
5+/generated-docs/
6+/.psc-package/
7+/.psc*
8+/.purs*
9+/.psa*
spago.dhall+8−1
@@ -1,6 +1,13 @@
11{ name = "playwright"
22, dependencies =
3− [ "console", "effect", "prelude", "psci-support", "aff-promise", "options" ]
3+ [ "console"
4+ , "effect"
5+ , "prelude"
6+ , "psci-support"
7+ , "aff-promise"
8+ , "options"
9+ , "test-unit"
10+ ]
411, packages = ./packages.dhall
512, sources = [ "src/**/*.purs", "test/**/*.purs" ]
613}
src/Playwright.js+6
@@ -12,3 +12,9 @@ exports._launch = function (browser) {
1212 };
1313 };
1414};
15+
16+exports._close = function (browser) {
17+ return function () {
18+ return browser.close();
19+ };
20+};
src/Playwright.purs+10−3
@@ -28,13 +28,15 @@ module Playwright
2828 , env
2929 , devtools
3030 , slowMo
31+
32+ , close
3133 )
3234where
3335
3436import Prelude
3537import Effect (Effect)
3638import Control.Promise (Promise, toAffE)
37−import Data.Options (Option, Options, opt)
39+import Data.Options (Option, Options, opt, options)
3840import Effect.Aff (Aff)
3941import Foreign (Foreign)
4042import Foreign.Object (Object)
@@ -46,10 +48,10 @@ foreign import firefox :: BrowserType
4648foreign import chromium :: BrowserType
4749foreign import webkit :: BrowserType
4850
49−foreign import _launch :: BrowserType -> Options LaunchOptions -> Effect (Promise Browser)
51+foreign import _launch :: BrowserType -> Foreign -> Effect (Promise Browser)
5052
5153launch :: BrowserType -> Options LaunchOptions -> Aff Browser
52−launch bt = toAffE <<< _launch bt
54+launch bt opts = toAffE $ _launch bt (options opts)
5355
5456foreign import data LaunchOptions :: Type
5557
@@ -111,3 +113,8 @@ devtools = opt "devtools"
111113
112114slowMo :: Option LaunchOptions Number
113115slowMo = opt "slowMo"
116+
117+close :: Browser -> Aff Unit
118+close = toAffE <<< _close
119+
120+foreign import _close :: Browser -> Effect (Promise Unit)
test/Main.purs+14−2
@@ -3,7 +3,19 @@ module Test.Main where
33import Prelude
44import Effect (Effect)
55import Effect.Console (log)
6+import Test.Unit.Assert as Assert
7+import Playwright
8+import Data.Options
9+import Test.Unit
10+import Test.Unit.Main
611
712main :: Effect Unit
8−main = do
9− log "You should add some tests."
13+main = runTest do
14+ suite "browser" do
15+ test "launch" do
16+ browser <- launch firefox $
17+ headless := false <>
18+ slowMo := 10000.0
19+
20+ -- close browser
21+ pure unit