Browse Source

Add getOutputFromFile utility function

jherve 1 year ago
parent
commit
8ca53b371b
3 changed files with 35 additions and 9 deletions
  1. 20 1
      test/ArtDecoCard.purs
  2. 2 7
      test/JobsUnifiedTopCard.purs
  3. 13 1
      test/Utils.purs

File diff suppressed because it is too large
+ 20 - 1
test/ArtDecoCard.purs


+ 2 - 7
test/JobsUnifiedTopCard.purs

@@ -2,24 +2,20 @@ module Test.JobsUnifiedTopCard where
 
 import Prelude
 
-import Control.Monad.Except (runExceptT)
 import Data.Either (Either(..))
 import Data.List (List(..), (:))
 import Data.List.NonEmpty (NonEmptyList(..))
 import Data.Maybe (Maybe(..))
 import Data.NonEmpty (NonEmpty(..))
-import Effect.Class (liftEffect)
 import LinkedIn.DetachedNode (DetachedNode(..))
 import LinkedIn.Jobs.JobOffer (JobOffer(..))
-import LinkedIn.Output (run)
 import LinkedIn.Output.Types (Output(..))
 import LinkedIn.Page.JobOffer (JobOfferPage(..))
 import LinkedIn.UI.Basic.Types (JobFlexibility(..))
 import LinkedIn.UI.Components.JobsUnifiedTopCard (JobsUnifiedTopCardElement(..), TopCardAction(..), TopCardInsight(..), TopCardInsightContent(..), TopCardPrimaryDescription(..), TopCardSecondaryInsight(..))
-import Node.JsDom (jsDomFromFile)
 import Test.Spec (Spec, describe, it)
 import Test.Spec.Assertions (shouldEqual)
-import Test.Utils (detachFromFile)
+import Test.Utils (detachFromFile, getOutputFromFile)
 import Type.Proxy (Proxy(..))
 
 jobsUnifiedTopCardSpec :: Spec Unit
@@ -123,8 +119,7 @@ jobsUnifiedTopCardSpec = do
       }))
 
     it "reads the JobOffer" do
-      dom <- liftEffect $ jsDomFromFile "test/examples/job_offer.html"
-      jobOffer <- liftEffect $ runExceptT $ run (Proxy :: Proxy JobOfferPage) dom
+      jobOffer <- getOutputFromFile (Proxy :: Proxy JobOfferPage) "test/examples/job_offer.html"
 
       jobOffer `shouldEqual` Right (OutJobOffer (JobOffer {
         companyDomain: (Just "Technologies et services de l’information"),

+ 13 - 1
test/Utils.purs

@@ -12,7 +12,8 @@ import Effect.Aff (Aff)
 import Effect.Class (liftEffect)
 import LinkedIn.CanBeQueried (class CanBeQueried)
 import LinkedIn.DetachedNode (DetachedNode)
-import LinkedIn.Output (runToDetached)
+import LinkedIn.Extractible (class Extractible)
+import LinkedIn.Output (Output, OutputError, run, runToDetached)
 import LinkedIn.QueryRunner (QueryError)
 import LinkedIn.UI.Basic.Parser (toYear)
 import LinkedIn.UI.Basic.Types (MonthYear(..))
@@ -51,3 +52,14 @@ detachFromString :: forall t.
 detachFromString proxy string = do
   dom <- liftEffect $ jsDomParse string
   liftEffect $ runExceptT $ runToDetached proxy dom
+
+getOutputFromFile :: forall t.
+  Traversable t
+  => Extractible t
+  => CanBeQueried Document t
+  => Proxy t
+  -> String
+  -> Aff (Either OutputError Output)
+getOutputFromFile proxy string = do
+  dom <- liftEffect $ jsDomFromFile string
+  liftEffect $ runExceptT $ run proxy dom