Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
haskell-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
197
Issues
197
List
Board
Labels
Milestones
Merge Requests
12
Merge Requests
12
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
haskell-gargantext
Commits
b4bd2596
Verified
Commit
b4bd2596
authored
Nov 06, 2024
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[tests] some more tests refactorings
parent
2eccdf28
Pipeline
#6944
passed with stages
in 60 minutes and 2 seconds
Changes
11
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
56 additions
and
73 deletions
+56
-73
test_config.toml
test-data/test_config.toml
+1
-1
Authentication.hs
test/Test/API/Authentication.hs
+1
-3
Errors.hs
test/Test/API/Errors.hs
+10
-11
GraphQL.hs
test/Test/API/GraphQL.hs
+2
-7
Private.hs
test/Test/API/Private.hs
+24
-24
Share.hs
test/Test/API/Private/Share.hs
+2
-7
Table.hs
test/Test/API/Private/Table.hs
+2
-7
Setup.hs
test/Test/API/Setup.hs
+9
-0
UpdateList.hs
test/Test/API/UpdateList.hs
+3
-7
Operations.hs
test/Test/Database/Operations.hs
+1
-3
ReverseProxy.hs
test/Test/Server/ReverseProxy.hs
+1
-3
No files found.
test-data/test_config.toml
View file @
b4bd2596
...
@@ -81,7 +81,7 @@ All = "corenlp://localhost:9000"
...
@@ -81,7 +81,7 @@ All = "corenlp://localhost:9000"
default_visibility_timeout
=
1
default_visibility_timeout
=
1
# default delay before job is visible to the worker
# default delay before job is visible to the worker
default_delay
=
1
default_delay
=
0
# NOTE This is overridden by Test.Database.Setup
# NOTE This is overridden by Test.Database.Setup
[worker.database]
[worker.database]
...
...
test/Test/API/Authentication.hs
View file @
b4bd2596
...
@@ -35,9 +35,7 @@ cannedToken :: T.Text
...
@@ -35,9 +35,7 @@ cannedToken :: T.Text
cannedToken
=
"eyJhbGciOiJIUzUxMiJ9.eyJkYXQiOnsiaWQiOjF9fQ.t49zZSqkPAulEkYEh4pW17H2uwrkyPTdZKwHyG3KUJ0hzU2UUoPBNj8vdv087RCVBJ4tXgxNbP4j0RBv3gxdqg"
cannedToken
=
"eyJhbGciOiJIUzUxMiJ9.eyJkYXQiOnsiaWQiOjF9fQ.t49zZSqkPAulEkYEh4pW17H2uwrkyPTdZKwHyG3KUJ0hzU2UUoPBNj8vdv087RCVBJ4tXgxNbP4j0RBv3gxdqg"
tests
::
Spec
tests
::
Spec
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
do
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
beforeAllWith
(
\
ctx
->
setupEnvironment
(
_sctx_env
ctx
)
>>=
(
const
$
pure
ctx
))
$
do
describe
"Prelude"
$
do
it
"setup DB triggers"
$
\
SpecContext
{
..
}
->
setupEnvironment
_sctx_env
describe
"Authentication"
$
do
describe
"Authentication"
$
do
baseUrl
<-
runIO
$
parseBaseUrl
"http://localhost"
baseUrl
<-
runIO
$
parseBaseUrl
"http://localhost"
manager
<-
runIO
$
newManager
defaultManagerSettings
manager
<-
runIO
$
newManager
defaultManagerSettings
...
...
test/Test/API/Errors.hs
View file @
b4bd2596
...
@@ -16,7 +16,7 @@ import Servant.Auth.Client ()
...
@@ -16,7 +16,7 @@ import Servant.Auth.Client ()
import
Servant.Client
import
Servant.Client
import
Servant.Client.Generic
(
genericClient
)
import
Servant.Client.Generic
(
genericClient
)
import
Test.API.Routes
(
mkUrl
)
import
Test.API.Routes
(
mkUrl
)
import
Test.API.Setup
(
withTestDBAndPort
,
setupEnvironment
,
createAliceAndBob
,
SpecContext
(
..
))
import
Test.API.Setup
(
withTestDBAndPort
,
dbEnvSetup
,
SpecContext
(
..
))
import
Test.Hspec
import
Test.Hspec
import
Test.Hspec.Wai.Internal
(
withApplication
)
import
Test.Hspec.Wai.Internal
(
withApplication
)
import
Test.Utils
(
protected
,
withValidLogin
,
protectedNewError
)
import
Test.Utils
(
protected
,
withValidLogin
,
protectedNewError
)
...
@@ -24,26 +24,24 @@ import Text.RawString.QQ (r)
...
@@ -24,26 +24,24 @@ import Text.RawString.QQ (r)
tests
::
Spec
tests
::
Spec
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
do
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
beforeAllWith
dbEnvSetup
$
do
describe
"Errors API"
$
do
describe
"Errors API"
$
do
describe
"Prelude"
$
do
describe
"Prelude"
$
do
it
"setup DB triggers and users"
$
\
(
SpecContext
testEnv
port
_app
_
)
->
do
it
"setup DB triggers and users"
$
\
ctx
->
do
setupEnvironment
testEnv
baseUrl
<-
parseBaseUrl
"http://localhost"
baseUrl
<-
parseBaseUrl
"http://localhost"
manager
<-
newManager
defaultManagerSettings
manager
<-
newManager
defaultManagerSettings
let
clientEnv
prt
=
mkClientEnv
manager
(
baseUrl
{
baseUrlPort
=
prt
})
let
clientEnv
prt
=
mkClientEnv
manager
(
baseUrl
{
baseUrlPort
=
prt
})
createAliceAndBob
testEnv
let
gargAdminClient
=
(
genericClient
::
GargAdminAPI
(
AsClientT
ClientM
))
let
gargAdminClient
=
(
genericClient
::
GargAdminAPI
(
AsClientT
ClientM
))
roots
=
(
getRootsEp
.
rootsEp
$
gargAdminClient
::
ClientM
[
Node
HyperdataUser
])
roots
=
(
getRootsEp
.
rootsEp
$
gargAdminClient
::
ClientM
[
Node
HyperdataUser
])
result
<-
liftIO
$
runClientM
roots
(
clientEnv
port
)
result
<-
liftIO
$
runClientM
roots
(
clientEnv
$
_sctx_port
ctx
)
length
result
`
shouldBe
`
0
length
result
`
shouldBe
`
0
describe
"GET /api/v1.0/node"
$
do
describe
"GET /api/v1.0/node"
$
do
it
"returns the old error by default"
$
\
(
SpecContext
_testEnv
port
app
_
)
->
do
it
"returns the old error by default"
$
\
ctx
->
do
withApplication
app
$
do
let
port
=
_sctx_port
ctx
withApplication
(
_sctx_app
ctx
)
$
do
withValidLogin
port
"gargantua"
(
GargPassword
"secret_key"
)
$
\
_clientEnv
token
->
do
withValidLogin
port
"gargantua"
(
GargPassword
"secret_key"
)
$
\
_clientEnv
token
->
do
res
<-
protected
token
"GET"
(
mkUrl
port
"/node/99"
)
""
res
<-
protected
token
"GET"
(
mkUrl
port
"/node/99"
)
""
case
res
of
case
res
of
...
@@ -53,8 +51,9 @@ tests = sequential $ aroundAll withTestDBAndPort $ do
...
@@ -53,8 +51,9 @@ tests = sequential $ aroundAll withTestDBAndPort $ do
statusCode
`
shouldBe
`
404
statusCode
`
shouldBe
`
404
simpleBody
`
shouldBe
`
[
r
|
{"error":"Node does not exist","node":99}
|]
simpleBody
`
shouldBe
`
[
r
|
{"error":"Node does not exist","node":99}
|]
it
"returns the new error if header X-Garg-Error-Scheme: new is passed"
$
\
(
SpecContext
_testEnv
port
app
_
)
->
do
it
"returns the new error if header X-Garg-Error-Scheme: new is passed"
$
\
ctx
->
do
withApplication
app
$
do
let
port
=
_sctx_port
ctx
withApplication
(
_sctx_app
ctx
)
$
do
withValidLogin
port
"gargantua"
(
GargPassword
"secret_key"
)
$
\
_clientEnv
token
->
do
withValidLogin
port
"gargantua"
(
GargPassword
"secret_key"
)
$
\
_clientEnv
token
->
do
res
<-
protectedNewError
token
"GET"
(
mkUrl
port
"/node/99"
)
""
res
<-
protectedNewError
token
"GET"
(
mkUrl
port
"/node/99"
)
""
case
res
of
case
res
of
...
...
test/Test/API/GraphQL.hs
View file @
b4bd2596
...
@@ -10,7 +10,7 @@ module Test.API.GraphQL (
...
@@ -10,7 +10,7 @@ module Test.API.GraphQL (
import
Gargantext.Core.Types.Individu
import
Gargantext.Core.Types.Individu
import
Prelude
import
Prelude
import
Servant.Auth.Client
()
import
Servant.Auth.Client
()
import
Test.API.Setup
(
withTestDBAndPort
,
setupEnvironment
,
createAliceAndBob
,
SpecContext
(
..
))
import
Test.API.Setup
(
withTestDBAndPort
,
dbEnvSetup
,
SpecContext
(
..
))
import
Test.Hspec
import
Test.Hspec
import
Test.Hspec.Wai.Internal
(
withApplication
)
import
Test.Hspec.Wai.Internal
(
withApplication
)
import
Test.Hspec.Wai.JSON
(
json
)
import
Test.Hspec.Wai.JSON
(
json
)
...
@@ -18,15 +18,10 @@ import Test.Utils (protected, protectedNewError, shouldRespondWithFragment, shou
...
@@ -18,15 +18,10 @@ import Test.Utils (protected, protectedNewError, shouldRespondWithFragment, shou
import
Text.RawString.QQ
(
r
)
import
Text.RawString.QQ
(
r
)
tests
::
Spec
tests
::
Spec
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
do
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
beforeAllWith
dbEnvSetup
$
do
describe
"GraphQL"
$
do
describe
"GraphQL"
$
do
describe
"Prelude"
$
do
it
"setup DB triggers"
$
\
SpecContext
{
..
}
->
setupEnvironment
_sctx_env
describe
"get_user_infos"
$
do
describe
"get_user_infos"
$
do
it
"allows 'alice' to see her own info"
$
\
(
SpecContext
testEnv
port
app
_
)
->
do
it
"allows 'alice' to see her own info"
$
\
(
SpecContext
testEnv
port
app
_
)
->
do
createAliceAndBob
testEnv
withApplication
app
$
do
withApplication
app
$
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
let
query
=
[
r
|
{ "query": "{ user_infos(user_id: 2) { ui_id, ui_email } }" }
|]
let
query
=
[
r
|
{ "query": "{ user_infos(user_id: 2) { ui_id, ui_email } }" }
|]
...
...
test/Test/API/Private.hs
View file @
b4bd2596
...
@@ -20,7 +20,7 @@ import Servant.Client.Generic (genericClient)
...
@@ -20,7 +20,7 @@ import Servant.Client.Generic (genericClient)
import
Test.API.Private.Share
qualified
as
Share
import
Test.API.Private.Share
qualified
as
Share
import
Test.API.Private.Table
qualified
as
Table
import
Test.API.Private.Table
qualified
as
Table
import
Test.API.Routes
(
mkUrl
)
import
Test.API.Routes
(
mkUrl
)
import
Test.API.Setup
(
withTestDBAndPort
,
setupEnvironment
,
createAliceAndBob
,
SpecContext
(
..
))
import
Test.API.Setup
(
withTestDBAndPort
,
dbEnvSetup
,
SpecContext
(
..
))
import
Test.Hspec
import
Test.Hspec
import
Test.Hspec.Wai
hiding
(
pendingWith
)
import
Test.Hspec.Wai
hiding
(
pendingWith
)
import
Test.Hspec.Wai.Internal
(
withApplication
)
import
Test.Hspec.Wai.Internal
(
withApplication
)
...
@@ -38,20 +38,18 @@ privateTests =
...
@@ -38,20 +38,18 @@ privateTests =
describe
"GET /api/v1.0/user"
$
do
describe
"GET /api/v1.0/user"
$
do
-- FIXME(adn): unclear if this is useful at all. Doesn't do permission checking.
-- FIXME(adn): unclear if this is useful at all. Doesn't do permission checking.
it
"doesn't allow someone with an invalid token to show the results"
$
\
(
SpecContext
testEnv
port
_
_
)
->
do
it
"doesn't allow someone with an invalid token to show the results"
$
\
ctx
->
do
createAliceAndBob
testEnv
let
gargAdminClient
=
(
genericClient
::
GargAdminAPI
(
AsClientT
ClientM
))
let
gargAdminClient
=
(
genericClient
::
GargAdminAPI
(
AsClientT
ClientM
))
admin_user_api_get
=
(
getRootsEp
.
rootsEp
$
gargAdminClient
::
ClientM
[
Node
HyperdataUser
])
admin_user_api_get
=
(
getRootsEp
.
rootsEp
$
gargAdminClient
::
ClientM
[
Node
HyperdataUser
])
result
<-
runClientM
admin_user_api_get
(
unauthenticatedClientEnv
port
)
result
<-
runClientM
admin_user_api_get
(
unauthenticatedClientEnv
$
_sctx_port
ctx
)
length
result
`
shouldBe
`
0
length
result
`
shouldBe
`
0
-- FIXME(adn): unclear if this is useful at all. Doesn't do permission checking.
-- FIXME(adn): unclear if this is useful at all. Doesn't do permission checking.
it
"allows 'alice' to see the results"
$
\
(
SpecContext
_testEnv
port
_app
_
)
->
do
it
"allows 'alice' to see the results"
$
\
ctx
->
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
clientEnv
_token
->
do
withValidLogin
(
_sctx_port
ctx
)
"alice"
(
GargPassword
"alice"
)
$
\
clientEnv
_token
->
do
let
gargAdminClient
=
(
genericClient
::
GargAdminAPI
(
AsClientT
ClientM
))
let
gargAdminClient
=
(
genericClient
::
GargAdminAPI
(
AsClientT
ClientM
))
admin_user_api_get
=
(
getRootsEp
.
rootsEp
$
gargAdminClient
::
ClientM
[
Node
HyperdataUser
])
admin_user_api_get
=
(
getRootsEp
.
rootsEp
$
gargAdminClient
::
ClientM
[
Node
HyperdataUser
])
...
@@ -60,43 +58,45 @@ privateTests =
...
@@ -60,43 +58,45 @@ privateTests =
describe
"GET /api/v1.0/node"
$
do
describe
"GET /api/v1.0/node"
$
do
it
"unauthorised users shouldn't see anything"
$
\
(
SpecContext
_testEnv
port
app
_
)
->
do
it
"unauthorised users shouldn't see anything"
$
\
ctx
->
do
withApplication
app
$
do
withApplication
(
_sctx_app
ctx
)
$
do
get
(
mkUrl
port
"/node/1"
)
`
shouldRespondWith
`
401
get
(
mkUrl
(
_sctx_port
ctx
)
"/node/1"
)
`
shouldRespondWith
`
401
it
"allows 'alice' to see her own node info"
$
\
(
SpecContext
_testEnv
port
app
_
)
->
do
it
"allows 'alice' to see her own node info"
$
\
ctx
->
do
withApplication
app
$
do
let
port
=
_sctx_port
ctx
withApplication
(
_sctx_app
ctx
)
$
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
protected
token
"GET"
(
mkUrl
port
"/node/8"
)
""
protected
token
"GET"
(
mkUrl
port
"/node/8"
)
""
`
shouldRespondWithFragment
`
[
json
|
{"id":8,"user_id":2,"name":"alice" }
|]
`
shouldRespondWithFragment
`
[
json
|
{"id":8,"user_id":2,"name":"alice" }
|]
it
"forbids 'alice' to see others node private info"
$
\
(
SpecContext
_testEnv
port
app
_
)
->
do
it
"forbids 'alice' to see others node private info"
$
\
ctx
->
do
withApplication
app
$
do
let
port
=
_sctx_port
ctx
withApplication
(
_sctx_app
ctx
)
$
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
protected
token
"GET"
(
mkUrl
port
"/node/1"
)
""
`
shouldRespondWith
`
403
protected
token
"GET"
(
mkUrl
port
"/node/1"
)
""
`
shouldRespondWith
`
403
describe
"GET /api/v1.0/tree"
$
do
describe
"GET /api/v1.0/tree"
$
do
it
"unauthorised users shouldn't see anything"
$
\
(
SpecContext
_testEnv
port
app
_
)
->
do
it
"unauthorised users shouldn't see anything"
$
\
ctx
->
do
withApplication
app
$
do
withApplication
(
_sctx_app
ctx
)
$
do
get
(
mkUrl
port
"/tree/1"
)
`
shouldRespondWith
`
401
get
(
mkUrl
(
_sctx_port
ctx
)
"/tree/1"
)
`
shouldRespondWith
`
401
it
"allows 'alice' to see her own node info"
$
\
(
SpecContext
_testEnv
port
app
_
)
->
do
it
"allows 'alice' to see her own node info"
$
\
ctx
->
do
withApplication
app
$
do
let
port
=
_sctx_port
ctx
withApplication
(
_sctx_app
ctx
)
$
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
protected
token
"GET"
(
mkUrl
port
"/tree/8"
)
""
protected
token
"GET"
(
mkUrl
port
"/tree/8"
)
""
`
shouldRespondWithFragment
`
[
json
|
{ "node": {"id":8, "name":"alice", "type": "NodeUser" } }
|]
`
shouldRespondWithFragment
`
[
json
|
{ "node": {"id":8, "name":"alice", "type": "NodeUser" } }
|]
it
"forbids 'alice' to see others node private info"
$
\
(
SpecContext
_testEnv
port
app
_
)
->
do
it
"forbids 'alice' to see others node private info"
$
\
ctx
->
do
withApplication
app
$
do
let
port
=
_sctx_port
ctx
withApplication
(
_sctx_app
ctx
)
$
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
withValidLogin
port
"alice"
(
GargPassword
"alice"
)
$
\
_clientEnv
token
->
do
protected
token
"GET"
(
mkUrl
port
"/tree/1"
)
""
`
shouldRespondWith
`
403
protected
token
"GET"
(
mkUrl
port
"/tree/1"
)
""
`
shouldRespondWith
`
403
tests
::
Spec
tests
::
Spec
tests
=
do
tests
=
do
sequential
$
aroundAll
withTestDBAndPort
$
do
sequential
$
aroundAll
withTestDBAndPort
$
beforeAllWith
dbEnvSetup
$
do
describe
"Prelude"
$
do
it
"setup DB triggers"
$
\
SpecContext
{
..
}
->
setupEnvironment
_sctx_env
privateTests
privateTests
describe
"Share API"
$
do
describe
"Share API"
$
do
Share
.
tests
Share
.
tests
...
...
test/Test/API/Private/Share.hs
View file @
b4bd2596
...
@@ -20,7 +20,7 @@ import Prelude (fail)
...
@@ -20,7 +20,7 @@ import Prelude (fail)
import
Servant.Auth.Client
qualified
as
SC
import
Servant.Auth.Client
qualified
as
SC
import
Servant.Client
import
Servant.Client
import
Test.API.Routes
import
Test.API.Routes
import
Test.API.Setup
import
Test.API.Setup
(
SpecContext
(
..
),
dbEnvSetup
,
withTestDBAndPort
)
import
Test.API.UpdateList
(
newCorpusForUser
)
import
Test.API.UpdateList
(
newCorpusForUser
)
import
Test.Hspec
import
Test.Hspec
import
Test.Hspec.Wai.Internal
(
withApplication
)
import
Test.Hspec.Wai.Internal
(
withApplication
)
...
@@ -41,13 +41,8 @@ shareURL token =
...
@@ -41,13 +41,8 @@ shareURL token =
&
shareUrlEp
&
shareUrlEp
tests
::
Spec
tests
::
Spec
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
do
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
beforeAllWith
dbEnvSetup
$
do
describe
"Prelude"
$
do
describe
"Prelude"
$
do
it
"setup DB triggers"
$
\
SpecContext
{
..
}
->
do
setupEnvironment
_sctx_env
-- Let's create the Alice user.
createAliceAndBob
_sctx_env
it
"should fail if no node type is specified"
$
\
(
SpecContext
_testEnv
serverPort
app
_
)
->
do
it
"should fail if no node type is specified"
$
\
(
SpecContext
_testEnv
serverPort
app
_
)
->
do
withApplication
app
$
do
withApplication
app
$
do
withValidLogin
serverPort
"alice"
(
GargPassword
"alice"
)
$
\
clientEnv
token
->
do
withValidLogin
serverPort
"alice"
(
GargPassword
"alice"
)
$
\
clientEnv
token
->
do
...
...
test/Test/API/Private/Table.hs
View file @
b4bd2596
...
@@ -13,7 +13,7 @@ import Gargantext.Database.Query.Facet qualified as Facet
...
@@ -13,7 +13,7 @@ import Gargantext.Database.Query.Facet qualified as Facet
import
Gargantext.Prelude
import
Gargantext.Prelude
import
Servant.Client
import
Servant.Client
import
Test.API.Routes
import
Test.API.Routes
import
Test.API.Setup
import
Test.API.Setup
(
SpecContext
(
..
),
dbEnvSetup
,
withTestDBAndPort
)
import
Test.API.UpdateList
(
createDocsList
,
checkEither
)
import
Test.API.UpdateList
(
createDocsList
,
checkEither
)
import
Test.Hspec
import
Test.Hspec
import
Test.Hspec.Wai.Internal
(
withApplication
)
import
Test.Hspec.Wai.Internal
(
withApplication
)
...
@@ -21,13 +21,8 @@ import Test.Utils
...
@@ -21,13 +21,8 @@ import Test.Utils
tests
::
Spec
tests
::
Spec
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
do
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
beforeAllWith
dbEnvSetup
$
do
describe
"Prelude"
$
do
describe
"Prelude"
$
do
it
"setup DB triggers"
$
\
SpecContext
{
..
}
->
do
setupEnvironment
_sctx_env
-- Let's create the Alice user.
createAliceAndBob
_sctx_env
beforeAllWith
createSoySauceCorpus
$
do
beforeAllWith
createSoySauceCorpus
$
do
it
"should return sauce in the search (#415)"
$
\
SpecContext
{
..
}
->
do
it
"should return sauce in the search (#415)"
$
\
SpecContext
{
..
}
->
do
let
corpusId
=
_sctx_data
let
corpusId
=
_sctx_data
...
...
test/Test/API/Setup.hs
View file @
b4bd2596
...
@@ -7,6 +7,7 @@ module Test.API.Setup (
...
@@ -7,6 +7,7 @@ module Test.API.Setup (
,
withBackendServerAndProxy
,
withBackendServerAndProxy
,
setupEnvironment
,
setupEnvironment
,
createAliceAndBob
,
createAliceAndBob
,
dbEnvSetup
)
where
)
where
import
Control.Concurrent.Async
qualified
as
Async
import
Control.Concurrent.Async
qualified
as
Async
...
@@ -172,6 +173,14 @@ createAliceAndBob testEnv = do
...
@@ -172,6 +173,14 @@ createAliceAndBob testEnv = do
void
$
new_user
nur1
void
$
new_user
nur1
void
$
new_user
nur2
void
$
new_user
nur2
dbEnvSetup
::
SpecContext
a
->
IO
(
SpecContext
a
)
dbEnvSetup
ctx
=
do
let
testEnv
=
_sctx_env
ctx
setupEnvironment
testEnv
createAliceAndBob
testEnv
pure
ctx
-- show the full exceptions during testing, rather than shallowing them under a generic
-- show the full exceptions during testing, rather than shallowing them under a generic
-- "Something went wrong".
-- "Something went wrong".
showDebugExceptions
::
SomeException
->
Wai
.
Response
showDebugExceptions
::
SomeException
->
Wai
.
Response
...
...
test/Test/API/UpdateList.hs
View file @
b4bd2596
...
@@ -73,7 +73,7 @@ import Paths_gargantext (getDataFileName)
...
@@ -73,7 +73,7 @@ import Paths_gargantext (getDataFileName)
import
Servant.Client
import
Servant.Client
import
System.FilePath
import
System.FilePath
import
Test.API.Routes
(
mkUrl
,
gqlUrl
,
get_table_ngrams
,
put_table_ngrams
,
toServantToken
,
clientRoutes
,
get_table
,
update_node
,
add_form_to_list
,
add_tsv_to_list
)
import
Test.API.Routes
(
mkUrl
,
gqlUrl
,
get_table_ngrams
,
put_table_ngrams
,
toServantToken
,
clientRoutes
,
get_table
,
update_node
,
add_form_to_list
,
add_tsv_to_list
)
import
Test.API.Setup
(
withTestDBAndPort
,
setupEnvironment
,
createAliceAndBob
,
SpecContext
(
..
))
import
Test.API.Setup
(
withTestDBAndPort
,
dbEnvSetup
,
SpecContext
(
..
))
import
Test.Database.Types
import
Test.Database.Types
import
Test.Hspec
import
Test.Hspec
import
Test.Hspec.Wai.Internal
(
withApplication
,
WaiSession
)
import
Test.Hspec.Wai.Internal
(
withApplication
,
WaiSession
)
...
@@ -131,14 +131,10 @@ uploadJSONList port token cId pathToNgrams clientEnv = do
...
@@ -131,14 +131,10 @@ uploadJSONList port token cId pathToNgrams clientEnv = do
pure
listId
pure
listId
-- tests :: D.Dispatcher -> Spec
tests
::
Spec
tests
::
Spec
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
do
tests
=
sequential
$
aroundAll
withTestDBAndPort
$
beforeAllWith
dbEnvSetup
$
do
describe
"UpdateList API"
$
do
describe
"UpdateList API"
$
do
it
"setup DB triggers and users"
$
\
(
SpecContext
testEnv
_port
_app
_
)
->
do
setupEnvironment
testEnv
createAliceAndBob
testEnv
describe
"POST /api/v1.0/lists/:id/add/form/async (JSON)"
$
do
describe
"POST /api/v1.0/lists/:id/add/form/async (JSON)"
$
do
...
...
test/Test/Database/Operations.hs
View file @
b4bd2596
...
@@ -49,9 +49,7 @@ uniqueArbitraryNewUser currentIx = do
...
@@ -49,9 +49,7 @@ uniqueArbitraryNewUser currentIx = do
ascii_txt
=
fmap
(
T
.
pack
.
getPrintableString
)
arbitrary
ascii_txt
=
fmap
(
T
.
pack
.
getPrintableString
)
arbitrary
tests
::
Spec
tests
::
Spec
tests
=
sequential
$
aroundAll
withTestDB
$
describe
"Database"
$
do
tests
=
sequential
$
aroundAll
withTestDB
$
beforeAllWith
(
\
ctx
->
setupEnvironment
ctx
>>=
(
const
$
pure
ctx
))
$
describe
"Database"
$
do
describe
"Prelude"
$
do
it
"setup DB triggers"
setupEnvironment
describe
"Read/Writes"
$
do
describe
"Read/Writes"
$
do
describe
"User creation"
$
do
describe
"User creation"
$
do
it
"Simple write/read"
writeRead01
it
"Simple write/read"
writeRead01
...
...
test/Test/Server/ReverseProxy.hs
View file @
b4bd2596
...
@@ -26,9 +26,7 @@ tests = describe "Microservices proxy" $ do
...
@@ -26,9 +26,7 @@ tests = describe "Microservices proxy" $ do
writeFrameTests
writeFrameTests
writeFrameTests
::
Spec
writeFrameTests
::
Spec
writeFrameTests
=
sequential
$
aroundAll
withBackendServerAndProxy
$
do
writeFrameTests
=
sequential
$
aroundAll
withBackendServerAndProxy
$
beforeAllWith
(
\
ctx
@
(
testEnv
,
_
,
_
)
->
setupEnvironment
testEnv
>>=
(
const
$
pure
ctx
))
$
do
describe
"Prelude"
$
do
it
"setup DB triggers"
$
\
(
testEnv
,
_
,
_
)
->
setupEnvironment
testEnv
describe
"Write Frame Reverse Proxy"
$
do
describe
"Write Frame Reverse Proxy"
$
do
it
"should disallow unauthenticated requests"
$
\
(
_testEnv
,
_serverPort
,
proxyPort
)
->
do
it
"should disallow unauthenticated requests"
$
\
(
_testEnv
,
_serverPort
,
proxyPort
)
->
do
baseUrl
<-
parseBaseUrl
"http://localhost"
baseUrl
<-
parseBaseUrl
"http://localhost"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment