Я пытаюсь создать сценарий из нескольких частей, используя каратэ и graphql - используя ответы для формирования следующего запроса. Я внимательно просмотрел документы, но, похоже, не могу понять это.
Я посмотрел на документ с надписью «Данный путь ...», а затем запустил второй запрос как get, но мне нужно использовать тот же путь
Я пытаюсьвыполните следующие действия:
- войдите в систему get
authId
- это выполняется в фоновом режиме с помощью «чтения вызова» в другом файле функций, содержащем логин - , запросите запрос унаш внутренний сервер graphql, использующий запрашиваемый идентификатор
- , извлекает
workId
из ответа - , использует этот
workId
для запуска мутации graphql и изменения базы данных - для получения ответаи подтвердить, что изменение было сделано успешно
Я не могу опубликовать точные схемы и коды по соображениям безопасности, но, чтобы дать вам смутное представление о том, что я пытаюсь сделать:
Background:
* url serverBaseUri
* def signIn = call read('classpath:somepath/to_login.feature') { username: 'abc', password: '123', result: true }
* def sessionAccessId = signIn.responseHeaders['set-cookie'][0]
* header Cookie = sessionAccessId
Scenario: 'Multi Lookup Value test'
* def reqID = "32443rw"
### Send query to get work id from request id as its dynamic and is required to modify the request.
* def query =
"""
query {
RequestById(id: "<reqID>"){
workId
otherNotes
}
}
"""
Given request { query: '#(query)' }
When method post
Then status 200
#### Extract work id from response
* def wkId = response.data.RequestById.workId
### populate 'otherNotes' and 'assignee' for workflow
* def queryMutate =
"""
mutation {
ModifyRequest(
requestId: "<reqID>"
workId: "<wkId>",
assignee: "testUser"
otherNotes: "test"
}
"""
Given request { query: '#(queryMutate)' }
When method post
Then status 200
And match $ ==
"""
{
"data": {
"completeRequest": true
}
}
"""
### Verify query changed successfully
* def validateMutationsWorked =
"""
query {
RequestById(id: "<reqID>"){
workflowId
otherNotes
}
}
"""
Given request { query: '#(validateMutationsWorked)' }
When method post
Then status 200
And match $ ==
"""
{
"data": {
"Requests": [
{
"requestId": "32443rw",
"workId": "abc",
"assignee": null,
}
]
}
}
"""
Итак, по сути, у меня есть 3 приведенных утверждения в моем сценарии, которые должны следовать последовательно. Надеюсь, что это имеет больше смысла и добавляет запрошенные детали.