API работает локально (и в будущем в контейнере CircleCI), поэтому мне не нужно заглушать ответы, только настоящие запросы и настоящие ответы.
Когда я отправляю запрос POST, он создает событие и возвращает большое тело ответа, содержащее уникальный идентификатор. Мне нужно где-то сохранить этот уникальный идентификатор (как переменная env, json или в худшем случае константа), чтобы я мог получить доступ и использовать его в запросе UPDATE позже и, наконец, в запросе DELETE, чтобы удалить это событие из системы.
Есть ли способ сделать это?
Есть способ получить этот идентификатор из БД, но я действительно не хочу делать это таким образом.
Эй Крис, извините за неясный вопрос. Это вопрос о Cypress, он использует JS, но я просто удалил этот тег, чтобы устранить путаницу, кто не использовал Cypress. Спасибо
Вы можете сохранить уникальный идентификатор в файле прибора, а затем обновить его или прочитать из него:
cy.request({
method: 'POST',
url: '/someurl',
}).then((resp) => {
// Expect success response
expect(resp.status).to.eq(200)
//Write Unique ID to a fixture file
cy.writeFile('cypress/fixtures/testdata.json', {
"id": resp.uniqueID
})
})
Если вы хотите обновить значение уникального идентификатора, вы можете сделать что-то вроде этого:
cy.readFile("cypress/fixtures/testdata.json", (err, data) => {
if (err) {
return console.error(err);
};
}).then((data) => {
data.id = newUniqueID //save the New Value of Unique ID
cy.writeFile("cypress/fixtures/testdata.json", JSON.stringify(data)) //Write it to the fixtures file
})
Вау, это решение золото, большое спасибо. Я думал, что единственным решением будет использование обещаний (это ад), но это все меняет. Спасибо
Это про встроенный в браузер JavaScript? Для этого вы можете использовать cookie или localStorage. Пожалуйста, уточните свой вопрос.