Skip to content

Commit

Permalink
Retrieve jQuery in FFI
Browse files Browse the repository at this point in the history
  • Loading branch information
firefrorefiddle committed Jun 27, 2022
1 parent 7305b31 commit 0e2fcb9
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 5 deletions.
4 changes: 3 additions & 1 deletion test/E2E.purs
@@ -1,4 +1,4 @@
module Test.E2E where
module Test.E2E (main) where

import Test.E2E.Wallet as Wallet

Expand All @@ -13,6 +13,7 @@ import Prelude
import Test.Examples.Pkh2Pkh (testPkh2Pkh)
import Mote as Mote
import Test.Spec.Runner as SpecRunner
import Debug (spy)

-- Run with `spago test --main Test.E2E`
main :: Effect Unit
Expand All @@ -23,5 +24,6 @@ main = launchAff_ do
-- Requires external services listed in README.md
testPlan :: TestPlanM Unit
testPlan = do
_ <- pure $ spy "testPlan"
-- _ <- Wallet.suite
testPkh2Pkh
2 changes: 2 additions & 0 deletions test/E2E/Helpers.js
@@ -0,0 +1,2 @@
exports._retrieveJQuery = page => () =>
page.evaluate(() => window.fetch('https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js').then((res) => res.text()));
13 changes: 13 additions & 0 deletions test/E2E/Helpers.purs
@@ -0,0 +1,13 @@
module Test.E2E.Helpers (retrieveJQuery) where

import Toppokki as Toki
import Effect.Aff (Aff)
import Effect.Class (liftEffect)
import Effect (Effect)
import Prelude
import Control.Promise (Promise, toAffE)

foreign import _retrieveJQuery :: Toki.Page -> Effect (Promise String)

retrieveJQuery :: Toki.Page -> Aff String
retrieveJQuery = toAffE <<< _retrieveJQuery
13 changes: 9 additions & 4 deletions test/Examples/Pkh2Pkh.purs
Expand Up @@ -12,13 +12,14 @@ import TestM
import Control.Category (identity)
import Control.Monad.Error.Class (catchError)
import Data.Array (head, filter, zip)
import Foreign as Foreign
import Data.Functor (void)
import Data.Maybe (Maybe(..), isJust, fromMaybe)
import Data.Newtype (class Newtype, wrap)
import Data.Tuple (fst, snd)
import Effect.Class.Console (log)
import Foreign (Foreign)
import Foreign as Foreign
import Test.E2E.Helpers (retrieveJQuery)
import Test.Examples.Config (host)
import Test.Spec.Assertions (shouldSatisfy)
import Test.Toppoki (example)
Expand All @@ -40,16 +41,19 @@ tryJs selector function page = catchError eval $ \e -> do
hasSelector :: Toki.Selector -> Toki.Page -> Aff (Maybe Unit)
hasSelector selector page = tryJs selector "(x)=>{}" page

retrieveJQuery :: Toki.Page -> Aff String
{-retrieveJQuery :: Toki.Page -> Aff String
retrieveJQuery page = Foreign.unsafeFromForeign <$> Toki.unsafeEvaluateStringFunction fetch page
where fetch = "window.fetch('https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js')"
-}

injectJQuery :: String -> Toki.Page -> Aff Foreign
injectJQuery = Toki.unsafeEvaluateStringFunction

findNamiPage :: Toki.Page -> Toki.Browser -> Aff (Maybe Toki.Page)
findNamiPage page browser = do

pages <- Toki.pages browser
_ <- pure $ spy "retrieve it!"
jQuery <- retrieveJQuery page
_ <- for pages $ injectJQuery jQuery

Expand Down Expand Up @@ -82,17 +86,18 @@ x :: Aff Unit
x = do
browser <- launchWithNami Visible
page <- Toki.newPage browser
jQuery <- retrieveJQuery page
Toki.goto (wrap example) page
delay (wrap 5000.0)
namiPage <- findNamiPage page browser
{- namiPage <- findNamiPage page browser
shouldSatisfy (NoShowPage <$> namiPage) isJust
let namiPage' :: Toki.Page
namiPage' = fromMaybe page namiPage
r <- clickButton "Sign" namiPage'
shouldSatisfy r (_ == (Just unit))
delay (wrap 60000.0)
pure unit

-}
-- namiPage <- Toki.openPopup page (Toki.goto host page)
-- js "console.log('test');" namiPage

Expand Down

0 comments on commit 0e2fcb9

Please sign in to comment.