Refactoring CommentArticle Tests
This commit is contained in:
@@ -38,7 +38,7 @@ class ArticleSteps : En, KoinTest {
|
|||||||
private fun createArticle(extraData: DataTable? = null) {
|
private fun createArticle(extraData: DataTable? = null) {
|
||||||
val params = extraData?.asMap<String, String>(String::class.java, String::class.java)
|
val params = extraData?.asMap<String, String>(String::class.java, String::class.java)
|
||||||
val createdByUsername = params?.get("createdBy")
|
val createdByUsername = params?.get("createdBy")
|
||||||
val username = (createdByUsername ?: UUID.randomUUID().toString())
|
val username = (createdByUsername ?: "username"+UUID.randomUUID().toString())
|
||||||
.toLowerCase().replace(' ', '-')
|
.toLowerCase().replace(' ', '-')
|
||||||
|
|
||||||
val createdBy = if (createdByUsername != null) {
|
val createdBy = if (createdByUsername != null) {
|
||||||
@@ -77,7 +77,7 @@ class ArticleSteps : En, KoinTest {
|
|||||||
val citizen = get<CitizenRepository>().findByUsername(("$firstName-$lastName".toLowerCase()).toLowerCase().replace(' ', '-')) ?: error("Citizen not exist")
|
val citizen = get<CitizenRepository>().findByUsername(("$firstName-$lastName".toLowerCase()).toLowerCase().replace(' ', '-')) ?: error("Citizen not exist")
|
||||||
|
|
||||||
val comment: CommentEntity<ArticleRef> = CommentEntity(
|
val comment: CommentEntity<ArticleRef> = CommentEntity(
|
||||||
id = params?.get("commentId")?.let { UUID.fromString(it) } ?: UUID.randomUUID(),
|
id = params?.get("id")?.let { UUID.fromString(it) } ?: UUID.randomUUID(),
|
||||||
createdBy = citizen,
|
createdBy = citizen,
|
||||||
target = article,
|
target = article,
|
||||||
content = params?.get("content") ?: "hello"
|
content = params?.get("content") ?: "hello"
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
|
@comment
|
||||||
Feature: comment Article
|
Feature: comment Article
|
||||||
|
|
||||||
Scenario: Can comment an article
|
Scenario: Can comment an article
|
||||||
Given I am authenticated as John Doe with id "64b7b379-2298-43ec-b428-ba134930cabd"
|
Given I have citizen Michael Faraday
|
||||||
And I have article with id "9226c1a3-8091-c3fa-7d0d-c2e98c9bee7b"
|
And I am authenticated as Michael Faraday
|
||||||
When I send a POST request to "/articles/9226c1a3-8091-c3fa-7d0d-c2e98c9bee7b/comments" with body:
|
And I have article
|
||||||
|
| id | aa16c635-28da-46f0-9a89-934eef88c7ca |
|
||||||
|
When I send a POST request to "/articles/aa16c635-28da-46f0-9a89-934eef88c7ca/comments" with body:
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"content": "Hello mister"
|
"content": "Hello mister"
|
||||||
@@ -11,32 +14,52 @@ Feature: comment Article
|
|||||||
"""
|
"""
|
||||||
Then the response status code should be 201
|
Then the response status code should be 201
|
||||||
|
|
||||||
|
# TODO add more comment on article
|
||||||
Scenario: Can get all comment on article
|
Scenario: Can get all comment on article
|
||||||
Given I am authenticated as John Doe with id "64b7b379-2298-43ec-b428-ba134930cabd"
|
Given I have citizen Enrico Fermi
|
||||||
And I have article with id "9226c1a3-8091-c3fa-7d0d-c2e98c9bee7b"
|
And I am authenticated as Enrico Fermi
|
||||||
When I send a GET request to "/articles/9226c1a3-8091-c3fa-7d0d-c2e98c9bee7b/comments"
|
And I have article
|
||||||
|
| id | 6166c078-ca97-4366-b0aa-2a5cd558c78a |
|
||||||
|
And I have comment created by Enrico Fermi on article "6166c078-ca97-4366-b0aa-2a5cd558c78a"
|
||||||
|
When I send a GET request to "/articles/6166c078-ca97-4366-b0aa-2a5cd558c78a/comments"
|
||||||
Then the response status code should be 200
|
Then the response status code should be 200
|
||||||
|
|
||||||
|
# TODO add votes
|
||||||
Scenario: Can get all comment on article sorted by votes
|
Scenario: Can get all comment on article sorted by votes
|
||||||
Given I am authenticated as John Doe with id "64b7b379-2298-43ec-b428-ba134930cabd"
|
Given I have citizen Pierre Curie
|
||||||
And I have article with id "9226c1a3-8091-c3fa-7d0d-c2e98c9bee7b"
|
And I am authenticated as Pierre Curie
|
||||||
When I send a GET request to "/articles/9226c1a3-8091-c3fa-7d0d-c2e98c9bee7b/comments?sort=votes"
|
And I have article
|
||||||
|
| id | 5e209f63-57ce-43ca-922a-273b0d62f567 |
|
||||||
|
And I have comment created by Enrico Fermi on article "5e209f63-57ce-43ca-922a-273b0d62f567"
|
||||||
|
When I send a GET request to "/articles/5e209f63-57ce-43ca-922a-273b0d62f567/comments?sort=votes"
|
||||||
Then the response status code should be 200
|
Then the response status code should be 200
|
||||||
And the response should contain object:
|
And the response should contain object:
|
||||||
| result[1].votes.up | 1 |
|
| $.result[0].votes.up | 0 |
|
||||||
|
|
||||||
Scenario: Can get comments on articles of the current citizen
|
Scenario: Can get comments on articles of the current citizen
|
||||||
Given I have citizen John Doe with id "64b7b379-2298-43ec-b428-ba134930cabd"
|
Given I have citizen Erwin Schrodinger with ID "292a20cc-4a60-489e-9866-a95d38ffaf47"
|
||||||
And I have article with id "9226c1a3-8091-c3fa-7d0d-c2e98c9bee7b"
|
And I have article
|
||||||
When I send a GET request to "/citizens/64b7b379-2298-43ec-b428-ba134930cabd/comments/articles"
|
| id | 17df7fb9-b388-4e20-ab19-29c29972da01 |
|
||||||
|
| createdBy | Erwin Schrodinger |
|
||||||
|
And I have comment created by Erwin Schrodinger on article "17df7fb9-b388-4e20-ab19-29c29972da01"
|
||||||
|
When I send a GET request to "/citizens/292a20cc-4a60-489e-9866-a95d38ffaf47/comments/articles"
|
||||||
Then the response status code should be 200
|
Then the response status code should be 200
|
||||||
And the response should contain object:
|
And the response should contain object:
|
||||||
| current_page | 1 |
|
| current_page | 1 |
|
||||||
| limit | 50 |
|
| limit | 50 |
|
||||||
|
And the Response should contain:
|
||||||
|
"""
|
||||||
|
292a20cc-4a60-489e-9866-a95d38ffaf47
|
||||||
|
"""
|
||||||
|
|
||||||
Scenario: Can edit a comment
|
Scenario: Can edit a comment
|
||||||
Given I am authenticated as username 3 with id "92877af7-0a45-fd6a-2ed7-fe81e1236b78"
|
Given I have citizen Hubert Reeves
|
||||||
When I send a PUT request to "/comments/2f01c257-cf20-3466-fb10-a3b8eff12a97" with body:
|
And I have article
|
||||||
|
| id | bb05e4a3-55a1-4088-85e7-8d8c23be29b1 |
|
||||||
|
And I am authenticated as Hubert Reeves
|
||||||
|
And I have comment created by Hubert Reeves on article "bb05e4a3-55a1-4088-85e7-8d8c23be29b1":
|
||||||
|
| id | fd30d20f-656c-42c6-8955-f61c04537464 |
|
||||||
|
When I send a PUT request to "/comments/fd30d20f-656c-42c6-8955-f61c04537464" with body:
|
||||||
"""
|
"""
|
||||||
Hello boy
|
Hello boy
|
||||||
"""
|
"""
|
||||||
@@ -45,7 +68,13 @@ Feature: comment Article
|
|||||||
| content | Hello boy |
|
| content | Hello boy |
|
||||||
|
|
||||||
Scenario: Can get comment by its ID
|
Scenario: Can get comment by its ID
|
||||||
When I send a GET request to "/comments/2f01c257-cf20-3466-fb10-a3b8eff12a97"
|
Given I have citizen Alfred Kastler
|
||||||
|
And I have article
|
||||||
|
| id | 3897465b-19d2-43a0-86ea-1e29dbb11ec9 |
|
||||||
|
And I have comment created by Alfred Kastler on article "3897465b-19d2-43a0-86ea-1e29dbb11ec9":
|
||||||
|
| id | edd296a8-fc7a-4717-a2bb-9f035ceca3c2 |
|
||||||
|
| content | Hello boy |
|
||||||
|
When I send a GET request to "/comments/edd296a8-fc7a-4717-a2bb-9f035ceca3c2"
|
||||||
Then the response status code should be 200
|
Then the response status code should be 200
|
||||||
And the JSON should contain:
|
And the JSON should contain:
|
||||||
| content | Hello boy |
|
| content | Hello boy |
|
||||||
|
|||||||
Reference in New Issue
Block a user