Explorar el Código

Add getOutputFromFile utility function

jherve hace 2 años
padre
commit
4003c81c6c
Se han modificado 3 ficheros con 35 adiciones y 9 borrados
  1. 20 1
      test/ArtDecoCard.purs
  2. 2 7
      test/JobsUnifiedTopCard.purs
  3. 13 1
      test/Utils.purs

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 20 - 1
test/ArtDecoCard.purs


+ 2 - 7
test/JobsUnifiedTopCard.purs

@@ -2,24 +2,20 @@ module Test.JobsUnifiedTopCard where
 
 
 import Prelude
 import Prelude
 
 
-import Control.Monad.Except (runExceptT)
 import Data.Either (Either(..))
 import Data.Either (Either(..))
 import Data.List (List(..), (:))
 import Data.List (List(..), (:))
 import Data.List.NonEmpty (NonEmptyList(..))
 import Data.List.NonEmpty (NonEmptyList(..))
 import Data.Maybe (Maybe(..))
 import Data.Maybe (Maybe(..))
 import Data.NonEmpty (NonEmpty(..))
 import Data.NonEmpty (NonEmpty(..))
-import Effect.Class (liftEffect)
 import LinkedIn.DetachedNode (DetachedNode(..))
 import LinkedIn.DetachedNode (DetachedNode(..))
 import LinkedIn.Jobs.JobOffer (JobOffer(..))
 import LinkedIn.Jobs.JobOffer (JobOffer(..))
-import LinkedIn.Output (run)
 import LinkedIn.Output.Types (Output(..))
 import LinkedIn.Output.Types (Output(..))
 import LinkedIn.Page.JobOffer (JobOfferPage(..))
 import LinkedIn.Page.JobOffer (JobOfferPage(..))
 import LinkedIn.UI.Basic.Types (JobFlexibility(..))
 import LinkedIn.UI.Basic.Types (JobFlexibility(..))
 import LinkedIn.UI.Components.JobsUnifiedTopCard (JobsUnifiedTopCardElement(..), TopCardAction(..), TopCardInsight(..), TopCardInsightContent(..), TopCardPrimaryDescription(..), TopCardSecondaryInsight(..))
 import LinkedIn.UI.Components.JobsUnifiedTopCard (JobsUnifiedTopCardElement(..), TopCardAction(..), TopCardInsight(..), TopCardInsightContent(..), TopCardPrimaryDescription(..), TopCardSecondaryInsight(..))
-import Node.JsDom (jsDomFromFile)
 import Test.Spec (Spec, describe, it)
 import Test.Spec (Spec, describe, it)
 import Test.Spec.Assertions (shouldEqual)
 import Test.Spec.Assertions (shouldEqual)
-import Test.Utils (detachFromFile)
+import Test.Utils (detachFromFile, getOutputFromFile)
 import Type.Proxy (Proxy(..))
 import Type.Proxy (Proxy(..))
 
 
 jobsUnifiedTopCardSpec :: Spec Unit
 jobsUnifiedTopCardSpec :: Spec Unit
@@ -123,8 +119,7 @@ jobsUnifiedTopCardSpec = do
       }))
       }))
 
 
     it "reads the JobOffer" 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 {
       jobOffer `shouldEqual` Right (OutJobOffer (JobOffer {
         companyDomain: (Just "Technologies et services de l’information"),
         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 Effect.Class (liftEffect)
 import LinkedIn.CanBeQueried (class CanBeQueried)
 import LinkedIn.CanBeQueried (class CanBeQueried)
 import LinkedIn.DetachedNode (DetachedNode)
 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.QueryRunner (QueryError)
 import LinkedIn.UI.Basic.Parser (toYear)
 import LinkedIn.UI.Basic.Parser (toYear)
 import LinkedIn.UI.Basic.Types (MonthYear(..))
 import LinkedIn.UI.Basic.Types (MonthYear(..))
@@ -51,3 +52,14 @@ detachFromString :: forall t.
 detachFromString proxy string = do
 detachFromString proxy string = do
   dom <- liftEffect $ jsDomParse string
   dom <- liftEffect $ jsDomParse string
   liftEffect $ runExceptT $ runToDetached proxy dom
   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